基础查询
基础查找:SELECT * from table_name
SELECT 列名称 FROM 表名称
唯一查找:SELECT DISTINCT 列名称 FROM 表名称
范围内检查:SELECT col_name FROM table_name WHERE col_name BETEWEEN 5 AND 10;
空值检查:SELECT col_name FROM table_name WHERE col_name IS null;
in操作符:SELECT col_name FROM table_name WHERE col_name IN (…);
NOT操作符:SELECT col_name FROM table_name WHERE NOT (条件);
AND 和 OR 注意优先级: and 优先级高于or
SELECT col_name FROM table_name WHERE (condi_1 OR condi_2) AND condi_3;
统计记录数:SELECT count(*) from table_name
使用通配符进行过滤:
% 替代一个或多个字符:
SELECT col_name FROM table_name WHERE col_name like ‘…%…’;
_ 仅替代一个字符
SELECT col_name FROM table_name WHERE col_name like ‘…_…’;
[charlist] 字符列中的任何单一字符
[^charlist] 或者[!charlist] 不在字符列中的任何单一字符
SELECT col_name FROM table_name WHERE col_name like ‘[]%’;
mysql操作:
以某字符结尾:REGEXP ‘[charlist]$’
以某字符开头:
排序分组
/*SELECR FROM
WHERE
GROUP BY
HAVING
ORDER BY
*/
GROUP BY分组 ,根据“By”指定的规则对数据进行分组,所谓的分组就是将一个“数据集”划分成若干个“小区域”,然后针对若干个“小区域”进行数据处理。
“多列分组”实际上就是就是按照多列(类别+摘要)合并后的值进行分组
转载: https://www.cnblogs.com/jingfengling/p/5962182.html.
HAVING where 子句的作用是在对查询结果进行分组前,将不符合where条件的行去掉,即在分组之前过滤数据,where条件中不能包含聚组函数,使用where条件过滤出特定的行。
having 子句的作用是筛选满足条件的组,即在分组之后过滤数据,条件中经常包含聚组函数,使用having 条件过滤出特定的组,也可以使用多个分组标准进行分组。
ORDER BY根据指定的列对结果集进行排序,默认顺序排列,DESC 倒序
SELECT Company, OrderNumber FROM Orders ORDER BY Company , OrderNumber DESC 先以Company倒序,再按照OrderNumber倒叙排列
聚合函数
函数 | 作用 |
---|---|
sum(列名) | 求和 |
max(列名) | 最大值 |
min(列名) | 最小值 |
avg(列名) | 平均值 |
count(列名) | 统计记录数 注意和count()的区别,count()和count(1)是用来统计表中共有多少数据。是针对全表的,而count(列)是针对于某一列的 |
多表查询
转载链接: http://www.zsythink.net/archives/1105/.
转载链接: https://www.w3school.com.cn/sql/sql_join.asp.
INNER JOIN:在表中存在至少一个匹配时,INNER JOIN 关键字返回行。(INNER JOIN=JOIN)
SELECT column_name(s)
FROM table_name1
INNER JOIN table_name2
ON table_name1.column_name=table_name2.column_name
**LEFT JOIN **:关键字会从左表 (table_name1) 那里返回所有的行,即使在右表 (table_name2) 中没有匹配的行。
SELECT column_name(s)
FROM table_name1
LEFT JOIN table_name2
ON table_name1.column_name=table_name2.column_name
**RIGHT JOIN **:关键字会右表 (table_name2) 那里返回所有的行,即使在左表 (table_name1) 中没有匹配的行。
SELECT column_name(s)
FROM table_name1
RIGHT JOIN table_name2
ON table_name1.column_name=table_name2.column_name
UNION: 操作符用于合并两个或多个 SELECT 语句的结果集。
UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。
默认地,UNION 操作符选取不同的值。如果允许重复的值,请使用 UNION ALL
SELECT column_name(s) FROM table_name1
UNION
SELECT column_name(s) FROM table_name2