数据库
首页 > 数据库> > 【写MySQL语句中遇到的不熟练处记录】

【写MySQL语句中遇到的不熟练处记录】

作者:互联网

按从 Z 到 A 的顺序显示结果

字符串默认就是按字典顺序
Z 到 A 的排序:order by cust_name desc

先按XX排序,再按XX排序

先按顾客 ID 对结果进行排序,再按订单日期倒序排列。直接在order by中写多个字段即可。
 select cust_id,order_num from Orders order by cust_id, order_date desc;

order by 的使用在where 之后

包含 toy 一词

where prod_desc like '%toy%';

不包含 toy 一词

where prod_desc not like '%toy%';

包含 toy 和 carrots

where prod_desc like '%toy%' and prod_desc like '%carrots%' ;

返回大写字母 upper()

字母大写:upper(字符串)

取前n个字符并进行拼接

字符串的截取:substring(字符串,起始位置(从1开始),截取字符数)
字符串的拼接:concat(字符串1,字符串2,字符串3,...)
concat(substring(cust_name,1,2),substring(cust_city,1,3))

返回日期的一部分---date_format(日期,'%Y%m%d)

select order_num,order_date
from Orders
where date_format(order_date,'%Y-%m')='2020-01'
order by order_date
或者
where month(order_date) = 1 and year(order_date) = 2020

典型函数

最大值---max()
最小值---min()
平均值---avg()
总值 ---sum()
总数 ---count()

group by 和 having

where---过滤过滤指定的行
having--过滤分组,与group by连用
where条件语句后面不能加聚合函数(分组函数)
having 不能单独使用,必须和group by 联合使用

select order_num
from OrderItems
group by order_num
having sum(quantity)>=100
order by order_num

join 和 union

join---连接表,对列操作
union--连接表,对行操作。
union--将两个表做行拼接,同时自动删除重复的行。
union all---将两个表做行拼接,保留重复的行。

只用一条select语句,那就用or不用union了

标签:语句,熟练,---,字符串,MySQL,date,where,order,desc
来源: https://www.cnblogs.com/LittleOctopus/p/16125232.html