#博学谷IT学习技术支持#
目录
一、DQL
1、基础查询
- 查询多个字段(*表示全部字段)
SELECT 字段列表 FROM 表名;
SELECT * FROM 表名;
- 去除重复记录(例:可用于城市的统计)
SELECT DISTINCT 字段列表 FROM 表名;
- 起别名
//效果相同
SELECT name as 姓名 字段列表 FROM 表名;
SELECT name 姓名 字段列表 FROM 表名;
2、条件查询
1.基本语法
SELECT 字段列表 FROM 表名 WHERE 条件;
2. 条件
- 练习
- 查询身高大于168厘米的学生
select * from stu where height > 168;
- 查询身高大于168厘米并且年龄大于17的学生
//效果相同 select * from stu where height > 168 && age > 17; select * from stu where height > 168 and age > 17;
- 查询年龄在18-25的学生
select * from stu where age between 18 and 25;
- 查询年龄不等于18的学生
//效果相同 select * from stu where age != 18; select * from stu where age <> 18;
- 查询年龄等于18或者年龄等于25的学生
//效果相同 select * from stu where age = 18 or age = 25; select * from stu where age in(18,25);
- 查询年龄年龄为 null的学生
//不符合语法规范 select * from stu where english = null; //判断是否为空 用is或者is not select * from stu where english is null; select * from stu where english is not null;
- 查询身高大于168厘米的学生
3.模糊查询
模糊查询使用like关键字,可以使用通配符进行占位:
-
_ : 代表单个任意字符
-
% : 代表任意个数字符
-
练习
- 查询包含‘c’的单词
select * from word_list where name like '%c%';
- 查询第2个字母是‘c’的单词
select * from word_list where name like '_c%';
- 查询包含‘c’的单词
2、排序查询
1.基本语法
SELECT 字段列表 FROM 表名 ORDER BY 排序字段名1 [排序方式1],排序字段名2 [排序方式2] …;
2.排序方式
- ASC : 升序排列 (默认值)
- DESC : 降序排列
注意:如果有多个排序条件,当前边的条件值一样时,才会根据第二条件进行排序
3.练习
- 查询单位员工,按照职工号升序排列
select * from workers order by work_id; - 查询单位员工,按照销售业绩降序排列
select * from workers order by result desc ; - 查询单位员工,按照销售业绩降序排列,如果销售业绩一样,再按照出勤升序排列
select * from workers order by result desc , attendance asc ;
3、聚合函数
1.概念
- 就是将一列数据作为一个整体进行计算
2. 分类
3.语法
SELECT 聚合函数名(列名) FROM 表;
注意: null 值不参与所有聚合函数运算
4.练习
- 统计班级一共有多少个学生
select count(id) from stu;
select count(english) from stu;
上面语句根据某个字段进行统计,如果该字段某一行的值为null的话,将不会被统计。
所以可以使用count(*) 来实现。
select count(*) from stu;
4、分组查询
1.语法
SELECT 字段列表 FROM 表名 [WHERE 分组前条件限定] GROUP BY 分组字段名 [HAVING 分组后条件过滤];
注意:分组之后,查询的字段为聚合函数和分组字段,查询其他字段无任何意义
2.练习
- 查询男同学和女同学各自的数学平均分
select sex, avg(math) from stu group by sex;
3.where 和 having 区别:
- 执行时机不一样:where 是分组之前进行限定,不满足where条件,则不参与分组,而having是分组之后对结果进行过滤。
- 可判断的条件不一样:where 不能对聚合函数进行判断,having 可以。
5、分页查询
1.语法
SELECT 字段列表 FROM 表名 LIMIT 起始索引 , 查询条目数;
注意: 上述语句中的起始索引是从0开始
2.练习
- 从0开始查询,查询3条数据
select * from stu limit 0 , 3;
- 每页显示3条数据,查询第1页数据
select * from stu limit 0 , 3;
3.公式推导
从上面的练习推导出起始索引计算公式:
起始索引 = (当前页码 - 1) * 每页显示的条数
这是我学习阶段性的总结,希望可以给看到的你有所帮助,如有不足,请指出。