(06)MySQL:DQL数据查询语言
语法:select [distinct] * | 列名,列名 from 表 where 条件;
select * from 表名;
select 字段1,字段2,…… from 表名;
select 表别名.字段1,表别名.字段2,…… from 表名 表别名;
select 字段1 别名,字段2 别名,…… from 表名;
select distinct 字段 from 表名;
select 名称,价格 旧,(价格+10) 新 from 表名;
SELECT * FROM 表名 WHERE 字段名 = 值;
SELECT * FROM 表名 WHERE 字段名 != 值;
SELECT * FROM 表名 WHERE 字段名 > 值;
SELECT * FROM product WHERE price >= 2000 AND price <=10000;
SELECT * FROM product WHERE price BETWEEN 2000 AND 10000;
select * from 表名 where 字段名 > 值 or 字段名 < 值;
select * from 表名 where 字段名 LIKE '%某字%';
select * from 表名 where 字段名 LIKE '某字%';
select * from 表名 where 字段名 LIKE '_某字%';
select * from 表名 where 字段名 is null;
select * from 表名 where 字段名 is not null;
语法:SELECT * FROM 表名 ORDER BY 排序字段 ASC(升序 默认)|DESC 降序;
SELECT * FROM 表名 ORDER BY 排序字段 DESC;
SELECT * FROM 表名 ORDER BY 排序字段1 DESC,排序字段2 DESC;
SELECT DISTINCT 去重字段 FROM 表名 ORDER BY 排序字段 DESC;
SELECT COUNT(*) FROM 表名;
SELECT COUNT(字段) FROM 表名;
SELECT COUNT(1) FROM 表名;
SELECT COUNT(*) FROM 表名 WHERE 指定字段 > 指定值;
SELECT SUM(price) FROM product WHERE c_id = 1;
SELECT AVG(price) FROM product WHERE c_id = 2;
SELECT MAX(price),MIN(price) FROM product;
语法:SELECT 字段1,字段2… FROM 表名GROUP BY分组字段 HAVING 分组条件;
分组操作中的having子语句,是用于在分组后对数据进行过滤的,作用类似于where条件。
having与where的区别:
having是在分组后对数据进行过滤;where是在分组前对数据进行过滤
having后面可以使用分组函数(统计函数);where后面不可以使用分组函数
SELECT c_id ,COUNT(*) FROM product GROUP BY c_id;
SELECT c_id ,COUNT(*) FROM product GROUP BY c_id HAVING COUNT(*) > 3;