SQL 备忘单,包含命令和说明(2025 年更新)
创建数据库和表命令
命令 | 描述 |
---|---|
CREATE DATABASE DATABASE; |
创建数据库 |
CREATE DATABASE IF NOT EXISTS database1; |
IF NOT EXISTS 允许您指示 MySQL 服务器在创建数据库之前检查是否存在同名数据库。 |
CREATE DATABASE IF NOT EXISTS database1 CHARACTER SET latin1 COLLATE latin1_swedish_ci |
Latin1 字符集使用 latin1_swedish_ci 排序规则,这是瑞典不区分大小写的顺序。 |
SHOW DATABASES |
运行以下 SQL 命令,您可以看到现有数据库的列表。 |
CREATE TABLE [IF NOT EXISTS] TableName (fieldname dataType [optional parameters]) ENGINE = storage Engine; |
创建表语法 |
SQL 数据类型备忘录
数字数据类型
命令 | 描述 |
---|---|
TINYINT( ) |
-128 到 127 通常;0 到 255 无符号。 |
SMALLINT( ) |
-32768 到 32767 通常 0 到 65535 无符号。 |
MEDIUMINT( ) |
-8388608 到 8388607 通常 0 到 16777215 无符号。 |
INT( ) |
-2147483648 到 2147483647 通常 0 到 4294967295 无符号。 |
BIGINT( ) |
-9223372036854775808 到 9223372036854775807 通常 0 到 18446744073709551615 无符号。 |
FLOAT |
带浮点小数点的近似小数值。 |
DOUBLE( , ) |
带浮点小数点的较大数值。 |
DECIMAL( , ) |
以字符串形式存储的 DOUBLE,允许固定小数点。用于存储货币值的选择。 |
文本数据类型
命令 | 描述 |
---|---|
CHAR( ) |
长度从 0 到 255 的固定字符串。 |
VARCHAR( ) |
长度从 0 到 255 的可变字符串。 |
TINYTEXT |
最大长度为 255 个字符的字符串。 |
TEXT |
最大长度为 65535 个字符的字符串。 |
BLOB |
最大长度为 65535 个字符的字符串。 |
MEDIUMTEXT |
最大长度为 16777215 个字符的字符串。 |
MEDIUMBLOB |
最大长度为 16777215 个字符的字符串。 |
LONGTEXT |
最大长度为 4294967295 个字符的字符串。 |
LONGBLOB |
最大长度为 4294967295 个字符的字符串。 |
日期/时间数据类型
命令 | 描述 |
---|---|
DATE |
YYYY-MM-DD |
DATETIME |
YYYY-MM-DD HH:MM:SS |
TIMESTAMP |
YYYYMMDDHHMMSS |
TIME |
HH:MM:SS |
其他数据类型
命令 | 描述 |
---|---|
ENUM |
用于存储从预定义文本值列表中选择的文本值。 |
SET |
也用于存储从预定义文本值列表中选择的文本值。它可以包含多个值。 |
BOOL |
TINYINT(1) 的同义词,用于存储布尔值 |
BINARY |
类似于 CHAR,区别在于文本以二进制格式存储。 |
VARBINARY |
类似于 VARCHAR,区别在于文本以二进制格式存储。 |
SQL SELECT 语句命令
命令 | 描述 |
---|---|
SELECT * FROM table1; |
选择表 |
SELECT t1,t2,t3, t4 FROM table1; |
我们只对获取 t1、t2、t3 和 t4 字段感兴趣。 |
SELECT Concat(t1, (, t3, )) , t4 FROM table2; |
获取 table2 列表 |
SELECT column_name|value|expression [AS] alias_name; |
别名字段名称语法 |
SQL WHERE 子句结合 AND、OR、IN、NOT IN 命令
命令 | 描述 |
---|---|
SELECT * FROM tableName WHERE condition; |
WHERE 子句语法 |
SELECT * FROM table1 WHERE t1 = 2 AND t2 = 2008; |
WHERE 子句结合 – AND 逻辑运算符 |
SELECT * FROM table1 WHERE t1 = 1 OR t1 = 2; |
WHERE 子句结合 – OR 逻辑运算符 |
SELECT * FROM table2 WHERE t1 IN (1,2,3); |
WHERE 子句结合 – IN 关键字 |
SELECT * FROM table2 WHERE t1 NOT IN (1,2,3); |
WHERE 子句结合 – NOT IN 关键字 |
SELECT * FROM table2 WHERE t3 = Female; |
WHERE 子句结合等于(=)比较运算符 |
SELECT * FROM table3 WHERE t3 > 2000; |
WHERE 子句结合大于(>)比较运算符 |
SELECT * FROM table1 WHERE t1<> 1; |
WHERE 子句结合不等于(<>)比较运算符 |
SQL 命令 INSERT INTO 表
命令 | 描述 |
---|---|
INSERT INTO table_name(column_1,column_2,...) VALUES (value_1,value_2,...); |
SQL INSERT 命令的基本语法 |
INSERT INTO table1 (t1,t2,t3,t4) VALUES (X1,X2,X3,X4); |
插入数据到表 |
INSERT INTO table_1 SELECT * FROM table_2; |
从另一个表插入到表中 |
SQL DELETE 命令
命令 | 描述 |
---|---|
DELETE FROM table_name [WHERE condition]; |
删除 MySQL 中的一行 |
SQL Update 命令
命令 | 描述 |
---|---|
UPDATE table_name SET column_name = new_value [WHERE condition]; |
update 命令语法 |
SQL 中的 ORDER BY:DESC 和 ASC 命令
命令 | 描述 |
---|---|
SELECT statement... [WHERE condition | GROUP BY field_name(s) HAVING condition] ORDER BY field_name(s) [ASC | DESC]; |
Order by 子句基本语法 |
SELECT {fieldName(s) | *} FROM tableName(s) [WHERE condition] ORDER BY fieldname(s) ASC /DESC [LIMIT N] |
DESC 和 ASC 语法 |
SQL GROUP BY 和 HAVING 子句命令
Group by
命令 | 描述 |
---|---|
SELECT statements... GROUP BY column_name1[,column_name2,...] [HAVING condition]; |
GROUP BY 语法 |
分组和聚合函数
命令 | 描述 |
---|---|
SELECT t2,COUNT(t1) FROM table1 GROUP BY t2; |
假设我们想要我们数据库中 t2 列值的总数。 |
HAVING 子句
命令 | 描述 |
---|---|
SELECT * FROM table2 GROUP BY t1_id,t4 HAVING t1_id = x1; |
table2 t1 id x1 的所有 t4。我们将使用以下脚本来达到我们的结果。 |
SQL 通配符命令,用于 Like、NOT Like、Escape、(%)、(_)
% 百分号通配符命令在 MySQL 中
命令 | 描述 |
---|---|
SELECT statements... WHERE fieldname LIKE xxx%; |
% 百分号通配符基本语法 |
_ 下划线通配符命令
命令 | 描述 |
---|---|
SELECT * FROM table1 WHERE t3 LIKE x2_; |
table1 中 t3 在年份“x2”的所有记录 |
NOT Like 通配符命令
命令 | 描述 |
---|---|
SELECT * FROM table1 WHERE t3 NOT LIKE X2_; |
假设我们想获取 t3 不在年份 X2_ 的 table1 记录 |
Escape 关键字通配符命令
命令 | 描述 |
---|---|
LIKE 67#%% ESCAPE #; |
我们想检查字符串“67%” |
SQL 正则表达式 (REGEXP)
命令 | 描述 |
---|---|
SELECT statements... WHERE fieldname REGEXP pattern; |
正则表达式基本语法 |
正则表达式元字符
命令 | 描述 |
---|---|
* |
星号 (*) 元字符用于匹配其前面的字符串零 (0) 次或多次出现 |
+ |
加号 (+) 元字符用于匹配其前面的字符串一次或多次出现。 |
? |
问号 (?) 元字符用于匹配其前面的字符串零 (0) 次或一次出现。 |
. |
点号 (.) 元字符用于匹配除换行符以外的任何单个字符。 |
[abc] |
[abc] 字符列表用于匹配任何封闭字符。 |
[^abc] |
[^abc] 字符列表用于匹配除封闭字符之外的任何字符。 |
[A-Z] |
[A-Z] 用于匹配任何大写字母 |
[a-z] |
[a-z] 用于匹配任何小写字母 |
[0-9] |
[0-9] 用于匹配 0 到 9 之间的任何数字。 |
^ |
插入符号 (^) 用于从开头开始匹配。 |
| |
竖线 (|) 用于分隔替代项。 |
[[:<:]] |
[[:<:]] 匹配单词的开头。 |
[[:>:]] |
[[:>:]] 匹配单词的结尾。 |
[:class:] |
[:class:] 匹配字符类,例如 [:alpha:] 匹配字母,[:space:] 匹配空格,[:punct:] 匹配标点符号,[:upper:] 匹配大写字母。 |
SQL 函数命令
字符串函数
命令 | 描述 |
---|---|
SELECT t1_id,t2, UCASE(t2) FROM table1; |
“UCASE” 函数用于此。它接受一个字符串作为参数,并将所有字母转换为大写。 |
数字函数
命令 | 描述 | 示例 |
---|---|---|
DIV |
整数除法 | SELECT 23 DIV 6; |
/ |
事业部 | SELECT 23 / 6 ; |
- |
减法 | SELECT 23 – 6 ; |
+ |
加法 | SELECT 23 + 6 ; |
* |
乘法 | SELECT 23 * 6 AS multiplication_result; |
% 或 MOD |
模数 | SELECT 23 % 6 ; 或 SELECT 23 MOD 6; |
Floor |
此函数移除数字的小数部分,并将其四舍五入到最接近的较低数字。 | SELECT FLOOR(23 / 6) AS floor_result; |
Round |
此函数将带小数点的数字四舍五入到最接近的整数。 | SELECT ROUND(23 / 6) AS round_result; |
存储函数
命令 | 描述 |
---|---|
CREATE FUNCTION sf_name ([parameter(s)]) |
创建存储函数的基本语法 |
CREATE FUNCTION sf_name ([parameter(s)]) |
强制性,告诉 MySQL 服务器创建一个名为 `sf_name` 的函数,并带有括号中定义的可选参数。 |
RETURNS 数据类型 |
强制性,指定函数应返回的数据类型。 |
DETERMINISTIC |
如果为函数提供相同的参数,它将返回相同的值。 |
STATEMENTS |
函数执行的过程代码。 |
SQL 聚合函数命令
命令 | 描述 |
---|---|
SELECT COUNT(t1_id) FROM table1 WHERE t1_id = 2; |
COUNT 函数 |
SELECT MIN(t3) FROM table2; |
MIN 函数 |
SELECT MAX(t3) FROM table2; |
MAX 函数 |
SELECT SUM(t4) FROM table3; |
SUM 函数 |
SELECT AVG(t4) FROM table3; |
AVG 函数 |
SQL IS NULL 和 IS NOT NULL 命令
命令 | 描述 |
---|---|
SELECT COUNT(t3) FROM table1; |
Null 作为值 |
CREATE TABLE table2( |
NOT NULL 值 |
comlumn_name IS NULL comlumn_name NOT NULL |
NULL 关键字基本语法 |
SELECT * FROM table1 WHERE t2_number IS NULL; |
IS NULL 示例 |
SELECT * FROM table1 WHERE t2_number IS NOT NULL; |
IS NOT NULL 示例 |
SQL AUTO_INCREMENT 命令
命令 | 描述 |
---|---|
CREATE TABLE table1 ( |
Auto increment 语法 |
SQL – ALTER、DROP、RENAME、MODIFY
命令 | 描述 |
---|---|
ALTER TABLE table_name ADD COLUMN column_name data_type; |
Alter- 语法 |
DROP TABLE sample_table; |
DROP TABLE 语法 |
RENAME TABLE current_table_name TO new_table_name; |
RENAME 命令语法 |
ALTER TABLE table1 CHANGE COLUMN t1_names t1name char(250) NOT NULL; |
CHANGE 关键字 |
ALTER TABLE table1 MODIFY t1name char(50) NOT NULL; |
MODIFY 关键字 |
ALTER TABLE table1 ADD t4 date NULL AFTER t3; |
AFTER 关键字 |
SQL LIMIT 和 OFFSET
命令 | 描述 |
---|---|
SELECT {fieldname(s) | *} FROM tableName(s) [WHERE condition] LIMIT N; |
LIMIT 关键字语法 |
SELECT * FROM table1 LIMIT 1, 2; |
LIMIT 查询中的 OFFSET |
SQL 子查询命令
命令 | 描述 |
---|---|
SELECT t1_name FROM table1 WHERE |
子查询 |
SQL JOIN 命令
命令 | 描述 |
---|---|
SELECT * FROM table1 CROSS JOIN table2 |
Cross JOIN |
SELECT table1.t1 , table1.t2 , table2.t1 |
INNER JOIN |
SELECT A.t1 , B.t2 , B.t3 |
LEFT JOIN |
SELECT A.t1 , A.t2, B.t3 |
RIGHT JOIN |
SELECT A.t1 , B.t2 , B.t3 |
“ON” 和 “USING” 子句 |
SQL UNION 命令
命令 | 描述 |
---|---|
SELECT column1, column2 FROM table1 |
UNION 语法 |
SELECT column1,column2 FROM table2; |
UNION DISTINCT |
SQL 视图命令
命令 | 描述 |
---|---|
CREATE VIEW view_name AS SELECT statement; |
视图语法 |
DROP VIEW general_v_movie_rentals; |
删除视图 |
SQL 索引命令
命令 | 描述 |
---|---|
CREATE INDEX id_index ON table_name(column_name); |
添加索引基本语法 |
DROP INDEX index_id ON table_name; |
删除索引基本语法 |