Mysql之表的查询

2023-10-28 02:50
文章标签 mysql 查询 database 之表

本文主要是介绍Mysql之表的查询,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、单表的查询

  首先让我们先熟悉一下mysql语句在查询操作时执行的顺序:

         (1)from   
         (2) on 
         (3) join 
         (4) where 
         (5)group by 
         (6) avg,sum.... 
         (7)having 
         (8) select 
         (9) distinct 
         (10) order by 

   创建查询环境:

    创建一个学生表:

      create table stu(id int primary key auto_increment,name char(10) not null,gender enum('男','女'),age int not null);

    插入数据:

      insert into stu(name,gender,age)  values ('小红','女','16'),('小明','男','18'),('小丽','女','17'),('月月','女','12'),('孙哥','男','28');   

  1.查询所有字段

    select * from 表名;

       注: * 表示所有字段

    

  2.查询指定字段

    select 字段1,字段2... from 表名;

    

  3.查询指定记录

    selec 字段 from 表名 where 约束条件

    

  4.空值的查询

    

 

  5.关键字查询in与distinct

    in关键字:IN(xx,yy,...) 满足条件范围内的一个值即为匹配项

    

    distinct让查询的结果不重复 

    

 

  6.多条件查询and与or

    and: 相当于"逻辑与",也就是说要同时满足条件才算匹配

     

    or:相当于“逻辑或",也就是说只要满足其中一个条件,就算匹配上了,跟IN关键字效果差不多

    

  7.范围查询between and

    between ... and ... : 在...到...范围内的值即为匹配项,

    

  8.字符匹配查询like

    like: 相当于模糊查询,和LIKE一起使用的通配符有  "%"与"_" 

      "%":作用是能匹配任意长度的字符。

      

      "_":只能匹配任意一个字符

       

  9.对查询结果排序order by

    关键字 order by,有两个值供选择 desc 降序 、asc 升序(默认值)

     不设置则为默认

    

    desc

    

  10.分组查询group by ※

    分组查询作为查询中的重点难点在这里会详细解释说明一下,相信很多初学者在这里遇到过不少问题,希望你们在看了我的文章后能从中获得启发,

    创建一个新的查询环境

      创建课程表:

        create table cou(cid int primary key auto_increment,cname char(20) not null,elenum int not null,teacher char(10) not null);

        注:cid表示课程号;cname表示课程名;elenum:表示选课人数;teacher:表示授课教师;

      向表中添加数据:

        insert into cou(cname,elenum,teacher) values ('高等数学',67,'张红燕'),('大学物理',67,'李健民'),('大学外语',67,'王小丹'),('大学生安全教育',32,'吴菲'),('舌尖上的植物学',32,'老丁'),('体育',20,'高飞');

      

    首先我们先对字段elenum进行分组

      select elenum from cou group by elenuml;

      

       从图中可有看出将字段elenum分组后,分为了三个组20、32、67

      

  11.筛选having

    分组之后还进行条件过滤,将不想要的分组丢弃,使用关键字 having

    

  12.限制查询LIMIT

    LIMIT[位置偏移量] 行数  通过LIMIT可以选择数据库表中的任意行数

     

  13.集合函数查询

    集合函数查询包括:COUNT()函数、SUM()函数、AVG()函数、MAX()函数、MIN()函数

      COUNT()函数:作用是统计数据表中包含的记录行的总数,或者根据查询结果返回列中包含的数据行数

        

          COUNT(*):计算表中的总的行数,不管某列有数值或者为空值,因为*就是代表查询表中所有的数据行

          COUNT(字段名):计算该字段名下总的行数,计算时会忽略空值的行,也就是NULL值的行。

      SUM()函数:作用是一个求总和的函数,返回指定列值的总和

        

      AVG()函数:作用是通过计算返回的行数和每一行数据的和,求的指定列数据的平均值

        

      MAX()函数:作用是返回指定列中的最大值

        

      MIN()函数:作用是返回指定列中的最小值

        

二、多表的查询

  1.内链接查询

    格式:表名 INNER JOIN 表名 ON 连接条件

    

 

  2.外链接查询

    左外链接查询

      格式:表名 LEFT JOIN 表名 ON 条件; 返回包括左表中的所有记录和右表中连接字段相等的记录

    右外链接查询

      格式:表名 RIGHT JOIN 表名 ON 条件  返回包括右表中的所有记录和右表中连接字段相等的记录

    

  3.复合条件查询

     在连接查询(内连接、外连接)的过程中,通过添加过滤条件,限制查询的结果,使查询的结果更加准确,通俗点讲,就是将连接查询时的条件更加细化。

    举两个简单的例子:

    

    

 

三、子查询

  子查询的意思就是将查询一张表得到的结果来充当另一个查询的条件,这样嵌套的查询就称为子查询。

  需要注意的是在子查询完成后需要起一个别名,

  

  as的使用方法就是写表或者派生表的后面+别名 

  

  1.关键字查询

    关键字ANY与SOME

      ANY关键字与SOME关键字用法相同,都是接在一个比较操作符的后面,表示若与子查询返回的任何值比较为TRUE`

    

    关键字AII

      使用ALL时表示需要同时满足所有条件。

       不太容易理解我们分步来做

      先进行先子查询

        

      在一起查询更容易理解:

        

      

    关键字IN

     IN关键字的作用跟上面单表查询的IN是一样的,不过这里IN中的参数放的是一个子查询语句。

      

 

四、合并结果查询

  利用UNION关键字,可以将查询出的结果合并到一张结果集中,也就是通过UNION关键字将多条SELECT语句连接起来,注意,合并结果集,只是增加了表中的记录,并不是将表中的字段增加,仅仅是将记录行合并到一起。其显示的字段应该是相同的,不然不能合并。

  UNION[ALL]的使用

     UNION:不使用关键字ALL,执行的时候会删除重复的记录,所有返回的行度是唯一的,

     UNION ALL:不删除重复航也不对结果进行自动排序。

       格式:

         SELECT 字段名,... FROM 表名

         UNION[ALL]

         SELECT 字段名,... FROM 表名

  

 

转载于:https://www.cnblogs.com/qq631243523/p/9804149.html

这篇关于Mysql之表的查询的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/290182

相关文章

MySQL 中的 JSON 查询案例详解

《MySQL中的JSON查询案例详解》:本文主要介绍MySQL的JSON查询的相关知识,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录mysql 的 jsON 路径格式基本结构路径组件详解特殊语法元素实际示例简单路径复杂路径简写操作符注意MySQL 的 J

Go语言开发实现查询IP信息的MCP服务器

《Go语言开发实现查询IP信息的MCP服务器》随着MCP的快速普及和广泛应用,MCP服务器也层出不穷,本文将详细介绍如何在Go语言中使用go-mcp库来开发一个查询IP信息的MCP... 目录前言mcp-ip-geo 服务器目录结构说明查询 IP 信息功能实现工具实现工具管理查询单个 IP 信息工具的实现服

Windows 上如果忘记了 MySQL 密码 重置密码的两种方法

《Windows上如果忘记了MySQL密码重置密码的两种方法》:本文主要介绍Windows上如果忘记了MySQL密码重置密码的两种方法,本文通过两种方法结合实例代码给大家介绍的非常详细,感... 目录方法 1:以跳过权限验证模式启动 mysql 并重置密码方法 2:使用 my.ini 文件的临时配置在 Wi

MySQL重复数据处理的七种高效方法

《MySQL重复数据处理的七种高效方法》你是不是也曾遇到过这样的烦恼:明明系统测试时一切正常,上线后却频频出现重复数据,大批量导数据时,总有那么几条不听话的记录导致整个事务莫名回滚,今天,我就跟大家分... 目录1. 重复数据插入问题分析1.1 问题本质1.2 常见场景图2. 基础解决方案:使用异常捕获3.

SQL中redo log 刷⼊磁盘的常见方法

《SQL中redolog刷⼊磁盘的常见方法》本文主要介绍了SQL中redolog刷⼊磁盘的常见方法,将redolog刷入磁盘的方法确保了数据的持久性和一致性,下面就来具体介绍一下,感兴趣的可以了解... 目录Redo Log 刷入磁盘的方法Redo Log 刷入磁盘的过程代码示例(伪代码)在数据库系统中,r

mysql中的group by高级用法

《mysql中的groupby高级用法》MySQL中的GROUPBY是数据聚合分析的核心功能,主要用于将结果集按指定列分组,并结合聚合函数进行统计计算,下面给大家介绍mysql中的groupby用法... 目录一、基本语法与核心功能二、基础用法示例1. 单列分组统计2. 多列组合分组3. 与WHERE结合使

Mysql用户授权(GRANT)语法及示例解读

《Mysql用户授权(GRANT)语法及示例解读》:本文主要介绍Mysql用户授权(GRANT)语法及示例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录mysql用户授权(GRANT)语法授予用户权限语法GRANT语句中的<权限类型>的使用WITH GRANT

Mysql如何解决死锁问题

《Mysql如何解决死锁问题》:本文主要介绍Mysql如何解决死锁问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录【一】mysql中锁分类和加锁情况【1】按锁的粒度分类全局锁表级锁行级锁【2】按锁的模式分类【二】加锁方式的影响因素【三】Mysql的死锁情况【1

SQL BETWEEN 的常见用法小结

《SQLBETWEEN的常见用法小结》BETWEEN操作符是SQL中非常有用的工具,它允许你快速选取某个范围内的值,本文给大家介绍SQLBETWEEN的常见用法,感兴趣的朋友一起看看吧... 在SQL中,BETWEEN是一个操作符,用于选取介于两个值之间的数据。它包含这两个边界值。BETWEEN操作符常用

MySQL索引的优化之LIKE模糊查询功能实现

《MySQL索引的优化之LIKE模糊查询功能实现》:本文主要介绍MySQL索引的优化之LIKE模糊查询功能实现,本文通过示例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧... 目录一、前缀匹配优化二、后缀匹配优化三、中间匹配优化四、覆盖索引优化五、减少查询范围六、避免通配符开头七、使用外部搜索引擎八、分