sql中的各种语句

sql中的各种语句
最新回答
王牌冤家

2026-10-24 06:11:37

SQL语句主要分为数据定义(DDL)、数据操纵(DML)、数据控制(DCL)和事务控制(TCL)四大类,涵盖数据库结构定义、数据增删改查、权限管理及事务操作等核心功能。


一、数据定义语言(DDL):用于定义或修改数据库结构
DDL语句主要操作数据库对象(如表、视图、索引等),自动提交事务,无需手动确认。
1. CREATE:创建数据库对象
• 示例:`CREATE DATABASE 电商平台;`(创建数据库)、`CREATE TABLE 商品(商品ID INT PRIMARY KEY, 名称 VARCHAR(50));`(创建表并指定主键)
2. ALTER:修改现有数据库对象结构
• 示例:`ALTER TABLE 商品 ADD COLUMN 价格 DECIMAL(10,2);`(为表添加字段)、`ALTER TABLE 商品 MODIFY COLUMN 名称 VARCHAR(100);`(修改字段类型)
3. DROP:删除数据库对象
• 示例:`DROP TABLE 商品;`(删除表,需谨慎使用)、`DROP DATABASE 电商平台;`(删除数据库)
4. TRUNCATE:清空表中所有数据,保留表结构(比DELETE更高效,无日志记录)
• 示例:`TRUNCATE TABLE 商品;`


二、数据操纵语言(DML):用于操作数据库中的数据
DML是最常用的语句,涉及数据的增、删、改、查,需手动提交事务(部分数据库默认自动提交)。
1. INSERT:向表中插入数据
• 示例:`INSERT INTO 商品(商品ID, 名称, 价格) VALUES (1, '手机', 2999);`(单条插入)、`INSERT INTO 商品 VALUES (2, '电脑', 4999), (3, '平板', 1999);`(批量插入)
2. DELETE:删除表中指定数据
• 示例:`DELETE FROM 商品 WHERE 价格 < 2000;`(删除价格低于2000的商品)、`DELETE FROM 商品;`(删除所有数据,保留表结构)
3. UPDATE:修改表中现有数据
• 示例:`UPDATE 商品 SET 价格 = 价格 * 0.9 WHERE 商品ID = 1;`(将ID为1的商品打9折)
4. SELECT:查询表中数据(最核心的DML语句)
• 基础查询:`SELECT * FROM 商品;`(查询所有字段)、`SELECT 名称, 价格 FROM 商品 WHERE 价格 > 2000;`(查询指定字段并过滤)
• 高级查询:支持JOIN(多表连接)、GROUP BY(分组)、ORDER BY(排序)、LIMIT(分页)等,例如`SELECT 类别, COUNT(*) AS 商品数量 FROM 商品 GROUP BY 类别 ORDER BY 商品数量 DESC LIMIT 5;`


三、数据控制语言(DCL):用于管理数据库权限
DCL语句用于控制用户对数据库对象的访问权限,由数据库管理员(DBA)执行。
1. GRANT:授予用户权限
• 示例:`GRANT SELECT, INSERT ON 商品 TO 张三;`(授予张三查询和插入商品表的权限)、`GRANT ALL PRIVILEGES ON *.* TO 李四@'localhost' IDENTIFIED BY '123456';`(授予李四本地登录的所有权限)
2. REVOKE:撤销用户权限
• 示例:`REVOKE INSERT ON 商品 FROM 张三;`(撤销张三的插入权限)、`REVOKE ALL PRIVILEGES ON *.* FROM 李四@'localhost';`(撤销李四的所有权限)


四、事务控制语言(TCL):用于管理事务操作
TCL语句用于确保事务的原子性(要么全部执行,要么全部回滚),仅对DML语句生效(DDL和DCL自动提交)。
1. COMMIT:提交事务,永久保存修改
• 示例:执行`INSERT`或`UPDATE`后,`COMMIT;`确认修改生效
2. ROLLBACK:回滚事务,撤销未提交的修改
• 示例:若操作错误,`ROLLBACK;`可恢复到事务开始前的状态
3. SAVEPOINT:设置事务保存点,支持部分回滚
• 示例:`SAVEPOINT sp1;`(设置保存点)、`ROLLBACK TO sp1;`(回滚到sp1状态)


补充说明
• 不同数据库(如MySQL、Oracle、SQL Server)的语法略有差异(如Oracle用`SYSDATE`,MySQL用`NOW()`),但核心分类一致。
• DDL和DCL语句自动提交事务,无需`COMMIT`;DML语句需手动提交(或开启自动提交模式)。