/*
已知表stuinfo
id学号
name 姓名
email邮箱 john@126.com
gradeId 年纪编号
sex 性别 : 男女
age 年龄
已经表 grade
id 年纪编号
gradeName 年纪名称
*/
# 一查询所有学院的邮箱的用户名(注: 邮箱中@前面的字符)
-- instr (字符串, 获取的字符) 返回获取的字符在字符串中的位置
select SUBSTR(email,instr(email,'@')-1) 用户名 from subinfo;
# 查询男生和女生的个数
select COUNT(*) 个数 sex from stuinfo group by sex;
#查询年龄> 18的所有学生的姓名和年纪名称
select name,gradeName from stuinfo s inner join grade g on s.gradeId = g.id where age > 18
# 查询哪个年纪的学生最小年龄>20
1 : 每个年纪的最小年龄
select min(age),gradeId from stuinfo group by gradeid;
2: 在的结果省筛选
SELECT min(age) ,gradeid from stuinfo group by gradeid having min(age) > 20
# 说出查询语中所 涉及到的所有的关键字,以及执行先后顺序
select 查询列表 ⑦
from 表 ①
连接类型 join 表2 ②
on 连接条件 ③
where 筛选条件 ④
group by 分组列表 ⑤
having 分组后的筛选 ⑥
order by 排序列表 ⑧
limit 偏移,条目数 ⑨
查询的执行先后顺序
select 查询列表 ⑦
from 表 ①
连接类型 join 表2 ②
on 连接条件 ③
where 筛选条件 ④
group by 分组列表 ⑤
having 分组后的筛选 ⑥
order by 排序列表 ⑧