前文叙述:
很久之前整理的一些实战开发过程中常用的 SQL 语句,整理成表格与目录形式,可理解为实战速查手册,方便快速查阅、理解、复习和使用。所有文章如若需要转载请说明出处,请尊重技术劳动成果!!!
MySQL 常用语句表格归纳
类型 | SQL 语句示例 | 描述 |
创建表 |
| 创建新表。 |
删除表 |
| 删除表及其数据。 |
插入数据 |
| 向表中插入新数据。 |
更新数据 |
| 更新表中符合条件的数据。 |
删除数据 |
| 删除表中符合条件的数据。 |
查询数据 |
| 查询表中符合条件的数据。 |
查询所有列 |
| 查询表中所有列的数据。 |
过滤数据 |
| 使用条件过滤数据。 |
排序数据 |
| 按指定列升序(ASC)或降序(DESC)排序。 |
分组数据 |
| 按列分组并聚合数据。 |
连接表 |
| 内连接两张表。 |
左连接 |
| 左连接两张表(返回左表所有数据)。 |
右连接 |
| 右连接两张表(返回右表所有数据)。 |
联合查询 |
| 合并两个查询结果(去重)。 |
联合所有查询 |
| 合并两个查询结果(不去重)。 |
去重查询 |
| 返回列中唯一的值。 |
分页查询 |
| 分页查询数据。 |
条件筛选 |
| 检查列值是否在指定列表中。 |
模糊查询 |
| 模糊查询(% 表示任意字符,_ 表示单个字符)。 |
聚合函数 |
| 计算聚合值。 |
创建索引 |
| 为表中的列创建索引。 |
删除索引 |
| 删除表中的索引。 |
修改表结构 |
| 向表中添加新列。 |
删除列 |
| 删除表中的列。 |
修改列类型 |
| 修改表中列的数据类型。 |
重命名表 |
| 重命名表。 |
事务开始 |
| 开始一个事务。 |
事务提交 |
| 提交事务。 |
事务回滚 |
| 回滚事务。 |
创建视图 |
| 创建视图。 |
删除视图 |
| 删除视图。 |
创建存储过程 |
| 创建存储过程。 |
调用存储过程 |
| 调用存储过程。 |
创建用户 |
| 创建新用户。 |
授予权限 |
| 授予用户权限。 |
撤销权限 |
| 撤销用户权限。 |
备份表 |
| 通过查询备份表数据。 |
数据库备份 |
| 备份整个数据库。 |
求和 |
| 计算某一列的总和。 |
平均值 |
| 计算某一列的平均值。 |
最大值 |
| 查找某一列的最大值。 |
最小值 |
| 查找某一列的最小值。 |
计数 |
| 统计某一列的行数(非空值)。 |
去重计数 |
| 统计某一列中唯一值的数量。 |
字符串连接 |
| 将两列或多列的值连接为一个字符串。 |
字符串长度 |
| 计算字符串列的长度。 |
字符串截取 |
| 截取字符串的一部分。 |
四舍五入 |
| 对数值进行四舍五入。 |
绝对值 |
| 计算数值的绝对值。 |
日期差 |
| 计算两个日期之间的天数差。 |
日期格式化 |
| 将日期格式化为指定格式。 |
条件求和 |
| 根据条件对某一列求和。 |
条件计数 |
| 根据条件统计行数。 |
分组计算 |
| 按某一列分组后计算其他列的聚合值。 |
分组过滤 |
| 对分组结果进行过滤。 |
MySQL 数据类型
说明: MySQL 中处理涉及金额的数据时,建议使用 DECIMAL
数据类型,因为它能够精确存储浮点数,避免浮点数计算时的精度丢失问题。
类别 | 类型 | 描述 | 示例 |
整数类型 |
| 1字节,(-128,127) |
|
| 2字节,(-32768,32767) |
| |
| 3字节,(-8388608,8388607) |
| |
( ) | 4字节,(-2147483648,2147483647) |
| |
| 8字节,(-2^63,2^63-1) |
| |
浮点数类型 |
| 4字节,单精度 |
|
| 8字节,双精度 |
| |
定点数类型 |
| 精确小数,M为总位数,D为小数位数 |
|
字符串类型 |
| 定长,最多N字符 |
|
| 变长,最多N字符 |
| |
文本类型 |
| 最多255字符 |
|
| 最多65535字符 |
| |
| 最多16777215字符 |
| |
| 最多4294967295字符 |
| |
二进制类型 |
| 定长,最多N字节 |
|
| 变长,最多N字节 |
| |
二进制大对象 |
| 最多255字节 |
|
| 最多65535字节 |
| |
| 最多16777215字节 |
| |
| 最多4294967295字节 |
| |
日期时间类型 |
| 日期, |
|
| 时间, |
| |
| 日期时间, |
| |
| 时间戳, 到 |
| |
| 年份,1901到2155 |
| |
枚举类型 |
| 从预定义列表选1个值 |
|
集合类型 |
| 从预定义列表选多个值 |
|
JSON 类型 |
| 存储JSON格式数据 |
|
创建表
CREATE TABLE 表名 (列1 数据类型, 列2 数据类型); // 创建新表
删除表
DROP TABLE 表名; // 删除表及其数据。
插入数据
INSERT INTO 表名 (列1, 列2) VALUES (值1, 值2); // 向表中插入新数据。
更新数据
UPDATE 表名 SET 列1 = 值1 WHERE 条件; // 更新表中符合条件的数据。
删除数据
DELETE FROM 表名 WHERE 条件; // 删除表中符合条件的数据。
查询数据
SELECT 列1, 列2 FROM 表名 WHERE 条件; // 查询表中符合条件的数据。
查询所有列
SELECT * FROM 表名; // 查询表中所有列的数据。
过滤数据
SELECT * FROM 表名 WHERE 条件; // 使用条件过滤数据。
排序数据
SELECT * FROM 表名 ORDER BY 列1 ASC/DESC; // 按指定列升序(ASC)或降序(DESC)排序。
分组数据
SELECT 列1, COUNT(*) FROM 表名 GROUP BY 列1; // 按列分组并聚合数据。
连接表
SELECT * FROM 表1 INNER JOIN 表2 ON 表1.列 = 表2.列; // 内连接两张表。
左连接
SELECT * FROM 表1 LEFT JOIN 表2 ON 表1.列 = 表2.列; // 左连接两张表(返回左表所有数据)。
右连接
SELECT * FROM 表1 RIGHT JOIN 表2 ON 表1.列 = 表2.列; // 右连接两张表(返回右表所有数据)。
联合查询
SELECT 列1 FROM 表1 UNION SELECT 列1 FROM 表2; // 合并两个查询结果(去重)。
联合所有查询
SELECT 列1 FROM 表1 UNION ALL SELECT 列1 FROM 表2; // 合并两个查询结果(不去重)。
去重查询
SELECT DISTINCT 列1 FROM 表名; // 返回列中唯一的值。
分页查询
SELECT * FROM 表名 LIMIT 数量 OFFSET 起始位置; // 分页查询数据。
条件筛选
SELECT * FROM 表名 WHERE 列1 IN (值1, 值2); // 检查列值是否在指定列表中。
模糊查询
SELECT * FROM 表名 WHERE 列1 LIKE '%关键字%'; // 模糊查询(% 表示任意字符,_ 表示单个字符)。
聚合函数
SELECT COUNT(*), SUM(列1), AVG(列1), MAX(列1), MIN(列1) FROM 表名; // 计算聚合值。
创建索引
CREATE INDEX 索引名 ON 表名 (列1); // 为表中的列创建索引。
删除索引
DROP INDEX 索引名 ON 表名; // 删除表中的索引。
修改表结构
ALTER TABLE 表名 ADD 列名 数据类型; // 向表中添加新列。
删除列
ALTER TABLE 表名 DROP COLUMN 列名; // 删除表中的列。
修改列类型
ALTER TABLE 表名 MODIFY 列名 新数据类型; // 修改表中列的数据类型。
重命名表
ALTER TABLE 旧表名 RENAME TO 新表名; // 重命名表。
事务开始
BEGIN TRANSACTION; // 开始一个事务。
事务提交
COMMIT; // 提交事务。
事务回滚
ROLLBACK; // 回滚事务。
创建视图
CREATE VIEW 视图名 AS SELECT 列1, 列2 FROM 表名; // 创建视图。
删除视图
DROP VIEW 视图名; // 删除视图。
创建存储过程
CREATE PROCEDURE 存储过程名 AS SQL语句; // 创建存储过程。
调用存储过程
CALL 存储过程名; // 调用存储过程。
创建用户
CREATE USER 用户名 IDENTIFIED BY '密码'; // 创建新用户。
授予权限
GRANT 权限 ON 表名 TO 用户名; // 授予用户权限。
撤销权限
REVOKE 权限 ON 表名 FROM 用户名; // 撤销用户权限。
备份表
CREATE TABLE 新表名 AS SELECT * FROM 原表名; // 通过查询备份表数据。
数据库备份
mysqldump -u 用户名 -p 数据库名 > 备份文件.sql // 备份整个数据库。
IF 函数
语法 | 描述 | 示例 |
| 如果条件为真,返回值1;否则返回值2。 |
|
嵌套使用 | 嵌套 实现多条件判断。 |
|
CASE 函数
语法 | 描述 | 示例 |
简单 CASE: CASE 字段 | 比较字段值与指定值,返回对应结果。 |
|
搜索 CASE: CASE | 根据条件判断,返回对应结果。 |
|
求和
SELECT SUM(列名) FROM 表名; // 计算某一列的总和。
平均值
SELECT AVG(列名) FROM 表名; // 计算某一列的平均值。
最大值
SELECT MAX(列名) FROM 表名; // 查找某一列的最大值。
最小值
SELECT MIN(列名) FROM 表名; // 查找某一列的最小值。
计数
SELECT COUNT(列名) FROM 表名; // 统计某一列的行数(非空值)。
去重计数
SELECT COUNT(DISTINCT 列名) FROM 表名; // 统计某一列中唯一值的数量。
字符串连接
SELECT CONCAT(列1, ' ', 列2) AS 新列名 FROM 表名; // 将两列或多列的值连接为一个字符串。
字符串长度
SELECT LENGTH(列名) AS 长度 FROM 表名; // 计算字符串列的长度。
字符串截取
SELECT SUBSTRING(列名, 开始位置, 长度) FROM 表名; // 截取字符串的一部分。
四舍五入
SELECT ROUND(列名, 小数位数) FROM 表名; // 对数值进行四舍五入。
绝对值
SELECT ABS(列名) FROM 表名; // 计算数值的绝对值。
日期差
SELECT DATEDIFF(日期列1, 日期列2) FROM 表名; // 计算两个日期之间的天数差。
日期格式化
SELECT DATE_FORMAT(日期列, '格式') FROM 表名; // 将日期格式化为指定格式。
条件求和
SELECT SUM(IF(条件, 列名, 0)) FROM 表名; // 根据条件对某一列求和。
条件计数
SELECT COUNT(IF(条件, 1, NULL)) FROM 表名; // 根据条件统计行数。
分组计算
SELECT 列1, SUM(列2) FROM 表名 GROUP BY 列1; // 按某一列分组后计算其他列的聚合值。
分组过滤
SELECT 列1, SUM(列2) FROM 表名 GROUP BY 列1 HAVING SUM(列2) > 100; // 对分组结果进行过滤。
技术水平有限,如有错误,欢迎指正!!!