一 DQL-介绍
DQL是用来查询数据库表中记录的数据
关键字:SELECT
二 语法
SELECT 字段列表
FROM 表名列表
WHERE 条件列表
GROUP BY 分组列表
HAVING 分组后条件列表
ORDER BY 排序字段列表
LIMT 分页参数
三 DQL-基本查询
1)查询多个字段
SELECT 字段1,字段2,字段3,... FROM 表名;
SELECT * FROM 表名;
2)设置别名 (设置别名是可选项,也可以不设,只是为了方便的阅读数据库表,取了别名)
SELECT 字段1 [AS 别名1], 字段2 [AS 别名2],...FROM 表名;
3)去除重复记录
SELECT DISTINCT 字段列表 FROM 表名;
四DQL-条件查询
1)语法
SELECT 字段列表 FROM WHERE 条件列表;
2)条件
比较运算符 | 功能 |
---|
> | 大于 | >= | 大于等于 | < | 小于 | <= | 小于等于 | = | 等于 | <>或!= | 不等于 | BETWENN…AND… | 在某个范围之内(最小,最大值) | IN(…) | 在in之后的列表中的值,多选– | LIKE 占位符 | 模糊匹配(_匹配单个字符,%匹配任意个字符) | IS NULL | 是NULL |
逻辑运算符 | 功能 |
---|
ADN或&& | 并且(多个条件同时成立) | OR或II | 或者(多个条件任意一个成立) | NOT或! | 非,不是 |
模糊查询的例子:
从表中查询名字为2个的字符的数据
SLECT * FORM 表名 WHERE NAME LIKE '--'
从表中查询idcard的最后一个字符为X的数据
SELECT * FROM 表名 WHERE idcard LIKE '%X'
五 DQL-分组查询
聚合函数
常见的聚合函数 | 功能 |
---|
count | 统计数量 | max | 最大值 | min | 最小值 | avg | 平均值 | sum | 求和 |
语法
SELECT 聚合函数(字符段列表) FOMR 表名;
PS:所有的NULL值不参与聚合函数的运算;
实例
1)查询表中一共有多少数据量(一条数据是指定(字段1,字段2,字段3,))
SELECT COUNT(*) FROM 表名;
2)查询表中一个字段的平均值
SLECT AVG(字段名) FROM 表名;
3)查询表中一个字段中的最大值
SELECT MAX(字段名) FROM 表名;
剩下的就不一一列举;
5)来个复合例子 SELECT SUM(字段名) FROM 表名 WHERE 字段名 条件运算符 条件
分组查询
语法
SELECT 字段列表 FROM 表名 [WHERE 条件] GROUP BY 分组字段名 [HAVING 分组后过滤条件];
WHERE是在分组之前进行过滤,二HAVING是在分组之后过滤
HAVING 可以对应聚合函数,而WHERE不对应
排序查询
语法
SELECT 字段列表 FROM 表名 ORDER BY 字段1 排序方式1,字段2 排序方式2;
先按照字段1 的排序方式排序,如果字段1值相同,按照字段2的方式排序
排序方式
ASC:升序(默认值) DESC:降序
分页查询
语法
SELECT 字段列表 FROM 表名 LIMIT 起始索引,查询记录数;
分页查询是数据中的方言,MYSQL中式LIMIT;
例子
查询第2页的前10条数据;
SELECT * FROM 表名 LIMIT 10,10;
起始索引=(当前页-1)*页展示记录数
总结
习题 1.查询年龄为20~22的女性员工
SELECT * FROM 表名 WHRER age BETWEEN 20 AND 22 AND gender = '女';
习题2。查询性别为男,并且年龄为25,26姓名为三个字的员工 SELECT * FROM 表名 WHERE age IN(25,26) AND name = LIKE ‘—’ AND gender =‘男’;
习题3。统计员工表中,年龄小于69岁的,男性员工和女性员工的数量
SELECT COUT(age) FROM 表名 WHERE age < 60 GROUP BY gender;
习题4.查询所有年龄小于等于35岁员工的姓名和年龄,并对查询结果按年龄升序进行排序,年龄相同按入职时间降序排序;
SELECT name,age FROM 表名 WHERE age <= 35 ORDER BY age ASC, date DESC;
习题5 查询性别为男,并且年龄在20~40岁以内的前5个员工信息,对查询的结果按年龄升序排序,年龄相同按入职时间升序排序;
SELECT * FROM 表名 WHERE gender = '男' AND age BETWEEN 20 AND 40 LIMIT 0,5 ORDER BY age ASC ,date DESC;
|