一篇文章,彻底理解数据库操作语言:DDL、DML、DCL、TCL

article/2025/8/2 15:23:38

脚本之家 设为“星标

第一时间收到文章更新

出品 | 程序新视界(ID:ershixiong_see_world)

最近与开发和运维讨论数据库账号及赋权问题时,发现大家对DDL和DML两个概念并不了解。于是写一篇文章,系统的整理一下在数据库领域中的DDL、DML、DQL、DCL的使用及区别。

通常,数据库SQL语言共分为四大类:数据定义语言DDL,数据操作语言DML,数据查询语言DQL,数据控制语言DCL。再加上事务控制语言TCL,一个共5个。

下面,我们就详细了解一下它们。

数据定义语言DDL

DDL(Data Definition Language)是数据定义语言,它用于定义或改变数据库或表的结构等初始化工作上。通常,包括数据类型、表(Table)之间的关系以及数据库(Database)中的约束、索引、视图、存储过程、触发器等。

DDL命令通常用于创建数据库模式,例如CREATE、ALTER、DROP、TRUNCATE、RENAME、COMMENT等。这些命令一旦执行,就无法被撤销,因为它们改变了数据库的结构。

DDL常见命令及使用

CREATE:用来创建数据库、表、索引等对象。例如:

CREATEDATABASEtestDB; --创建一个名为testDB的数据库

CREATETABLEStudents (IDINT, NameTEXT); --创建一个名为Students的表,包含ID和Name两个字段

ALTER:用来修改已存在的数据库对象。例如,

ALTERTABLEStudents ADDGrade INT; --在Students表中添加一个名为Grade的字段

ALTERTABLEStudents DROPCOLUMNGrade; --在Students表中删除名为Grade的字段

DROP:用来删除整个数据库或者数据库中的表。例如,

DROPDATABASEtestDB; --删除名为testDB的数据库

DROPTABLEStudents; --删除Students表

TRUNCATE:用来删除表中所有的行,但不删除表本身。例如,

TRUNCATETABLEStudents; --删除Students表中的所有数据,但不删除表本身

RENAME:用来重命名数据库或者表。例如,

ALTERTABLEStudents RENAMETOPupils; --将Students表重命名为Pupils

COMMENT:用来为数据库对象如表、列添加注释。例如,

COMMENTONCOLUMNStudents.Name IS'Student Name'; --在Students表的Name列上添加注释'Student Name'

以上是几种常见的DDL命令示例,不同的数据库系统可能语法稍有不同,使用时需要参考对应数据库的文档。

数据操作语言DML

DML(Data Manipulation Language)是数据操作语言,用于管理和检索数据库中的数据。适用于对数据库中的数据进行一些简单操作,比如增删改查表中的数据。

DML命令用于处理表中的记录,例如INSERT(插入)、UPDATE(更新)、SELECT(查询)、DELETE(删除)等。这些命令不会影响数据库的结构,而是直接作用于数据本身。如果执行了错误的操作,可以通过回滚机制来取消这些操作。

需要注意的是,DML命令不会自动提交,而且是可以回滚操作。

常用的语句关键字有:SELECT、INSERT、UPDATE、DELETE、MERGE、CALL、EXPLAIN PLAN、LOCK TABLE。

DML常见命令及使用

以下的例子基于 SQL 语言:

SELECT:从数据库中检索数据。例如,

SELECT* FROMStudents; --选择Students表中的所有数据

SELECTName, Grade FROMStudents; --选择Students表中的Name和Grade数据

INSERT:在表中插入新的数据。例如,

INSERTINTOStudents (ID, Name, Age)

VALUES(1, 'Tom', 18); --在Students表中插入一条新的数据

UPDATE:更新数据库表中的数据。例如,

UPDATEStudents

SETAge = 19

WHEREID= 1; --将Students表中ID为1的记录的Age设置为19

DELETE:从数据库中删除数据。例如,

DELETEFROMStudents

WHEREID= 1; --删除Students表中ID为1的数据

MERGE:合并两张表或更改其中一张表的数据。例如,

MERGEINTOStudents ASTarget

USING(SELECTID, NameFROMEnrolled_Students) ASSource

ONTarget.ID = Source.ID

WHENMATCHEDTHEN

UPDATESETName= Source.Name

WHENNOTMATCHEDTHEN

INSERT(ID, Name) VALUES(Source.ID, Source.Name); --更新已存在的记录或插入新的记录

CALL:调用一个存储过程。例如,

CALLUpdate_Students_Age(18); -- 调用名为“Update_Students_Age”的存储过程

EXPLAIN PLAN:提供一条查询语句的执行计划。例如,

EXPLAINPLAN FORSELECT* FROMStudents; -- 显示查询所有学生数据的执行计划

LOCK TABLE:对数据库表进行锁定,以控制并发读写。例如,

LOCKTABLEStudents INEXCLUSIVE MODE; -- 对Students表施加独占锁

以上是几种常见的DML命令示例,不同的数据库系统可能语法稍有不同,具体使用时需要参考对应数据库的文档。

数据控制语言DCL

DCL(Data Control Language)数据控制语言:主要用于控制用户对数据库的访问权限以及对数据的执行权限。常见的DCL语句包括GRANT、REVOKE等。

DCL主要包括两种SQL命令,分别是GRANT和REVOKE。

GRANT:该命令用于授予用户对数据库对象(例如表格)的访问权限。下面是一个例子:

GRANTSELECT, INSERT, UPDATEONStudents TOuser1;

在这个例子中,给 "user1" 授予了对 "Students" 表进行 SELECT、INSERT 和 UPDATE 的权限。

REVOKE:该命令用于撤回已经授予用户的某些权限。

下面是一个例子:

REVOKEUPDATEONStudents FROMuser1;

在这个例子中,撤回了 "user1" 对 "Students" 表的 UPDATE 权限。

使用DCL,数据库管理员可以精细化管理数据库的访问权限,保护数据的安全性。

注意,这些命令的具体语法和使用可能会根据使用的数据库系统而有所不同,所以在实际使用时,需要参考相应数据库的具体文档。

数据查询语言DQL

DQL(Data Query Language)数据查询语言:主要用来查询数据。实际上,DQL在操作中主要体现为SQL的SELECT语句。

例如,我们有一个学生表(Students)包括ID, 名字(Name), 年龄(Age)等字段:

  1. 查询所有数据:

查询所有数据:

这条命令会返回Students表中的所有行和列。

  1. 查询部分字段:

查询部分字段:

这条命令仅返回Name和Age字段的数据。

  1. 对查询结果进行筛选:

对查询结果进行筛选:

这条命令只返回年龄大于18的学生数据。

  1. 对查询结果进行排序:

对查询结果进行排序:

这条命令将数据按照年龄降序排列后返回。

以上几个例子展示了最基本的数据查询操作,但是实际上SELECT语句的用法和技巧还有很多,例如聚合函数(如COUNT、SUM)、分组(GROUP BY)、连接(JOIN)等等。

事务控制语言TCL

TCL (Transaction Control Language) 是事务控制语言的简称,主要用来管理和控制数据库中的事务(Transaction),以保证数据库操作的完整性和一致性。

TCL命令往往和DML(数据操作语言)命令一起使用,以确保一系列的数据库操作要么全部成功,要么全部不成功(可回滚至操作前的状态)。

TCL 主要包括以下几种命令:

COMMIT:用于提交事务,将所有数据库修改保存到数据库中。

INSERTINTOStudents (ID, Name, Age) VALUES(1, 'Tom', 18);

COMMIT; -- 提交事务,将插入的数据保存到数据库中

ROLLBACK:用于回滚事务,撤销所有未经提交的数据库修改。

INSERTINTOStudents (ID, Name, Age) VALUES(1, 'Tom', 18);

ROLLBACK; -- 回滚事务,撤销上一条插入命令

SAVEPOINT:为事务中的一系列操作设定保存点。设立保存点后,可以选择只回滚到保存点的部分,而不需要全部回滚。

SAVEPOINTSP1; -- 创建保存点 SP1

INSERTINTOStudents (ID, Name, Age) VALUES(1, 'Tom', 18);

ROLLBACKTOSP1; -- 回滚至保存点 SP1,不会撤销保存点后的操作

以上就是SQL中的TCL中的主要命令,用于确保数据库的完整性和一致性。

小结

本篇文章以具体的SQL语句讲解了数据库SQL语言四大分类(数据定义语言DDL,数据操作语言DML,数据查询语言DQL,数据控制语言DCL),同时也介绍了事务控制语言TCL。

针对不同的数据库,具体的SQL可能有所不同,但分类思想和功能基本相同。在上述英文缩写的记忆中,建议通过英文原文,特别是中间的英文字母来辅助记忆。

  1. 并发环境下,先操作数据库还是先操作缓存?

  2. 糟了,数据库崩了,又好像没蹦

  3. 被大厂废掉的年轻人

  4. 一个35岁大厂程序员的自叙

  5. iPhone为什么只有P大写?

并发环境下,先操作数据库还是先操作缓存?

糟了,数据库崩了,又好像没蹦

被大厂废掉的年轻人

一个35岁大厂程序员的自叙

iPhone为什么只有P大写?


http://www.hkcw.cn/article/JlvDxwBWcd.shtml

相关文章

镀膜的方法有哪些?全面解读PVD、CVD与电化学镀膜的原理与应用

镀膜,顾名思义,是在基材表面沉积一层或多层物质以改进其表面性能的过程。这些改进可以涉及到光学性能、机械强度、耐腐蚀性、电学性能等各个方面。第一部分:物理气相沉积(PVD) A. 概述 物理气相沉积(Physical Vapor Deposition, PVD)是一类通过物理过程将材料沉积到基材…

CodeForce超详细使用说明!!!

关注我哟定期推送帐号信息学新闻,竞赛自主招生,信息学专业知识,信息学疑难解答,信息学训练营信息等诸多优质内容的微信平台, 欢迎分享文章给你的朋友或者朋友圈! 有任何问题请联系小编! 摘要 Codeforces是一家为计算机编程爱好者提供在线评测系统的俄罗斯网站。该网站来…

掌握这32个常用PS快捷键,让你做图快10倍!

天下武功,唯快不破!而快捷键就是提高工作效率的帮手,不论你是初学的新手,还是需要进阶的高手,都需要熟练掌握快捷键的运用。今天克瑞思给大家整理分享32个最常用的PS快捷键,建议阅后收藏并勤加练习~*图中左上为Mac快捷键,右上为PC快捷键。 1.Ctrl+T:自由变形 这个快捷键…

原创1977年潘汉年去世,妻子拒绝家人让她回香港生活,说:他会复活的

1977年元月,潘汉年的病情恶化,他不得不离开妻子董慧去长沙救治。离别之前,董慧泪流满面,不肯离开。潘汉年只能憋住最后一口气,卯足了力气对妻子大声喊道:我一定会回来的。 这一声大喊,喊得撕心裂肺,让在场人不忍垂泪,虽然董慧心如刀绞,但她最终还是松开了丈夫的手,目…

原创庞统临死前,冷冷说了6个字,当众揭穿刘备真面目,可惜魏延不懂

前言 对于三国时期的历史认识,我们很多时候都来自于《三国演义》,但其中的人物形象都有所塑造,我们也便不能单一的从这一方面去看。其中刘备果真是“仁义”之君吗?刘备手中的谋士不止诸葛亮一个,庞统自然又算是一位。甚至他俩又有“卧龙凤雏”之说,要知道他们与刘备的联系…

中国学生扎堆!圈粉无数的UIUC究竟有何魅力?

伊利诺伊大学香槟分校(UIUC),这所公立学校简直是中国学生的“录取狂魔”,他疯狂到了什么程度呢? 据《Foreign Policy》统计:UIUC的中国留学生人数位于全美大学第一位,是拥有中国学生最多的美国大学。2027届,UIUC 有630名中国学生登记入学,占国际生人数的57.1%。 由此可见…

解锁工业自动化的无穷潜力——YK工控机

在工业自动化领域,设备的性能和稳定性直接影响生产效率和系统的可靠性。YK工控机凭借其卓越的性能、灵活的配置和可靠的设计,为现代工业应用提供了全方位的支持,成为智能制造和工业控制的理想选择。强劲性能,助力高效运作YK工控机配备了高性能的处理器和先进的硬件配置,能…

眼镜王蛇:毒蛇的“克星”,实力名副其实,平头哥都不敢轻举妄动

1. 眼镜王蛇概述 1.1 基本信息 眼镜王蛇(学名:Ophiophagus hannah),又称为“过山峰”,是世界上最长的毒蛇之一,其成体平均长度在3到4米之间,记录中最长的个体可达5.58米。这种蛇以其强大的体型和毒性而闻名,是蛇类中的顶级捕食者。眼镜王蛇的毒液含有复杂的混合毒素,主…

浅谈怎样设计好网站首页布局

在设计网站首页布局时,我们需要考虑许多因素,以确保网站的用户体验和视觉效果。以下是一些通用的建议,可以帮助您设计一个优秀的网站首页布局。怎样设计好网站首页布局明确目标:首先,您需要明确您的网站的目标和受众。这将有助于您确定首页布局的主要内容和功能。简洁明了…

拜托了身体里的她杀青,吴佳怡演刘绮梦

《拜托了,身体里的她》已经于2023年10月8日杀青,这部剧在云南顺利杀青,定档2024年7月份上映。这是一部充满奇幻色彩的喜剧作品,由吴佳怡跟杨昆领衔主演,还有张逸杰、吕昀峰等人主演。 《拜托了身体里的她》讲述了一对祖孙灵魂互换的故事,剧情轻松有趣又充满温情色彩。吴佳…

百慕大魔鬼三角的灵异事件,到底骗了你多少年?

百慕大是大西洋上的小岛,人口不到10万,离北京有一万公里之遥。照理说,这个地方与我们的生活没什么关联。然而,一提起百慕大的名号,当代年轻人恐怕没有几个不知道的。 在我们从小读到大的课外书里,“百慕大魔鬼三角”的概念出镜率相当之高。所谓的魔鬼三角一般是指百慕大、…

200万设计费的小米logo,背后的品牌VI视觉

小米公司在2021年对其品牌形象进行了一次重大的升级,这次升级由日本著名设计师原研哉亲自操刀,历时三年,设计费用高达200万元人民币。这次LOGO设计的灵感来源于“Mobile Internet”的缩写“MI”,同时也寓意着小米希望让用户省心,提供便捷、温馨的移动互联网服务新LOGO的设…

2024年,货代老板真的太难了!

2024年的货代行业,似一幅迷雾重重的神秘画卷,变幻莫测。 货代老板们恰如暴风雨中孤独前行的扁舟,在汹涌波涛里飘摇,承受着来自各方的巨大压力。员工的变动,成为货代老板心中难以言说的痛。 在这个竞争激烈的领域,员工本是企业前行的重要动力。然而,如今却成了令人头疼的…

三分钟,带你了解下一代传输层协议QUIC

QUIC(Quick UDP Internet Connection,快速UDP网络连接)发音同 "quick",是 Google 公司在 2012 年提出的使用 UDP 进行多路并发传输的协议。 2016 年,互联网工程任务组 IETF 开始标准化 QUIC。 2017 年,Google 开发并部署了 QUIC 协议的初始设计 gQUIC。 2021 年…

项目发布 | NEC这项“商赛必备”,是否真的适合你?

NEC 全美经济学挑战经济学作为各学科方向的基础学科,如果推荐竞赛的话,不得不提到著名的全美经济学挑战NEC!那么NEC到底是一个什么样的竞赛?不同年级的学生如何参赛呢? 下面就让我们一起来看一下吧! NEC竞赛介绍 ……全美经济学挑战赛(National Economics Challenge,简…

原创魏延的武功到底如何?在蜀汉勉强能挤进前十,这8人可以击败他

魏延,虽然号称蜀汉第六大将,但是单论武功,他只能勉强挤进前十,这8人可以轻松击败他。 一、关羽 关羽,是刘备手下的一位“万人敌”名将。 演义中,关羽的战绩非常出众。十八路诸侯讨伐董卓时,关羽斩杀了董卓手下大将华雄。官渡之战时,关羽又为曹操斩杀了袁绍手下名将颜良…

硬件情报站深度解析:RTX4090超大显存揭秘,Intel ArrowLake新U全面曝光

近日,硬件情报站第148期提供了大量令人瞩目的硬件信息。首先,出现了传说中超大显存的RTX4090D 48GB与RTX4080SUPER 32GB显卡,引起了市场的广泛关注。这两款显卡的显存容量分别提升到48GB和32GB,比标准版高出一倍,明显定位于特殊用途。在细致分析这些显卡的结构后发现,其显…

原创国足冲击2026世预赛:争取小组前四,踏上新征程

2026年世界杯将首次由三个国家联合举办,同时国际足联也对此次世界杯进行了改革,参赛球队数量从32支增至64支。这一政策让亚洲区的晋级名额大幅增加,从原来的4.5个提升至8.5个,成为五大洲中增长幅度最大的一项。除了日本、韩国、澳大利亚、沙特、伊朗和卡塔尔外,阿联酋、乌…

新品预定~ HOTTOYS HT 1/6 DX45 星球大战 达斯维达 战损版 黑武士

新品预定~ HOTTOYS HT 1/6 DX45 星球大战 达斯维达 战损版 黑武士‍ 官方价格: DX44普通版,2380RMB,定金470元 DX45豪华版, 2780RMB,定金550元 发售日期:预计2025年第4季度~2026年第1季度分批发货 (预定有优惠,详询客服) 预定详询客服~ (💁:modelfactory) (以厂家…

原创“四库全书”分别指的是哪些?看完涨知识了!建议收藏

《四库全书》是中国历史上规模最大的一部丛书,它的编纂完成于清朝乾隆年间,是中华文化遗产中的瑰宝。《四库全书》包含了从先秦到清朝中期的大量文献资料,几乎涵盖了古代中国的所有学术领域。下面我们就来详细了解一下《四库全书》的相关情况。一、《四库全书》的由来 《四库…