from https://blog.csdn.net/weixin_42329277/article/details/80767690
————————–【数据库SQL基础】————————–
查找基础指令
作用 | 命令 | 例 |
---|---|---|
打印去重 | distinct | SELECT DISTINCT 打印项 FROM 表名; |
定义显示 | CONCAT() | SELECT CONCAT(‘姓名: ‘,name) FROM 表名; |
判断空 | IS NULL | … WHERE 字段 IS NULL; |
IN集合查 | IN() | … WHERE 字段 IN (3000,3500,4000,9000) ; |
LIKE模糊查询 | LIKE | … WHERE name LIKE ‘eg%’; %为后面全是 _ 代表一个占位符 |
分组 | GROUP BY | 大前提:!!!SQL_MODE设置!!! |
备注别名 | as | SELECT id as di_list FROM 表名; |
显示组内所有成员 | group_concat(*) | select post,group_concat(name) from employee group by post; |
排序显示 | ORDER BY | SELECT * FROM employee ORDER BY salary ASC; 有ASC 和 DESC两种排序 |
打印个数 | LIMIT | LIMIT 0,5; #从第0开始,即先查询出第一条,然后包含这一条在内往后查5条 |
正则匹配 | REGEXP | SELECT * FROM 表名 WHERE name REGEXP ‘^ale’; |
if判断 | if() | select *,if(字段=1,”男”,”女”) from 表名; |
聚合函数
- 聚合函数聚合的是组的内容,若是没有分组,则默认一组
作用 | 命令 | 例 |
---|---|---|
计算和 | COUNT(*) | SELECT COUNT(*) FROM employee; |
计算和 | COUNT(*) | SELECT COUNT(*) FROM employee WHERE depart_id=1; |
最大值 | MAX(salary) | SELECT MAX(salary) FROM employee; |
最小值 | MIN(salary) | SELECT MIN(salary) FROM employee; |
取平均值 | AVG(salary) | SELECT AVG(salary) FROM employee; |
总数 | SUM(salary) | SELECT SUM(salary) FROM employee; |
总数 | SUM(salary) | SELECT SUM(salary) FROM employee WHERE depart_id=3; |
多表连接
作用 | 命令 | 例 |
---|---|---|
内连接 | INNER JOIN | 只连接匹配的行 SELECT 字段列表 FROM 表1 INNER JOIN 表2 ON 表1.字段 = 表2.字段; |
左连接 | LEFT JOIN | SELECT 字段列表 FROM 表1 LEFT JOIN 表2 ON 表1.字段 = 表2.字段; |
右连接 | RIGHT JOIN | SELECT 字段列表 FROM 表1 RIGHT JOIN 表2 ON 表1.字段 = 表2.字段; |
全外连接 | union | 显示左右两个表全部记录: 左连接 union 右连接; |
子查询
1:子查询是将一个查询语句嵌套在另一个查询语句中。
2:内层查询语句的查询结果,可以为外层查询语句提供查询条件。
3:子查询中可以包含:IN、NOT IN、ANY、ALL、EXISTS 和 NOT EXISTS等关键字
4:还可以包含比较运算符:= 、 !=、> 、<等
原创文章,作者:xsmile,如若转载,请注明出处:http://www.17bigdata.com/%e6%95%b0%e6%8d%ae%e5%ba%93sql-%e5%9f%ba%e7%a1%80%e5%91%bd%e4%bb%a4%e7%9b%ae%e5%bd%95/