SQL Commands | DDL, DQL, DML, DCL and TCL Commands

SQL(Structured Query Language)是用于管理关系数据库的标准语言,其命令可分为五大类:DDL(数据定义语言)DQL(数据查询语言)DML(数据操作语言)DCL(数据控制语言)TCL(事务控制语言)。以下是每类命令的详细解释及示例:


一、DDL(Data Definition Language)数据定义语言

用途:定义和管理数据库对象(如表、视图、索引、序列等)的结构。

核心命令
  1. CREATE

    • 作用:创建数据库对象。
    • 示例
      -- 创建表
      CREATE TABLE employees (
          id INT PRIMARY KEY,
          name VARCHAR(100),
          age INT,
          hire_date DATE
      );
      
      -- 创建索引
      CREATE INDEX idx_name ON employees(name);
      
      -- 创建视图
      CREATE VIEW high_salary_employees AS
      SELECT id, name FROM employees WHERE salary > 5000;
      
  2. ALTER

    • 作用:修改现有数据库对象的结构。
    • 示例
      -- 添加列
      ALTER TABLE employees ADD COLUMN salary DECIMAL(10, 2);
      
      -- 修改列类型
      ALTER TABLE employees ALTER COLUMN age TYPE VARCHAR(3);
      
      -- 重命名表
      ALTER TABLE employees RENAME TO staff;
      
  3. DROP

    • 作用:删除数据库对象。
    • 示例
      -- 删除表
      DROP TABLE employees;
      
      -- 删除索引(谨慎使用!)
      DROP INDEX idx_name;
      
  4. TRUNCATE

    • 作用:快速清空表数据(保留表结构)。
    • 示例
      TRUNCATE TABLE employees;
      
  5. COMMENT

    • 作用:为数据库对象添加注释。
    • 示例
      COMMENT ON TABLE employees IS '存储员工信息的核心表';
      

二、DQL(Data Query Language)数据查询语言

用途:从数据库中检索数据。

核心命令
  1. SELECT
    • 作用:查询数据。
    • 示例
      -- 查询所有列
      SELECT * FROM employees;
      
      -- 查询特定列
      SELECT id, name, salary FROM employees WHERE age > 30;
      
      -- 聚合查询(如计算平均薪水)
      SELECT department, AVG(salary) AS avg_salary
      FROM employees
      GROUP BY department;
      
      -- 排序查询结果
      SELECT * FROM employees ORDER BY hire_date DESC;
      
      -- 连接查询(JOIN)
      SELECT e.name, d.department_name
      FROM employees e
      JOIN departments d ON e.department_id = d.id;
      

三、DML(Data Manipulation Language)数据操作语言

用途:操作数据库中的数据(增、删、改)。

核心命令
  1. INSERT

    • 作用:插入数据。
    • 示例
      -- 插入单行数据
      INSERT INTO employees (id, name, age) VALUES (1, '张三', 30);
      
      -- 插入多行数据
      INSERT INTO employees (id, name, age)
      VALUES (2, '李四', 25), (3, '王五', 35);
      
  2. UPDATE

    • 作用:更新数据。
    • 示例
      -- 更新特定列
      UPDATE employees SET salary = 5000 WHERE id = 1;
      
      -- 更新多列
      UPDATE employees SET salary = 6000, age = 31 WHERE id = 1;
      
  3. DELETE

    • 作用:删除数据。
    • 示例
      -- 删除特定行
      DELETE FROM employees WHERE id = 1;
      
      -- 删除所有行(谨慎使用!)
      DELETE FROM employees;
      
  4. MERGE

    • 作用:合并数据(根据条件插入、更新或删除)。
    • 示例
      MERGE INTO target_table t
      USING source_table s
      ON t.id = s.id
      WHEN MATCHED THEN
          UPDATE SET t.name = s.name
      WHEN NOT MATCHED THEN
          INSERT (id, name) VALUES (s.id, s.name);
      

四、DCL(Data Control Language)数据控制语言

用途:控制数据库访问权限。

核心命令
  1. GRANT

    • 作用:授予权限。
    • 示例
      -- 授予查询权限
      GRANT SELECT ON employees TO user1;
      
      -- 授予所有权限
      GRANT ALL PRIVILEGES ON employees TO user2;
      
  2. REVOKE

    • 作用:撤销权限。
    • 示例
      -- 撤销查询权限
      REVOKE SELECT ON employees FROM user1;
      
      -- 撤销所有权限
      REVOKE ALL PRIVILEGES ON employees FROM user2;
      

五、TCL(Transaction Control Language)事务控制语言

用途:管理数据库事务(确保数据一致性)。

核心命令
  1. COMMIT

    • 作用:提交事务(永久保存更改)。
    • 示例
      BEGIN TRANSACTION;
      UPDATE accounts SET balance = balance - 100 WHERE id = 1;
      UPDATE accounts SET balance = balance + 100 WHERE id = 2;
      COMMIT; -- 提交事务
      
  2. ROLLBACK

    • 作用:回滚事务(撤销未提交的更改)。
    • 示例
      BEGIN TRANSACTION;
      UPDATE accounts SET balance = balance - 100 WHERE id = 1;
      -- 发现错误,回滚事务
      ROLLBACK;
      
  3. SAVEPOINT

    • 作用:设置事务保存点(部分回滚)。
    • 示例
      BEGIN TRANSACTION;
      INSERT INTO orders VALUES (1001, 'Laptop');
      SAVEPOINT sp1;
      INSERT INTO orders VALUES (1002, 'Mouse');
      -- 回滚到保存点 sp1
      ROLLBACK TO SAVEPOINT sp1;
      COMMIT;
      

总结

分类核心命令主要用途
DDLCREATE, ALTER, DROP定义/修改数据库结构
DQLSELECT查询数据
DMLINSERT, UPDATE, DELETE操作数据(增删改)
DCLGRANT, REVOKE控制用户权限
TCLCOMMIT, ROLLBACK管理事务(提交/回滚)

注意事项

  1. 数据库差异:不同数据库(如 MySQL、PostgreSQL、Oracle)的语法可能略有差异,需参考具体文档。
  2. 权限管理:DCL 命令需谨慎使用,避免误授或误删权限。
  3. 事务管理:TCL 命令确保数据一致性,尤其在金融等关键场景中不可或缺。

通过掌握这五类命令,您可以高效地操作和管理数据库系统。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值