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(
t1_number int NOT NULL,
t2_names varchar(255) ,
t3 varchar(6)
);
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 (
t1_id int(11) AUTO_INCREMENT,
t2_name varchar(150) DEFAULT NULL,
t3 varchar(500) DEFAULT NULL,
PRIMARY KEY (t1_id)
);
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
category_id =( SELECT MIN(t1_id) from table2);
子查询

SQL JOIN 命令

命令 描述
SELECT * FROM table1 CROSS JOIN table2 Cross JOIN
SELECT table1.t1 , table1.t2 , table2.t1
FROM table1 ,table2
WHERE table2.id = table1.table2_id
INNER JOIN
SELECT A.t1 , B.t2 , B.t3
FROM table2 AS A
LEFT JOIN table1 AS B
ON B.table2_id = A.id
LEFT JOIN
SELECT A.t1 , A.t2, B.t3
FROM table1 AS A
RIGHT JOIN table2 AS B
ON B.id = A.table2_id
RIGHT JOIN
SELECT A.t1 , B.t2 , B.t3
FROM table2 AS A
LEFT JOIN table1 AS B
USING ( table2_id )
“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; 删除索引基本语法