文章目录
一、SQL语言DQL知悉
(一)概念理解
DQL:查询表中的记录 : select * from 表名;
数据查询语言DQL基本结构是由SELECT子句,FROM子句,WHERE 子句组成的查询块:
SELECT ----------- <字段名表>
FROM---------------<表或视图名>
WHERE------------ <查询条件>
(二)查询语法
select 字段列表
from 表名列表
where 条件列表
group by 分组字段
having 分组之后的条件
order by 排序
limit 分页限定
二、查询分类
(一)基础查询
- 多个字段的查询(字段:年龄,姓名)
select 字段名1,字段名2… from 表名;
* 注意:
* 如果查询所有字段,则可以使用*来替代字段列表。
select age name from stu;
select * from stu;
- 去除重复: * distinct
select distinct age name from stu;
- 计算列 * ifnull(表达式1,表达式2):null参与的运算,计算结果都为null
计算数学和英语课程的总分,(当有一门为null值时,防止结果为null)
select name,math + ifnull(english ,0) from stu;
- 起别名: * as:as也可以省略 ,在l两门成绩前面加上 As 总分
select name,math + ifnull(english ,0) (As) 总分 from stu;
(二)条件查询
1 查询 ID 不等于20的信息 ---- 标识符: <>
SELECT * FROM stu WHERE count <> 20;`
2 查询 ID 大于等于20 小于等于30的信息
---- 1 AND连接;
---- 2 用 BETWEEN 和 AND 隔开
SELECT * FROM stu WHERE count >= 20 AND age <=30;
SELECT * FROM stu WHERE count BETWEEN 20 AND 30;
3 查询 ID 为22,18,25 的信息 ---- 标识符:IN
SELECT * FROM stu WHERE count IN (22,18,25);
4 查询英语成绩为是否为 null 值
– 查询英语成绩不为null
SELECT * FROM stu WHERE english IS NULL;
SELECT * FROM stu WHERE english IS NOT NULL;
5 例:查询姓 王 的人的信息 ------------------LIKE ‘王%’
—例:查询名字中带有 泽 子人的信息 ---- LIKE ‘%泽%’
SELECT * FROM stu WHERE NAME LIKE '王%';
SELECT * FROM stu WHERE NAME LIKE '%泽%';
(三)排序查询
语法:order by 子句
* order by 排序字段1 排序方式1 , 排序字段2 排序方式2…
* ASC: 升序,也是默认的。
* DESC: 降序。
select * from stu order by math ASC;
select * from stu order by math DESC;
(四)分组查询
where 和 having 的区别?
- where 在分组之前进行限定,如果不满足条件,则不参与分组。having在分组之后进行限 定,如果不满足结果,则不会被查询出来
- where 后不可以跟聚合函数,having可以进行聚合函数的判断。
SELECT sex , AVG(math) FROM stu GROUP BY sex;
/*按照性别分组。分别查询男、女同学的平均分*/
SELECT sex , AVG(math),COUNT(id) FROM stu WHERE math > 70 GROUP BY sex;
/* 按照性别分组。分别查询男、女同学的平均分,人数 要求:分数低于70分的人,不参与分组*/
(五)分页查询
- 语法:limit 开始的索引,每页查询的条数;
- 公式:开始的索引 = (当前的页码 - 1)* 每页显示的条数
(1) – 每页显示5条记录
SELECT * FROM student LIMIT 0,5; -- 第1页
SELECT * FROM student LIMIT 5,5; -- 第2页
SELECT * FROM student LIMIT 10,5; -- 第3页
**@喜欢的点赞关注,评论区留下宝贵的意见呐❥❥~**
- 不足之处,欢迎雅正留言