DQL表数据的查询
条件查询
-- 条件查询
SELECT * FROM product WHERE stock > 20;
SELECT * FROM product WHERE NAME='冰袖';
SELECT * FROM product WHERE price >= 400 AND price <= 6000;
SELECT * FROM product WHERE price BETWEEN 4000 AND 6000;
SELECT * FROM product WHERE stock = 14 OR stock=30 OR stock=23;
SELECT * FROM product WHERE stock IN(14,30,23);
SELECT * FROM product WHERE stock IS NULL;
SELECT * FROM product WHERE stock IS NOT NULL;
-- 查询名称以冰开头的商品信息
SELECT * FROM product WHERE NAME LIKE '冰%';
-- 查询名称第二个字是袖的商品信息
SELECT * FROM product WHERE NAME LIKE '_袖%';
-- 查询名称为4个字符的商品信息
SELECT * FROM product WHERE NAME LIKE '____';
-- 查询名称中包含电脑的商品信息
SELECT * FROM product WHERE NAME LIKE '%电脑%';
聚合函数查询
-- 聚合函数查询
-- 计算product表中总记录条数
SELECT COUNT(*) FROM product;
-- 获取最大值
SELECT MAX(price) FROM product;
SELECT MIN(stock) FROM product;
-- 获取总库存数量
SELECT SUM(stock) FROM product;
-- 获取name为冰袖的总库存数量
SELECT SUM(stock) FROM product WHERE NAME='冰袖';
SELECT AVG(price) FROM product WHERE NAME='冰袖';
排序查询
-- 排序查询
/*
排序查询语法
SELECT
列名列表
FROM
表名
[WHERE 条件]
ORDER BY
列名 排序方式,
列名 排序方式,...
排序方式: ASC升序,DESC-降序
如果有多个排序条件,只有当前边的条件值一样时,才会判断第二条件。
*/
-- 按照库存升序排序
SELECT * FROM product ORDER BY stock ASC;
-- 按照金额降序排序
SELECT * FROM product WHERE NAME LIKE '%手机%' ORDER BY price DESC;
-- 按照金额升序排序,如果金额相同,再按照库存降序排序
SELECT * FROM product ORDER BY price ASC,stock DESC;
分组查询
-- 分组查询
/*
如果有条件,一定是先进行条件判断
分组查询语法
SELECT 列名列表 FROM 表名 [WHERE 条件] GROUP BY 分组列名
[HAVING 分组后的条件过滤]
[ORDER BY 排序列名 排序方式]
*/
-- 按照品牌分组,获取每组商品的总金额
SELECT brand,SUM(price) FROM product GROUP BY brand;
-- 对金额大于4000元的商品,按照品牌分组,获取每组商品的总金额
seelct brand,SUM(price) FROM product WHERE price > 4000 GROUP BY brand;
-- 对金额大于4000元的商品,按照品牌分组,获取每组商品的总金额,只显示总金额大于7000元的
SELECT brand,SUM(price) getSum FROM product WHERE price > 4000 GROUP BY brand HAVING getSum > 7000;
-- 对金额大于4000元的商品,按照品牌分组,获取每组商品的总金额,只显示总金额大于7000元的、并按照总
SELECT brand,SUM(price) getSUm FROM product
WHERE price > 4000
GROUP BY brand
HAVING getSum > 7000
ORDER BY getSum DESC;
分页查询
-- 分页查询
/*
分页查询语法
SELECT 列名列表 FROM 表名
[WHERE 条件]
[GROUP BY 分组列名]
[HAVING 分组后的条件过滤]
[ORDER BY 排序列名 排序方式]
LIMIT 当前页数,每页显示的条数;
LIMIT 当前页数,每页显示的条数;
公式:当前页数=(当前页数-1) * 每页显示的条数
*/
-- 每页显示3条数据 如果一共7条数据
-- 第一页 当前页数=(1-1) * 3
SELECT * FROM product LIMIT 0,3;
-- 第二页 当前页数=(2-1) * 3
SELECT * FROM product LIMIT 3,3;
-- 第三页 当前页数=(3-1) * 3
SELECT * FROM product LIMIT 6,3;
-- ......
约束
唯一约束:
非空约束:
主键约束:
主键一般用于表中数据的唯一标识。不能为null值
主键自增约束:
外键约束:
让表与表之间产生关联关系,从而保证数据的准确性!
外键级联更新/删除
了解