什么是DDL、 DML等SQL脚本?

哈,你贴的图挺全面的,很清楚地将SQL分为这几类。
但我们来谈谈为什么需要分解这么多以及实际过程中发生了什么。

上次我在以前的公司时,我刚刚接手了一个项目。
当时有一个老人在写SQL。
他总是喜欢说,“这就是DDL,这就是DML”。
我看着代码,一会儿是CREATE TABLE,一会儿是SELECT FROM……我心里一直在想,怎么能分得这么清楚呢?后来我发现这家伙主要是想在自己的电脑上运行脚本,以图方便。
以前是我把建表和索引创建放到一个.sql文件中,称为建表脚本,然后运行完后删除或者单独备份。
然后将查询和更新写入另一个名为 driver.txt 的文件。
它们不是严格按照规则划分的,而是按照功能单位划分的。

看,你提到的DDL,CREATE TABLES和DROP TABLE,实际上定义了数据库的结构,与数据库如何存储东西没有什么关系。
但就像 TRUNCATE TABLE 一样,对吗?它清除了表中的所有数据,但表结构仍然存在。
这被认为是 DML 还是 DDL?一些数据库系统(例如MySQL)将其分类为DDL,其他数据库系统可能更喜欢DML。
这说明分类上可能不存在绝对的统一。

在DML中,您列出的SELECT、INSERT、UPDATE和DELETE元素是基本元素,它们不会被转义。
但是这个分析查询执行计划的计划是否被视为操作数据?它不改变数据,但与操作数据直接相关,一般包含在DML中。
还有LOCK TABLE,它与流程紧密相连,以确保操作安全。
授予和撤销DCL以及控制权限当然没有问题。
他们只控制谁能做什么。

TCL的COMMIT和ROLLBACK控制运算符,在数据库操作中也是必不可少的,保证数据的一致性。

最独特的是DQL。
当你写SELECT时,你从FROM开始,它实际上是DML中SELECT语句的一部分。
严格来说,DQL(数据查询语言)分类强调SELECT语句专门用于“查询”,与DML中的“增删改查”操作并列放置。
但 SELECT 本身是 DML 的一部分,在 SQL 标准中相对简单。
他为什么要单独带她出去?这可能是为了强调教学或解释概念时探究的功能。

归根结底,目标这些分类主要是为了让大家更容易学习和理解SQL的各种功能。
在实际工作中,写SQL的人可能更感兴趣的是这行代码的作用——是创建表、验证数据、修改数据还是管理权限。
准确区分DDL/DML/DCL/TCL。
有时这是不必要的,除非您正在管理数据库或组织脚本,并且需要按功能分类来组织代码。

明白了这个你基本上就明白了每条SQL语句的作用了吧?不用担心分类本身,更重要的是了解每个关键词的作用。

什么是SQL文件SQL文件如何打开

听了你的话我有点困惑。
我们来谈谈实际的事情吧。

前年,我帮老家的邻居修电脑。
他的旧 Windows XP 系统突然无法连接到公司的数据库。
纠结了半天,发现SQL文件传输有问题。
这家伙对计算机一窍不通,我就打开记事本,给他看了SQL文件的内容,让他复制到数据库管理工具里再运行一下。
嘿嘿,真的解决了!
如果你处理的是大数据或者类似的事情,你需要使用专业的数据库软件,比如SQL Server、MySQL Workbench等。
我记得去年我在上海培训的时候老师就用过这些工具。
SQL 文件大小为数百兆字节,充满了复杂的查询和表连接。
如果没有真正的技巧,我无法理解它。

但是,如果您只想运行一些简单的查询并生成统计信息,则可以使用记事本打开它。
我这里有一个朋友,是做电子商务的。
他每天打开一个SQL文件,链接到Excel,导入数据进行销售分析,然后用记事本简单地更改查询语句。
非常实用。

如果您遇到格式特别旧的 SQL 文件,您可能需要使用 UltraEdit 等工具。
我没接触过这个领域,所以不敢乱说。
不管怎样,这取决于你想做什么。
如果比较简单,就用记事本,如果比较复杂,就使用专业软件。