分类:
- DDL数据定义语言:操作数据库,操作表
- DML数据操作语言:对表中的记录操作增删改
- DQL数据查询语言:对表中的记录查询操作
- DCL数据控制语言:对用户权限的设置
查询所有列的记录:
select * form 表名
查询商品表里面所有的列
select * from product;
查询商品的名字和价格
select pname,price from product(表名);
查询商品名称和商品价格,商品价格通过别名‘价格’显示
select pname ,price as 价格 from product;
把商品名和商品价格+10查询出来
select pname,price+10 from product;
条件查询:
select ... from 表 where 条件 //取出表中的每一条数据,满足条件的记录就返回,不满足条件的记录就不返回
排序查询:
单列排序:
SELECT 字段名 FROM 表名 [WHERE 条件] ORDER BY 字段名 [ASC|DESC];
//ASC: 升序,默认值; DESC: 降序
以分数降序查询所有的学生
select * from student order by scre desc;
组合排序:
SELECT 字段名 FROM 表名 WHERE 字段=值 ORDER BY 字段名1 [ASC|DESC], 字段名2 [ASC|DESC];
以分数降序查询所有的学生,如果分数一致,再以age降序
select * from student order by score desc,age desc;
聚合函数:
SELECT 聚合函数(列名) FROM 表名 [where 条件];
-- 求出学生表里面的最高分数 -- 求出学生表里面的最低分数 -- 求出学生表里面的分数的总和(忽略null值) -- 求出学生表里面的平均分 -- 统计学生的总人数 (忽略null)
select Max(score) from student; select Min(score) from student; select sum(score) from student; select AVG(score) from student; select COUNT(sid) FROM student; select COUNT (*) FROM student;
需要注意的是:聚合函数会忽略null
分组查询:
GROUP BY语句对查询信息进行分组
SELECT 字段1,字段2... FROM 表名 [where 条件] GROUP BY 列 [HAVING 条件];
根据性别分组,统计每一组学生的总人数
select sex,cout(*) from student GROUP BY sex;
根据性别分组,统计每一组学生的总人数>5的
select sex,cout(*) FROM student GROUP BY sex HAVING cout(*)>5
子名 | 作用 |
where子句 | 先过滤再分组,where后面不能使用聚合函数 |
having子句 | 先分组,再过滤,having后面可以使用聚合函数 |
分页查询:
select ... from ...limit 起始行数,查询的记录条数
limit a,b; a:从哪里开始查询,从0开始计数【a=(当前页码-1)*b】 b:一页查询的数量【固定的,自定义的】