1.mysql操作

*查询表达式总结
MySQL 中提供了 SELECT 语句进行数据库的查询,该语句具有灵活的使用方式和丰富
的功能。一般的查询格式为:
SELECT expr [,…] FROM tbl_name
[ WHERE条件 ]
[ GROUP BY分组 [HAVING子句对分组结果进行二次筛选] ]
[ ORDER BY排序 [ ASC | DESC ] ]
[ LIMIT限制显示条数 ]
整个语句的含义为:根据 WHERE 子句的条件表达式,从 FROM 子句指定的基本表中
找出满足条件的记录,在按照 SELECT 子句中的目标列表达式,选出记录中的属性值形成结
果表。
WHERE 常 用 运 算 符
比较运算符

, < , = , != (< >), >=
[NOT] IN (v1,v2..vn) : [不] 在范围内
[NOT] BETWEEN v1 AND v2 : [不] 在 v1 至 v2 之间(包含 v1,v2)
,
<=
逻辑运算符
NOT ( ! ) 逻辑非
OR( || )
逻辑或
AND ( && ) 逻辑与
例如:
取价格在 1000-3000 或者价格低于 500 的值
WHERE price >=1000 AND price <= 3000 OR price <=500;
SELECT SUM(goods_num) FROM goods;
(4) AVG:求平均值

求每个种类的商品平均价格
SELECT goods_type_id ,AVG(goods_price) FROM goods GROUP BY goods_type_id;
(5) COUNT:求总行数

求每个商品种类下商品个数
SELECT goods_type_id,COUNT(*) FROM goods GROUP BY good_type_id;

要把每个字段名当成变量来理解,它可以进行运算

查询本店每个商品价格比市场价低多少;
SELECT goods_id,goods_name,goods_price-market_price FROM goods;
HAVING 与 WHERE 的异同点
having 与 where 类似,可以筛选数据,where 后的表达式怎么写,having 后就怎么写

where 针对表中的列发挥作用,查询数据
having 对查询结果中的列发挥作用,筛选数据
查询本店商品价格比市场价低多少钱,输出低 100 元以上的商品
SELECT goods_id,goods_name,market_price - shop_price AS s FROM goods having s>100;

这里不能用 where 因为 s 是查询结果,而 where 只能对表中的字段名筛选

如果用 where 的话则是:
SELECT goods_id,goods_name FROM goods WHERE market_price - shop_price > 100
同时使用 where 与 having
查询本店商品种类为 3 的商品价格比市场价低多少钱,输出低 100 元以上的商品
SELECT cat_id,goods_name,market_price-shop_price AS s FROM goods WHERE goods_type_id=3 HAVING s>100
价格不在 3000 与 5000 之间的值
WHERE price NOT BETWEEN 3000 AND 5000
模糊查询
LIKE 像
% (百分号) 任意个字符
通配符:
_ (下划线) 任意一个字符
查找姓刘的人:WHERE s_name LIKE ’刘%‘
查找姓刘的且全名为两个字的:WHERE s_name LIKE ’刘__‘
GROUP BY 分 组
一般情况下 group 需与聚合函数一起使用才有意义
MySQL 中的五种聚合函数:
(1) MAX:求最大值

取出最大的价格的值,只会返回一个值。
SELECT MAX(goods_price) FROM goods
查询每个种类下价格最高的
SELECT goods_type_id,MAX(goods_price) FROM goods GROUP BY good_type_id
查出价格最高的商品编号
(2) MIN:求最小值
(3) SUM:求总数和

求商品库存总和

(4) AVG:求平均值

求每个种类的商品平均价格
(5) COUNT:求总行数
求每个商品种类下商品个数

要把每个字段名当成变量来理解,它可以进行运算

查询本店每个商品价格比市场价低多少;
HAVING 与 WHERE 的异同点
having 与 where 类似,可以筛选数据,where 后的表达式怎么写,having 后就怎么写
where 针对表中的列发挥作用,查询数据
having 对查询结果中的列发挥作用,筛选数据
查询本店商品价格比市场价低多少钱,输出低 100 元以上的商品

这里不能用 where 因为 s 是查询结果,而 where 只能对表中的字段名筛选

如果用 where 的话则是:
同时使用 where 与 having
查询本店商品种类为 3 的商品价格比市场价低多少钱,输出低 100 元以上的商品

ORDER BY
(1)ORDER BY price //默认升序排列
(2)ORDER BY price DESC //降序排列
(3)ORDER BY price ASC //升序排列,与默认一样
(4)ORDER BY rand() //随机排列,效率不高

按商品种类编号升序排列,每个种类下的商品价格降序排列
SELECT*FROM goods ORDER_BY goods_type_id,price DESC
LIMIT
LIMIT [offset , ] N
offset 偏移量,可选,不写则相当于 LIMIT 0,N
N 取出条目
取价格第 4-6 高的商品
SELECT goods_id,goods_name,goods_price FROM goods ORDER BY good_price DESC LIMIT 3,3;*

猜你喜欢

转载自blog.csdn.net/weixin_38178354/article/details/82622000