第一章 简单查询
1.1、select语句
mysql 中查询数据的基本语句是select语句。
语法:
- select [distinct] 字段1,字段2,字段3.....
- from 表名
- [where 条件表达式]
- [group by 字段名]
- [having 条件表达式]
- [order by 字段名 [asc|desc]]
- [limit 偏移量]
复制代码 distinct:剔除重复数据
[]:可选项
[where 条件表达式] :用于条件判断
[group by 字段名] : 用于分组
[having 条件表达式] : 与 group by 连用,用于判断
[order by 字段名 [asc|desc]] : 排序,asc:默认的,升序;desc:降序
[limit ] : 分页
顺序按照上述语法执行。
1.2、查询所有字段
查询所有字段有两种方式:
- 通过 列出所有字段名
- 例如现在需要查询 book 表中数据
- select bid,bname,author
- from book;
复制代码
- 通过 *
一般情况下,除非需要使用表中的所有字段的数据,否则最好不要使用 * ,虽然可以节省输入查询语句的时间,但是由于获取的数据多,会导致降低查询效率
1.3、查询指定字段
语法:
例查询 book 表中的书名 与 作者:
- select author,bname from book;
复制代码
第二章 条件查询
由于数据库中有大量的数据,很多时候需要根据需求来获取指定的数据,或者对查询的数据重新进行排列组合。这时就需要在查询语句中添加条件来筛选。
语法:
- select 字段名.....
- from 表名
- where 条件判断
复制代码 where 中的条件判断是指 select 语句中的查询条件,查询条件可以为如下示:
2.1、关系运算符
mysql 中常见的关系运算符如下:
关系运算符 说明 关系运算符 说明 = 等于 = 大于等于 != 不等于 > 大于 </td td 小于/td td /td td /td /tr /tbody /table p其中 code/code 与 code!=/code 是等价的./p p案例操作:/p- #查询 sid 为 4 的学生姓名
- select sname from score where sid=4;
复制代码 pimg src="https://img2023.cnblogs.com/blog/3167472/202305/3167472-20230516154019359-1441912887.png" alt="" loading="lazy" /p p其余操作类似。/p h3 id="22in关键字"2.2、in关键字/h3 pcode用于判断某个字段的值是否在指定集合中/code/p p语法:/p- select 字段 from 表名 where 字段名 [not] In (值1,值2,值3.....)
复制代码 p[not] :可选参数,表示不在/p p案例操作:查询 sid 为 1,2,4 的学生姓名/p- select sid,sname from score where sid in (1,2,4);
复制代码 pimg src="https://img2023.cnblogs.com/blog/3167472/202305/3167472-20230516154031438-1749840057.png" alt="" loading="lazy" /p h3 id="23between-and"2.3、between and/h3 pbetween and 用于判断某个字段是否在指定范围内/p p语法:/p- select *|字段
- from 表
- where 字段名 [not] between 值1 and 值2
复制代码 p值1:起始值/p p值2:结束值/p p相当于:[值1,值2]/p p案例操作:查询 sid 在[2,5]的学生信息/p- select sid,sname from score where sid between 2 and 5;
复制代码 pimg src="https://img2023.cnblogs.com/blog/3167472/202305/3167472-20230516154044843-1004849209.png" alt="" loading="lazy" /p h3 id="24空值查询"2.4、空值查询/h3 p在数据库中,有些列可能为空值,空值不是0,也不是空字符串,在 mysql 使用 is null 来判断字段是否为空/p p语法:/p- select *|字段
- from 表
- where 字段名 is [not] null;
复制代码 h3 id="25distinct"2.5、distinct/h3 p用于剔除查询结果中重复数据/p p语法:/p- select distinct 字段
- from
- where
复制代码 p当 distinct 后面字段有多个时,只有字段值相同,才会被认为是重复的记录。也就是说在多字段下,字段中需要有重复值,disinct才会生效。/p h3 id="26like"2.6、like/h3 p模糊查询。/p p当需要对字符串进行不确定查询使用/p p语法:/p- select *|字段
- from 表
- where 字段名 [not] like '匹配字符串';
复制代码 p匹配字符串可通过通配符来使用:/p p%:可以匹配任意多个字符/p p_ :只能匹配一个字符/p p例如:查询姓名含有 a 的员工信息/p- select * from emp where name like '%a%';
复制代码 p查询姓名第二个为 a 的员工/p- select * from emp where name like '%_a%';
复制代码 h3 id="27and-多条件查询"2.7、and 多条件查询/h3 p用于连接两个查询条件/p p语法:/p- select *|字段
- from 表
- where 条件表达式 1 and 条件表达式2 [and ...];
复制代码 p例如:查询 sid 小于 4 且 成绩为 大于 60的学生/p- select sname
- from score
- where sid < 4 and grade > 60;
复制代码 2.8、or 多条件查询
作用与 and 差不多,只不过条件满足其一即可
语法:
- select *|字段
- from 表
- where 条件表达式 1 or 条件表达式2 [or ...];
复制代码 例如:查询学生表中名字以 h 开头,或者性别为 女 或者 成绩为 100 的学生
- select id,name,grade,gender
- from student
- where name like 'h%' or gender = '女' or grade=100;
复制代码 当 or 与 and 一起连用时,因为 and 优先级大于 or,所以会先 and 再 or
第三章 高级查询
3.1、聚合函数
常见聚集函数有:
[table] 函数名称 作用 函数名称 作用 COUNT() 返回总行数 MAX() 返回某列的最大值 SUM() 返回某列的和 MIN() 返回某列的最小值 AVG() 返回某列的平均值 可与 select 查询结合使用
3.1.1、count()
可用来统计记录的条数
语法:
- select count( * | 某列) from 表名;
复制代码 对于列我们可以通过 * 来代替所有列。
3.1.2、SUM()
求出表中某字段所有值的总和。
语法:
其余操作与上述相同。
3.2、排序
当对表中的数据查询后结果可能是无序的或排序不是需求的理想结果,这时可使用 order by 来进行查询结果排序。
语法:
- select 字段名1,字段名2.........
- from 表名
- order by 字段1 [ASC|DESC],字段2 [asc|desc].......
复制代码 asc:默认的,升序
desc:降序
3.3、分组查询
在对表进行统计时。需要按照一定的类别来进行统计,这时可通过 group by 来进行分组.
语法:
- select 字段名1,字段名2.........
- from 表名
- group by 字段1 ,字段2 .......
- [having 条件判断]
复制代码 having:对分组后的内容进行过滤,常与 group by 一起使用
如果 查询字段出现在 group by 后,却没有包含在聚合函数中,该字段显示的是分组后的第一条记录的值,这样可能导致查询结果不符合预期。
3.4、limit
查询数据时,可能会返回多条记录,而用户需求可能只有其中部分,比如分页功能,每页显示 10 条信息,每次查询就只需查询出 10条记录即可。
这时可使用 limit 来实现上述功能.
语法:
- select 字段名1,字段名2.........
- from 表名
- limit 偏移量 记录数;
复制代码 偏移量:可选项,不指定,则默认为 0,当其值为 0 时:表示从查询结果中的第一条记录开始,当其值为 1 :表示从查询结果中第二条开始,以此类推。
记录数:表示返回查询的条数
第四章 别名
4.1、表别名
语法:
- select 字段名 from 表名 [as] 别名;
复制代码 4.2、字段别名
语法:
- select 字段名 [as] 别名 from 表名 [as] 别名;
复制代码 来源:https://www.cnblogs.com/xiarongblogs/p/17405850.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作! |