标准SQL语句示例

一、基础操作

1. 数据库操作

sql 复制代码
-- 1. 创建数据库
CREATE DATABASE 数据库名称 CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

-- 2. 删除数据库
DROP DATABASE IF EXISTS 数据库名称;

-- 3. 选择数据库
USE 数据库名称;

-- 4. 显示所有数据库
SHOW DATABASES;

-- 5. 查看数据库创建语句
SHOW CREATE DATABASE 数据库名称;

2. 表操作

sql 复制代码
-- 6. 创建表
CREATE TABLE 表名 (
    主键列名 INT AUTO_INCREMENT PRIMARY KEY,
    列名1 VARCHAR(50) NOT NULL,
    列名2 VARCHAR(100) UNIQUE,
    创建时间 TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

-- 7. 删除表
DROP TABLE IF EXISTS 表名;

-- 8. 清空表
TRUNCATE TABLE 表名;

-- 9. 重命名表
RENAME TABLE 原表名 TO 新表名;

-- 10. 显示所有表
SHOW TABLES;

-- 11. 查看表结构
DESCRIBE 表名;

二、CRUD操作

1. 插入数据

sql 复制代码
-- 12. 插入单条数据
INSERT INTO 表名 (列名1, 列名2) VALUES ('值1', '值2');

-- 13. 插入多条数据
INSERT INTO 表名 (列名1, 列名2) VALUES 
('值1', '值2'),
('值3', '值4');

-- 14. 插入查询结果
INSERT INTO 目标表名 SELECT * FROM 源表名;

2. 查询数据

sql 复制代码
-- 15. 基础查询
SELECT 列名1, 列名2 FROM 表名;

-- 16. 条件查询
SELECT 列名1, 列名2 FROM 表名 WHERE 条件列 = '条件值';

-- 17. 排序查询
SELECT 列名1, 列名2 FROM 表名 ORDER BY 排序列 DESC;

-- 18. 分页查询
SELECT 列名1, 列名2 FROM 表名 LIMIT 10 OFFSET 20;

三、高级查询

1. 聚合函数

sql 复制代码
-- 19. 计数
SELECT COUNT(*) FROM 表名;

-- 20. 求和
SELECT SUM(数值列) FROM 表名;

-- 21. 平均值
SELECT AVG(数值列) FROM 表名;

-- 22. 分组统计
SELECT 分组列, COUNT(*) FROM 表名 GROUP BY 分组列;

2. 多表连接

sql 复制代码
-- 23. 内连接
SELECT 表A.列名, 表B.列名 
FROM 表A JOIN 表B ON 表A.关联列 = 表B.关联列;

-- 24. 左连接
SELECT 表A.列名, 表B.列名 
FROM 表A LEFT JOIN 表B ON 表A.关联列 = 表B.关联列;

-- 25. 右连接
SELECT 表A.列名, 表B.列名 
FROM 表A RIGHT JOIN 表B ON 表A.关联列 = 表B.关联列;

四、数据修改

1. 更新数据

sql 复制代码
-- 26. 基础更新
UPDATE 表名 SET 列名1 = '新值' WHERE 条件;

-- 27. 多列更新
UPDATE 表名 SET 列名1 = '新值1', 列名2 = '新值2' WHERE 条件;

-- 28. 基于子查询更新
UPDATE 表名 SET 列名 = (SELECT 列名 FROM 其他表 WHERE 条件) WHERE 条件;

2. 删除数据

sql 复制代码
-- 29. 条件删除
DELETE FROM 表名 WHERE 条件;

-- 30. 清空表
DELETE FROM 表名;

五、索引与约束

sql 复制代码
-- 31. 创建普通索引
CREATE INDEX 索引名 ON 表名(列名);

-- 32. 创建唯一索引
CREATE UNIQUE INDEX 索引名 ON 表名(列名);

-- 33. 删除索引
DROP INDEX 索引名 ON 表名;

-- 34. 添加主键
ALTER TABLE 表名 ADD PRIMARY KEY (列名);

-- 35. 添加外键
ALTER TABLE 表名 ADD CONSTRAINT 外键名 
FOREIGN KEY (列名) REFERENCES 关联表(关联列);

六、视图与存储过程

1. 视图

sql 复制代码
-- 36. 创建视图
CREATE VIEW 视图名 AS SELECT 列名1, 列名2 FROM 表名;

-- 37. 修改视图
ALTER VIEW 视图名 AS SELECT 列名1, 列名2 FROM 表名 WHERE 条件;

-- 38. 删除视图
DROP VIEW IF EXISTS 视图名;

2. 存储过程

sql 复制代码
-- 39. 创建存储过程
DELIMITER //
CREATE PROCEDURE 过程名(IN 参数名 参数类型)
BEGIN
    SELECT 列名 FROM 表名 WHERE 列名 = 参数名;
END //
DELIMITER ;

-- 40. 调用存储过程
CALL 过程名('参数值');
相关推荐
杨云龙UP12 小时前
Oracle Health Check巡检脚本使用SOP V2.0:从HTML原始报告→生成Word专业巡检报告→交付客户_2026-06-03
linux·运维·数据库·sql·oracle·报告·巡检
Database_Cool_12 小时前
Hudi 湖仓一体架构:阿里云 AnalyticDB MySQL 原生集成最佳实践
数据库·mysql·阿里云
我是一颗柠檬12 小时前
【Redis】发布订阅与消息队列Day8(2026年)
数据库·redis·后端·缓存
sukioe12 小时前
Redis 持久化+高可用详解:RDB/AOF/混合/主从/哨兵/集群
数据库·redis·缓存
全栈软件开发12 小时前
祈福导航系统V1.1更新 优化后端控制逻辑和前台UI
数据库·祈福导航系统
_qingche13 小时前
H2 数据库到 MySQL 数据迁移
java·数据库·spring boot·mysql·spring·重构·kotlin
AOwhisky13 小时前
MySQL 学习笔记(第一期):数据库基础与 MySQL 初探
运维·数据库·笔记·学习·mysql·云计算
数据库小学妹14 小时前
MySQL ORDER BY 深度解析:Using temporary 与 Using filesort 的底层机制及索引优化实战
数据库·经验分享·mysql·性能优化·dba
AI人工智能+电脑小能手14 小时前
【大白话说Java面试题 第93题】【Mysql篇】第23题:从查找速度来看,聚集索引和非聚集索引哪个更快?
java·开发语言·数据库·mysql·面试
WPF工业上位机14 小时前
YXGK.FakeVM数据库示例
jvm·数据库·oracle