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

embedded/2025/3/26 3:48:36/

对比:

分类英文全称中文全称作用常见命令
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');
      

http://www.ppmy.cn/embedded/176688.html

相关文章

【SpringCloud】微服务的治理以及服务间的远程调用

目录 一、微服务的诞生 二、服务注册和发现 2.1 需求的产生 2.2 注册中心原理 2.3 Nacos注册中心 2.4 Nacos安装部署教程 2.5 配置Nacos 三、OpenFeign 3.1 认识OpenFeign 3.2 快速入门 3.2.1 引入依赖 3.2.2 启动OpenFeign 3.2.3 编写OpenFeign客户端 3.2.4 使…

什么是TCP,UDP,MQTT?

以下内容来源于抖音,作者织点代码,读者根据文章内容以及相应论文添加自己的理解进行注释。 计算机之间怎么通信? 彼此之间用网线连接在一起就可以了 但是这样子太麻烦了,成本太高,操作也麻烦 集线器 于是我们可以把线拧在一起 而拧在一起的这个设备,就是集线器 但集线…

【程序人生】成功人生架构图(分层模型)

文章目录 ⭐前言⭐一、根基层——价值观与使命⭐二、支柱层——健康与能量⭐三、驱动层——学习与进化⭐四、网络层——关系系统⭐五、目标层——成就与财富⭐六、顶层——意义与传承⭐外层:调节环——平衡与抗风险⭐思维导图 标题详情作者JosieBook头衔CSDN博客专家…

Four.meme是什么,一篇文章读懂

一、什么是Four.meme? Four.meme 是一个运行在 BNB 链的去中心化平台旨在为 meme 代币供公平启动服务。它允许用户以极低的成本创建和推出 meme 代币,无需预售或团队分配,它消除了传统的预售、种子轮和团队分配,确保所有参与者有…

常见框架漏洞:Thinkphp(TP)篇

简介 ThinkPHP(简称 TP)是一款流行的 国产开源 PHP 框架,遵循 MVC(Model-View-Controller) 设计模式,以简洁、高效、灵活著称,广泛应用于国内中小型 Web 项目开发。 Thinkphp5x远程命令执行及g…

本地部署 LangManus

本地部署 LangManus 0. 引言1. 部署 LangManus2. 部署 LangManus Web UI 0. 引言 LangManus 是一个社区驱动的 AI 自动化框架,它建立在开源社区的卓越工作基础之上。我们的目标是将语言模型与专业工具(如网络搜索、爬虫和 Python 代码执行)相…

【原创】通过S3接口将海量文件索引导入elasticsearch

在医院海量影像文件通过s3传到蓝光存储时,要找一个文件需要全部文件遍历一遍,效率非常非常低。 S3 是对象存储服务,本身不是专门为快速文件查找设计的,而 Elasticsearch 是搜索引擎,在查找特定文件或数据方面具有明显…

Python实现MySQL数据库对象的血缘分析

Python控制台的程序,实现遍历MySQL中所有的SQL对象(表、视图、用户定义函数、存储过程和触发器等),并取得它们之间之前的依赖性关系,并列出三张表,第一张表的第一列是所有的SQL对象名称,第二列是…