mysql执行顺序:
from > join--on > where > group by > avg,sum.... > having > select > distinct > order by > limit
————————————————
sql语言中对大小写是不敏感的
一、限定查询(where 条件子句)
关系运算符:关系运算符包括了 >、<、>=、<=、=、!=、<> ,它们是用来进行大小或相等的比较,其中不等于有两种:!= 和 <>
范围查询:BETWEEN …… AND……
列表范围查找:IN、NOT IN
判断内容是否为空:IS NULL 、IS NOT NULL(IS NULL:如果内容为 NULL 则返回 true,否则返回 false;IS NOT NULL:如果内容不为 NULL,则返回 true,否则返回 false)
模糊查询:LIKE 、NOT LIKE
百分号(%):可匹配任意长度(可以匹配 0 位、1 位或者多位)的字符
下划线(_):匹配单个任意字符,常用来限制表达式的字符长度
参考网址:https://note.youdao.com/ynoteshare1/index.html?id=14ca4598f0aeacb67526869371cb2e5c&type=note
ORDER BY 子句
ORDER BY 排序字段 ASC|DESC , 排序字段 ASC|DESC
注:ORDER BY 子句是在 SELECT 子句后面再执行的,所以在 ORDER BY 中可以使用 SELECT 子句查询列所定义的列名
二、多表查询(join……on……)
参考:https://www.jianshu.com/p/4d26d92096f7
UNION,求并集,返回若干个查询结果的全部内容,但是重复的记录不显示
UNION ALL,求并集,返回若干个查询结果的全部内容,但是显示重复的记录
我们可以使用 UNION 代替 OR 子句,性能提高不少
INTERSECT,求交集,返回若干个查询结果的相同部分
MINUS,求差集,返回若干个查询结果中的不同部分
参考:https://note.youdao.com/ynoteshare1/index.html?id=f2a1f1d9fb04f1df7cb1bdebd4366943&type=note
三、分组聚合查询
聚合函数:
AVG()-返回数值列的平均值
SUM()-返回数值列的总数
MAX() / MIN() -返回指定列的最大 / 小值
COUNT()-返回 匹配指定条件 的行数
GROUP BY分组:
GROUP BY语句用于结合 Aggregate 函数,select中一定要有上述Aggregate 函数中的一个,如count(),sum(),avg()等。
having:
在 SQL 中增加 HAVING 子句原因是,WHERE 关键字后不能直接与 Aggregate 函数一起使用。且having只能与group by一起使用,不能单独使用。
四、子查询
从 SQL 的语法上来讲,子查询可以放在:
WHERE 子句中
HAVING 子句中
FROM 子句中
五、SQL Scalar 函数:
UCASE()-将某个字段转换为大写 UPPER
LCASE()-将某个字段转换为小写 LOWER
INITCAP():将字符串的开头字母大写
REPLACE(ename, 'A', '_') : 使用新的字符串替换旧的字符串
MID()-从某个文本字段提取字符
LEN()-返回某个文本字段的长度
ROUND()-对某个数值字段进行指定小数位数的四舍五入
floor()向下舍入为指定小数位数
ceiling()向上舍入为指定小数位数
NOW()-返回当前的系统日期和时间
FORMAT()-格式化某个字段的显示方式