1.SELECT语句
参考:https://www.techonthenet.com/mysql/select.php
SELECT [ ALL | DISTINCT | DISTINCTROW ]
[ HIGH_PRIORITY ]
[ STRAIGHT_JOIN ]
[ SQL_SMALL_RESULT | SQL_BIG_RESULT ] [ SQL_BUFFER_RESULT ]
[ SQL_CACHE | SQL_NO_CACHE ]
[ SQL_CALC_FOUND_ROWS ]
expressions
FROM tables
[WHERE conditions]
[GROUP BY expressions]
[HAVING condition]
[ORDER BY expression [ ASC | DESC ]]
[LIMIT [offset_value] number_rows | LIMIT number_rows OFFSET offset_value]
[PROCEDURE procedure_name]
[INTO [ OUTFILE 'file_name' options
| DUMPFILE 'file_name'
| @variable1, @variable2, ... @variable_n]
[FOR UPDATE | LOCK IN SHARE MODE];
2.INSERT语句
INSERT [ LOW_PRIORITY | DELAYED | HIGH_PRIORITY ] [ IGNORE ]
INTO table
(column1, column2, ... )
VALUES
(expression1, expression2, ... ),
(expression1, expression2, ... ),
[ ON DUPLICATE KEY UPDATE
dup_column1 = dup_expression1,
dup_column2 = dup_expression2,
... ];
3.UPDATE语句
——更新多个字段
UPDATE [ LOW_PRIORITY ] [ IGNORE ]
table
SET column1 = expression1,
column2 = expression2,
...
[WHERE conditions]
[ORDER BY expression [ ASC | DESC ]]
[LIMIT number_rows];
——从另一个表中拿到更新的字段来更新数据
UPDATE table1
SET column1 = (SELECT expression1
FROM table2
WHERE table1.column = table2.column)
[WHERE conditions];
——同时更新多张表
PS:5.7版本此语法更新不了,使用join更新
UPDATE table1, table2, ...
SET column1 = expression1,
column2 = expression2,
...
WHERE table1.column = table2.column
AND conditions;
4.DELETE语句(删除数据)
DELETE [ LOW_PRIORITY ] [ QUICK ] [ IGNORE ] FROM table
[WHERE conditions]
[ORDER BY expression [ ASC | DESC ]]
[LIMIT number_rows];
PS:可以排序后指定删除行,不排序的话会使用数据插入的顺序作为默认排序
5.TRUNCATE语句 (清空表)
TRUNCATE TABLE [database_name.]table_name;
6.UNION 操作(求并集,去重)
SELECT expression1, expression2, ... expression_n
FROM tables
[WHERE conditions]
UNION [DISTINCT]
SELECT expression1, expression2, ... expression_n
FROM tables
[WHERE conditions];
PS:UNION 默认就是 UNION DISTINCT
7.UNION ALL (求合集)
SELECT expression1, expression2, ... expression_n
FROM tables
[WHERE conditions]
UNION ALL
SELECT expression1, expression2, ... expression_n
FROM tables
[WHERE conditions];
8.INTERSECT (交集)
SELECT expression1, expression2, ... expression_n
FROM tables
[WHERE conditions]
INTERSECT
SELECT expression1, expression2, ... expression_n
FROM tables
[WHERE conditions];
9.INNER JOIN (simple join)(内连接)
参考:https://www.techonthenet.com/mysql/joins.php
SELECT columns
FROM table1
INNER JOIN table2
ON table1.column = table2.column;
也可以写成:
SELECT table1.columns
FROM table1
LEFT JOIN table2
ON table1.column = table2.column
WHERE table2.column is not null;
也可以写成(子查询效率较低):
SELECT columns
FROM table1
WHERE EXISTS (SELECT *
FROM table2
WHERE table1.column = table2.column)
也可以写成(子查询效率较低):
SELECT columns
FROM table1
WHERE column in (SELECT column
FROM table2)
10.LEFT OUTER JOIN(左外连接)
SELECT columns
FROM table1
LEFT [OUTER] JOIN table2
ON table1.column = table2.column;
11.RIGHT OUTER JOIN(右外连接)
SELECT columns
FROM table1
RIGHT [OUTER] JOIN table2
ON table1.column = table2.column;
12. DISTINCT (移除重复语句)
SELECT DISTINCT expressions
FROM tables
[WHERE conditions];
13.ORDER BY 排序
SELECT expressions
FROM tables
[WHERE conditions]
ORDER BY expression [ ASC | DESC ];
14.GROUP BY(分组)
SELECT expression1, expression2, ... expression_n,
aggregate_function (expression)
FROM tables
[WHERE conditions]
GROUP BY expression1, expression2, ... expression_n;
PS: aggregate_function 合计函数,如 SUM, COUNT, MIN, MAX, or AVG .
15.HAVING语句
SELECT expression1, expression2, ... expression_n,
aggregate_function (expression)
FROM tables
[WHERE conditions]
GROUP BY expression1, expression2, ... expression_n
HAVING condition;
PS:此函数是为了对 GROUP BY之后的函数做二次限制