我的编程空间,编程开发者的网络收藏夹
学习永远不晚

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

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

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

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

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

数据定义语言DDL

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

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

DDL常见命令及使用

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

CREATE DATABASE testDB;                 --创建一个名为testDB的数据库
CREATE TABLE Students (ID INT, Name TEXT);  --创建一个名为Students的表,包含ID和Name两个字段

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

ALTER TABLE Students ADD Grade INT;        --在Students表中添加一个名为Grade的字段
ALTER TABLE Students DROP COLUMN Grade;    --在Students表中删除名为Grade的字段

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

DROP DATABASE testDB;                     --删除名为testDB的数据库
DROP TABLE Students;                      --删除Students表

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

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

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

ALTER TABLE Students RENAME TO Pupils;  --将Students表重命名为Pupils

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

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

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

数据操作语言DML

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

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

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

常用的语句关键字有:SELECTINSERTUPDATEDELETEMERGECALLEXPLAIN PLANLOCK TABLE

DML常见命令及使用

以下的例子基于 SQL 语言:

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

SELECT * FROM Students;                    --选择Students表中的所有数据
SELECT Name, Grade FROM Students;          --选择Students表中的Name和Grade数据

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

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

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

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

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

DELETE FROM Students
WHERE ID = 1;                             --删除Students表中ID为1的数据

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

MERGE INTO Students AS Target
USING (SELECT ID, Name FROM Enrolled_Students) AS Source
ON Target.ID = Source.ID
WHEN MATCHED THEN 
UPDATE SET Name = Source.Name 
WHEN NOT MATCHED THEN 
INSERT (ID, Name) VALUES (Source.ID, Source.Name); --更新已存在的记录或插入新的记录

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

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

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

EXPLAIN PLAN FOR SELECT * FROM Students; -- 显示查询所有学生数据的执行计划

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

LOCK TABLE Students IN EXCLUSIVE MODE;  -- 对Students表施加独占锁

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

数据控制语言DCL

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

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

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

GRANT SELECT, INSERT, UPDATE ON Students TO user1;

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

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

下面是一个例子:

REVOKE UPDATE ON Students FROM user1;

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

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

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

数据查询语言DQL

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

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

  1. 查询所有数据:
SELECT * FROM Students;

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

  1. 查询部分字段:
SELECT Name, Age FROM Students;

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

  1. 对查询结果进行筛选:
SELECT * FROM Students WHERE Age > 18;

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

  1. 对查询结果进行排序:
SELECT * FROM Students ORDER BY Age DESC;

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

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

事务控制语言TCL

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

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

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

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

INSERT INTO Students (ID, Name, Age) VALUES (1, 'Tom', 18);
COMMIT;  -- 提交事务,将插入的数据保存到数据库中

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

INSERT INTO Students (ID, Name, Age) VALUES (1, 'Tom', 18);
ROLLBACK;  -- 回滚事务,撤销上一条插入命令

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

SAVEPOINT SP1;  -- 创建保存点 SP1
INSERT INTO Students (ID, Name, Age) VALUES (1, 'Tom', 18);
ROLLBACK TO SP1;  -- 回滚至保存点 SP1,不会撤销保存点后的操作

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

小结

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

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

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

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

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

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

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

深入源码和内核,一篇文章彻底理解数据库的各种超时参数

连接超时,即 connectTimeout,有时也被称为 网络超时 NetworkTimeout,是驱动程序建立 JDBC 底层的 TCP 连接的超时时间。

一文了解各大图数据库查询语言(Gremlin vs Cypher vs nGQL)| 操作入门篇

虽然和关系型数据库存储的结构不同(关系型数据库为表结构,图数据库为图结构),但不计各自的性能问题,关系型数据库可以通过递归查询或者组合其他 SQL 语句(Join)完成图查询语言查询节点关系操作。得益于 1987 年 SQL 成为国际标准化组织(ISO)标准,
一文了解各大图数据库查询语言(Gremlin vs Cypher vs nGQL)| 操作入门篇
2016-06-10

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录