MySQL(二)
2021-01-08
续
5、DQL语句:
5.1常见函数
最大值Max(),最小值Min(),求和Sum()
求平均值Avg(),求数据总数Count();
注:括号里面存放字段,还可以用字段编号(只能用于求数据总数)(从0开始)
例如:查询最高分:
SELECT MAX(Grade) FROM Score;
查询最低分:
SELECT MIN(Grade) FROM Score;
求平均值:
SELECT AVG(Grade) FROM Score;
求和:
SELECT SUM(Grade) FROM Score;
求数据总数(有多少条数据):
SELECT COUNT(Grade) FROM Score;
SELECT COUNT(3) FROM Score;
5.2排序查询:
用关键字:order by +字段名(默认升序)
例如:从小到大排列Score表中的Grade
Select *from Score order by Grade;
降序:order by+字段名+desc;
升序:order by+字段名+asc;
5.3分页查询:
用关键字:limit 参数1,参数2
(参数1表示从第几条数据开始查询,参数2表示每一次的多少条数据)
例如:将所有的分数分为每页三条数据,查询第四页的数据。
select from Score limit 9,3;
(参数1=(页数-1)条数;参数2 = 条数)
5.4用as对关键字进行解释:
例如:select count(0) as '学生总人数' from Student;
5.5模糊查询:
用关键字:like + % +查询内容 +%
例如:在学生表里面查询名字带有n字母的学生所有信息
select *from Student where Name like '%n%' ;
%作用:查询字段信息里面有多少个相同的文字,放在不同位置有不同效果。
前后都放:表示全部文字查询一遍;
%放前面:表示尾字母查询(空格算一个字母);
%放后面:表示首字母查询(空格算一个字母)。
5.6去重复查询:
用关键字:distinct(放在查询字段前面,select和from中间)
例如:在Score表中查询不为重复的所有学号
select distinct Stu_id from Score;
5.7分组查询:
用关键字:group by
select *from 【where 查询条件】 group by 分组依据;
例如:将Score表进行科目分组查询
select *from group by Score;

5.8多表查询(连接查询):

内连接查询:用关键字:inner join
select *from 表1 inner join 表2 on 表1.字段 = 表2.字段;
例如:同时查询Student和Score表中的所有数据

左连接查询:用关键字:left join
elect *from 表1 left join 表2 on 表1.字段 = 表2.字段;
右连接查询:用关键字:right join
select *from 表1 right join 表2 on 表1.字段 = 表2.字段;
外(全)连接查询:用关键字:union
左连接 union 右连接
5.9子查询
先查询一张表中的数据,再作为一种条件在另一张表进行查询。
用关键字:in
select *from 表1 where 表1字段 in(select *from 表2 where 表2字段= 值;)
例如:在score表中查询每个科目成绩的第一位学生姓名。
select name from student where Id in
(select Stu_id from score group by Class_name);
子查询的分类
单行单列子查询:用< > != = <> >= <=
多行单列子查询:子查询带有in,都是多行单列子查询
多行多列子查询

浙公网安备 33010602011771号