当前位置: 首页 > news >正文

MySQL中DDL、DML、DQL、DCL四种语言详细介绍

对比:

分类英文全称中文全称作用常见命令
DDLData Definition Language数据定义语言定义和修改数据库结构CREATE, DROP, ALTER, TRUNCATE
DMLData Manipulation Language数据操作语言操作表中的数据(增、删、改)INSERT, UPDATE, DELETE
DQLData Query Language数据查询语言查询数据库中的数据SELECT, DISTINCT, GROUP BY, HAVING
DCLData Control Language数据控制语言控制用户权限和数据库安全GRANT, REVOKE, CREATE USER, DROP USER, SET PASSWORD

1. DDL(Data Definition Language,数据定义语言)

功能:
用于定义数据库对象(如数据库、表、视图、索引等)的结构。DDL 命令通常会改变数据库的结构,而不仅仅是修改数据。

常见命令:

  • CREATE:用于创建数据库或表等对象。

    • 示例:
      CREATE DATABASE my_database;
      CREATE TABLE users (
        id INT PRIMARY KEY AUTO_INCREMENT,
        name VARCHAR(50),
        email VARCHAR(100)
      );
      
  • DROP:删除数据库或表。

    • 示例:
      DROP DATABASE my_database;
      DROP TABLE users;
      
  • ALTER:修改现有表的结构,例如添加、删除或修改列。

    • 示例:
      ALTER TABLE users ADD age INT;
      ALTER TABLE users MODIFY name VARCHAR(100);
      
  • TRUNCATE:清空表中的所有数据,但保留表结构。

    • 示例:
      TRUNCATE TABLE users;
      

2. DML(Data Manipulation Language,数据操作语言)

功能:
DML 主要用于操作表中的数据,包括插入、更新、删除数据。DML 操作一般需要提交(COMMIT)或回滚(ROLLBACK)事务才能生效。

常见命令:

  • INSERT:向表中插入数据。

    • 示例:
      INSERT INTO users (name, email, age) VALUES ('Alice', 'alice@example.com', 25);
      
  • UPDATE:更新表中已有数据。

    • 示例:
      UPDATE users SET age = 30 WHERE name = 'Alice';
      
  • DELETE:删除表中的数据。

    • 示例:
      DELETE FROM users WHERE age > 30;
      

3. DQL(Data Query Language,数据查询语言)

功能:
用于从数据库中查询数据。DQL 实际上只有一个主要的命令:SELECT。通过 SELECT 语句,可以从表中提取所需的数据,并进行排序、过滤、分组等操作。

常见命令:

  • SELECT:查询数据。

    • 示例:
      SELECT * FROM users;  -- 查询所有列的所有数据
      SELECT name, email FROM users WHERE age > 20 ORDER BY age DESC;
      SELECT COUNT(*) FROM users;  -- 聚合查询,统计用户数
      
  • DISTINCT:去重查询。

    • 示例:
      SELECT DISTINCT name FROM users;  -- 查询不重复的用户名
      
  • GROUP BY 和 HAVING:分组查询并对分组结果进行条件筛选。

    • 示例:
      SELECT age, COUNT(*) AS total_users FROM users GROUP BY age HAVING total_users > 1;
      

4. DCL(Data Control Language,数据控制语言)

功能:
用于控制数据库中的访问权限和用户管理。DCL 命令主要涉及数据库安全,管理用户权限等。

常见命令:

  • GRANT:赋予用户权限。

    • 示例:
      GRANT SELECT, INSERT ON my_database.users TO 'user1'@'localhost';
      
  • REVOKE:收回用户权限。

    • 示例:
      REVOKE INSERT ON my_database.users FROM 'user1'@'localhost';
      
  • CREATE USER:创建新用户。

    • 示例:
      CREATE USER 'new_user'@'localhost' IDENTIFIED BY 'password123';
      
  • DROP USER:删除用户。

    • 示例:
      DROP USER 'new_user'@'localhost';
      
  • SET PASSWORD:修改用户密码。

    • 示例:
      SET PASSWORD FOR 'user1'@'localhost' = PASSWORD('new_password123');
      

相关文章:

  • SpringBoot-3-JWT令牌
  • Js 垃圾回收 与 内存泄漏
  • java当中的list集合
  • 第十四天- 排序
  • 轻量级TLS反向代理工具TLS-reverse-proxy:打造安全通信桥梁
  • 基于springboot的校园资料分享平台(048)
  • 307 Temporary Redirect 解决办法 httpx
  • 如何安全解除PDF文件密码?实测免费工具操作指南
  • Live555+Windows+MSys2 编译Androidso库和运行使用
  • scrapy_yield详解
  • JSON 简介
  • COBOL语言的安全开发
  • Spring Boot(十六):拦截器Interceptor
  • Android7 Input(一)Android Input服务初始化
  • anythingLLM结合searXNG实现联网搜索
  • LeetCode Hot 100 - 子串 | 560.和为K的子数组、239.滑动窗口最大值、76.最小覆盖子串
  • 【Vue3入门1】03-Vue3的基本操作(下)
  • Cocos Creator Shader入门实战(五):材质的了解、使用和动态构建
  • 推荐一个智能抠图与背景替换工具,支持docker部署、API调用
  • go复习目录
  • 习近平举行仪式欢迎巴西总统卢拉访华
  • 多地警务新媒体整合:关停交警等系统账号,统一信息发布渠道
  • 万科:存续债券均正常付息兑付
  • 西藏日喀则市拉孜县发生5.5级地震,震源深度10公里
  • 韩国总统大选候选人登记结束,共7人参选
  • 中国海外发展:今年前4个月销售665.8亿元,花费305亿元拿地