数据库开发必备:深入理解DDL、DML、DQL和DCL

在学习数据库的过程中,理解数据库操作的基本分类及其功能至关重要。数据库操作通常被分为四大类:DDL(数据定义语言)、DML(数据操纵语言)、DQL(数据查询语言) 和DCL(数据控制语言)。这些分类不仅帮助我们更好地理解数据

数据库开发必备:深入理解DDL、DML、DQL和DCL

在学习数据库的过程中,理解数据库操作的基本分类及其功能至关重要。数据库操作通常被分为四大类: DDL(数据定义语言)DML(数据操纵语言)DQL(数据查询语言)DCL(数据控制语言)。这些分类不仅帮助我们更好地理解数据库的操作机制,还能在实际应用中合理高效地管理数据库。本文将深入解析这四类语言的作用,并结合实际操作,详细介绍其中的内容。
一、数据库操作分类概述
1. DDL(数据定义语言)

DDL(Data Definition Language),数据定义语言,用来定义数据库结构,包括创建、修改和删除数据库对象,如数据库、表、索引和视图。常用的 DDL 操作包括:

  • 创建数据库和表
  • 修改数据库结构
  • 删除数据库和表
  • 设置表的约束和字段的类型
2. DML(数据操作语言)

DML(Data Manipulation Language),数据操作语言,主要用于对数据库中的数据进行增、删、改操作。常见的 DML 操作包括:

  • 插入数据(INSERT)
  • 更新数据(UPDATE)
  • 删除数据(DELETE)
3. DQL(数据查询语言)

DQL(Data Query Language),数据查询语言,主要用于从数据库中查询数据,通常使用 SELECT 语句来获取所需的信息。DQL 是数据库操作中最常用的操作之一,能够帮助开发人员获取需要的数据。

4. DCL(数据控制语言)

DCL(Data Control Language),数据控制语言,用于控制数据库的访问权限,主要包括授权、撤销权限和管理数据库用户。通过 DCL,数据库管理员可以控制谁可以访问数据库以及执行哪些操作。

分类

全称

说明

DDL

Data Definition Language

数据定义语言,用来定义数据库对象(数据库、表、字段)

DML

Data Manipulation Language

数据操作语言,用来对数据库表中的数据进行增、删、改操作

DQL

Data Query Language

数据查询语言,用来查询数据库中表的记录

DCL

Data Control Language

数据控制语言,用来创建数据库用户,控制数据库的访问权限

二、DDL:数据定义语言

DDL的英文全称是Data Definition Language(数据定义语言),用来定义数据库对象(数据库、表、字段)

1.DDL - 数据库操作

查询所有数据库

代码语言:javascript代码运行次数:0运行复制
SHOW DATABASES;

查询当前数据库

代码语言:javascript代码运行次数:0运行复制
SELECT DATABASE();

创建数据库

代码语言:javascript代码运行次数:0运行复制
CREATE DATABASE [IF NOT EXISTS] 数据库名字 [DEFAULT CHARSET 字符集] [COLLATE 排序规则];

删除数据库

代码语言:javascript代码运行次数:0运行复制
DROP DATABASE [IF EXISTS] 数据库名;

选择当前使用的数据库

代码语言:javascript代码运行次数:0运行复制
USE 数据库名;
2. DDL -表操作

2.1 查询

查询所有表:

代码语言:javascript代码运行次数:0运行复制
SHOW TABLES;

查询表结构:

代码语言:javascript代码运行次数:0运行复制
DESC 表名;

查询指定表的建表语句:

代码语言:javascript代码运行次数:0运行复制
SHOW CREATE TABLE 表名;

2.2创建

创建表:

代码语言:javascript代码运行次数:0运行复制
CREATE TABLE 表名 (
    字段1 类型 [COMMENT '字段注释'],
    字段2 类型 [COMMENT '字段注释'],
    字段3 类型 [COMMENT '字段注释'],
    ...
    字段n 类型 [COMMENT '字段注释'],
) [COMMENT '表注释'];

注意:最后一个字段后面没有逗号 ,

2.3数据类型

数值类型

类型

大小

有符号范围

无符号范围

描述

TINYINT

1 byte

-128到127

0到255

小整数值

SMALLINT

2 bytes

-32768到32767

0到65535

大整数值

MEDIUMINT

3 bytes

-8388608到8388607

0到16777215

大整数值

INT / INTEGER

4 bytes

-2147483648到2147483647

0到4294967295

大整数值

BIGINT

8 bytes

-263到263-1

0到2^64-1

极大整数值

FLOAT

4 bytes

-2128到2128

0到2^128

单精度浮点数

DOUBLE

8 bytes

-21024到21024

0到2^1024

双精度浮点数

DECIMAL

根据精度和标度定义

精确定位的小数值

精确定位的小数值

小数值(精确定位)

字符串类型

类型

大小

描述

CHAR

0-255 bytes

定长字符串

VARCHAR

0-65535 bytes

变长字符串

TINYBLOB

0-255 bytes

二进制数据

TINYTEXT

0-255 bytes

短文本字符串

BLOB

0-65535 bytes

长文本数据

TEXT

0-65535 bytes

长文本数据

MEDIUMBLOB

0-16777215 bytes

中等长度的二进制数据

MEDIUMTEXT

0-16777215 bytes

中等长度文本数据

LONGBLOB

0-4294967295 bytes

极大二进制数据

LONGTEXT

0-4294967295 bytes

极大文本数据

日期类型

类型

大小

范围

格式

描述

DATE

3 bytes

1000-01-01至9999-12-31

YYYY-MM-DD

日期值

TIME

3 bytes

-838:59:59至838:59:59

HH:MM:SS

时间值或持续时间

YEAR

1 byte

1901至2155

YYYY

年份值

DATETIME

8 bytes

1000-01-01 00:00:00至9999-12-31 23:59:59

YYYY-MM-DD HH:MM:SS

混合日期和时间值

TIMESTAMP

4 bytes

1970-01-01 00:00:01至2038-01-19 03:14:07

YYYY-MM-DD HH:MM:SS

混合日期和时间值,时间戳

2.4修改

添加字段:

代码语言:javascript代码运行次数:0运行复制
ALTER TABLE 表名 ADD 字段名 数据类型 [COMMENT '注释'] [约束];

修改数据类型:

代码语言:javascript代码运行次数:0运行复制
ALTER TABLE 表名 MODIFY 字段名 新数据类型;

修改字段名和字段类型:

代码语言:javascript代码运行次数:0运行复制
ALTER TABLE 表名 CHANGE 旧字段名 新字段名 新数据类型 [COMMENT '注释'] [约束];

删除字段:

代码语言:javascript代码运行次数:0运行复制
ALTER TABLE 表名 DROP 字段名;

修改表名:

代码语言:javascript代码运行次数:0运行复制
ALTER TABLE 表名 RENAME TO 新表名;

删除表:

代码语言:javascript代码运行次数:0运行复制
DROP TABLE [IF EXISTS] 表名;

删除表并重新创建:

代码语言:javascript代码运行次数:0运行复制
TRUNCATE TABLE 表名;
三、DML:数据操作语言

DML的英文全称是Data Manipulation Language(数据操作语言),用来对数据库表中的数据进行增、删、改操作

1. DML - 添加数据

给指定字段添加数据:

代码语言:javascript代码运行次数:0运行复制
INSERT INTO 表名 (字段名1, 字段名2, ...) VALUES (值1, 值2, ...);

给全部字段添加数据:

代码语言:javascript代码运行次数:0运行复制
INSERT INTO 表名 VALUES (值1, 值2, ...);

批量添加数据:

代码语言:javascript代码运行次数:0运行复制
INSERT INTO 表名 (字段名1, 字段名2, ...) VALUES (值1, 值2, ...), (值1, 值2, ...), (值1, 值2, ...);
代码语言:javascript代码运行次数:0运行复制
INSERT INTO 表名 VALUES (值1, 值2, ...), (值1, 值2, ...), (值1, 值2, ...);
2. DML - 修改数据

更新数据:

代码语言:javascript代码运行次数:0运行复制
UPDATE 表名 SET 字段名1 = 值1, 字段名2 = 值2, ... [WHERE 条件];

注:修改语句的条件可以有,也可以没有,若没有条件则修改整张表数据。

3. DML - 删除数据

删除数据:

代码语言:javascript代码运行次数:0运行复制
DELETE FROM 表名 [WHERE 条件];

注:1.DELETE语句的条件可以有,也可以没有,若没有条件则删除整张表数据。 ​ 2.DELETE语句不能删除某一个字段的值(可以使用UPDATE)。

四、DQL:数据查询语言

DQL的英文全称是Data Query Language(数据查询语言),用来查询数据库中表的记录

1.DQL - 基本查询

1. 1查询多个字段

查询指定字段:

代码语言:javascript代码运行次数:0运行复制
SELECT 字段1, 字段2, 字段3, ... FROM 表名;

查询所有字段:

代码语言:javascript代码运行次数:0运行复制
SELECT * FROM 表名;

1. 2设置别名

给字段设置别名:

代码语言:javascript代码运行次数:0运行复制
SELECT 字段1 [AS 别名1], 字段2 [AS 别名2], ... FROM 表名;

1.3去除重复记录

查询去重后的字段值:

代码语言:javascript代码运行次数:0运行复制
SELECT DISTINCT 字段列表 FROM 表名;
2.DQL - 条件查询

2.1语法

代码语言:javascript代码运行次数:0运行复制
SELECT 字段列表 FROM 表名 WHERE 条件列表;

2.2比较运算符

运算符

功能

>

大于

>=

大于等于

<

小于

<=

小于等于

=

等于

!= 或 <>

不等于

BETWEEN ... AND ...

在某个范围之内(包含最小、最大值)

IN (...)

在之后的列表中的值,多选

LIKE

模糊匹配(_匹配单个字符,%匹配任意字符)

IS NULL

是 NULL

2.3逻辑运算符

运算符

功能

AND 或 &&

并且(多个条件同时成立)

OR 或 `

NOT 或 !

非(不是)

3.DQL - 聚合函数

3.1介绍

将一列数据作为一个整体,进行统计计算。

3.2. 常见聚合函数

函数

功能

count

统计数量

max

最大值

min

最小值

avg

平均值

sum

求和

3.3语法

代码语言:javascript代码运行次数:0运行复制
SELECT 聚合函数(字段列表) FROM 表名;
4.DQL - 分组查询

4.1 语法

代码语言:javascript代码运行次数:0运行复制
SELECT 字段列表 FROM 表名 [WHERE 条件] GROUP BY 分组字段 [HAVING 分组后过滤条件];

4.2 WHERE 与 HAVING 区别

  • 执行时机不同: WHERE 是在分组之前进行过滤,不能与聚合函数一起使用。 HAVING 是在分组之后对结果进行过滤,可以与聚合函数一起使用。
  • 判断条件不同: WHERE 不能对聚合函数进行判断,而 HAVING 可以。

好的,按照您提供的格式,下面是 DQL - 排序查询 的详细信息:

5. DQL - 排序查询

5.1 语法

代码语言:javascript代码运行次数:0运行复制
SELECT 字段列表 FROM 表名 ORDER BY 字段1 排序方式1, 字段2 排序方式2;

5.2 排序方式

  • ASC:升序(默认值)
  • DESC:降序

注意:如果是多字段排序,当第一个字段值相同时,才会根据第二个字段进行排序。

根据您提供的图片内容,下面是 DQL - 分页查询 的详细信息:

6. DQL - 分页查询

6.1 语法

代码语言:javascript代码运行次数:0运行复制
SELECT 字段列表 FROM 表名 LIMIT 起始索引, 查询记录数;

6.2 注意事项

1.起始索引 从 0 开始,起始索引 = (查询页码 - 1)* 每页显示记录数。 2.分页查询是数据库的通用功能,不同的数据库有不同的实现,MySQL 中使用 LIMIT。 3.如果查询的是第一页数据,起始索引可以省略,直接写 LIMIT 10

7. DQL - 执行顺序

在 SQL 查询中,虽然我们按照一定的语法顺序写出查询语句,但实际上数据库引擎执行这些查询的顺序是固定的。理解 SQL 查询的执行顺序有助于优化查询并避免逻辑错误。下面是 DQL 查询的执行顺序:

  1. FROM:首先从指定的表中选择数据。
  2. WHERE:接下来,数据库引擎会过滤符合条件的记录,确保查询只返回满足条件的行。
  3. GROUP BY:在过滤之后,数据会根据指定的字段进行分组。
  4. HAVING:对于分组后的数据,数据库会应用 HAVING 子句的条件,进一步筛选符合要求的分组。
  5. SELECT:数据库引擎最后会选择要返回的列。注意,尽管 SELECT 是 SQL 查询的第一个关键字,但它是在其他操作完成后才会执行。
  6. ORDER BY:接下来,数据会按指定的排序规则进行排序。
  7. LIMIT:最后,如果存在分页查询的需求,LIMIT 会限制返回的记录数量。
五、DCL:数据控制语言

DCL的英文全称是Data Control Language(数据控制语言),用来创建数据库用户,控制数据库的访问权限

1.DCL - 管理用户

1. 1查询用户

代码语言:javascript代码运行次数:0运行复制
USE mysql;
SELECT * FROM user;

1. 2 创建用户

代码语言:javascript代码运行次数:0运行复制
CREATE USER '用户名'@'主机名' IDENTIFIED BY '密码';

1. 3修改用户密码

代码语言:javascript代码运行次数:0运行复制
ALTER USER '用户名'@'主机名' IDENTIFIED WITH mysql_native_password BY '新密码';

1.4.删除用户

代码语言:javascript代码运行次数:0运行复制
DROP USER '用户名'@'主机名';

根据您提供的信息,继续仿照写 DCL - 权限控制 相关操作:

2. DCL - 权限控制

2.1 查询权限

代码语言:javascript代码运行次数:0运行复制
SHOW GRANTS FOR '用户名'@'主机名';

2.2 授权权限

代码语言:javascript代码运行次数:0运行复制
GRANT 权限列表 ON 数据库名.表名 TO '用户名'@'主机名';

2.3 撤销权限

代码语言:javascript代码运行次数:0运行复制
REVOKE 权限列表 ON 数据库名.表名 FROM '用户名'@'主机名';

注意:

  • 多个权限之间,使用逗号分隔:在授予用户多个权限时,必须用逗号 , 来分隔每个权限。
  • 授权时,数据库名和表名可以使用 \* 进行通配,代表所有:可以使用星号 * 来代替具体的数据库名和表名,表示对所有数据库或表进行授权。

2.4 常见权限

权限

说明

ALL, ALL PRIVILEGES

所有权限

SELECT

查询数据

INSERT

插入数据

UPDATE

修改数据

DELETE

删除数据

ALTER

修改表结构

DROP

删除数据库/表/视图

CREATE

创建数据库/表

小结

通过本文的详细讲解,我们深入了解了数据库操作语言的四个主要分类:DDLDMLDQLDCL。每一类操作都有其独特的作用和功能,掌握它们是我们进行数据库设计、管理和开发的基础。在实际应用中,我们常常会结合这些操作进行综合应用,以满足不同的业务需求。

通过本篇博客的学习,希望能帮助你更好地理解和使用数据库操作语言,从而提高数据库管理和开发的效率。 INSERT | 插入数据 | | UPDATE | 修改数据 | | DELETE | 删除数据 | | ALTER | 修改表结构 | | DROP | 删除数据库/表/视图 | | CREATE | 创建数据库/表 |

小结

通过本文的详细讲解,我们深入了解了数据库操作语言的四个主要分类:DDLDMLDQLDCL。每一类操作都有其独特的作用和功能,掌握它们是我们进行数据库设计、管理和开发的基础。在实际应用中,我们常常会结合这些操作进行综合应用,以满足不同的业务需求。

通过本篇博客的学习,希望能帮助你更好地理解和使用数据库操作语言,从而提高数据库管理和开发的效率。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。 原始发表:2025-03-23,如有侵权请联系 cloudcommunity@tencent 删除数据数据库开发数据库ddldql

发布者:admin,转转请注明出处:http://www.yc00.com/web/1748183598a4743967.html

相关推荐

  • 数据库开发必备:深入理解DDL、DML、DQL和DCL

    在学习数据库的过程中,理解数据库操作的基本分类及其功能至关重要。数据库操作通常被分为四大类:DDL(数据定义语言)、DML(数据操纵语言)、DQL(数据查询语言) 和DCL(数据控制语言)。这些分类不仅帮助我们更好地理解数据

    6小时前
    40

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信