Mysql基础(2)--数据表的查询和约束

DQL表数据的查询

条件查询

image-20210809082558797

-- 条件查询
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 '%电脑%';

聚合函数查询

image-20210809083810396

-- 聚合函数查询
-- 计算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;
-- ......

约束

image-20210809092515826

唯一约束

image-20210809093805458

非空约束:

image-20210809094217953

主键约束

主键一般用于表中数据的唯一标识。不能为null值

image-20210809092640323

主键自增约束

image-20210809093154817

外键约束

让表与表之间产生关联关系,从而保证数据的准确性!

image-20210809091256577

外键级联更新/删除

了解

image-20210809092033147

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

?abc!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值