最近项目在做存储过程的sql开发,用的可视化数据库连接工具叫做dbeaver,数据库驱动是DB2,看到前辈写的一个 dataBaseName.functionName (数据库名称.函数名)(如图A),很奇怪,DB2我也是第一次用到,点进去这个function看到只有两列数据, 第二列叫做DDL,这个列里面记录了几行sql,看起来是返回一个8位数的decimal类型的日期,好奇就去翻了翻百度DDL之类的相关词
(A)
DDL(data definition language)数据库定义语言:
其实就是我们在创建表的时候用到的一些sql,比如说:CREATE、ALTER、DROP等。DDL主要是用在定义或改变表的结构,数据类型,表之间的链接和约束等初始化工作上。
1.CREATE TABLE 表名称(列名称1 数据类型,列名称2 数据类型,列名称3 数据类型,....)
2.ALTER TABLE table_name (或者修改列)
4.DROP TABLE 表名称
5.DROP DATABASE 数据库名称(慎用)
6.create index 创建索引, drop index 删除索引
DML(data manipulation language)数据操纵语言:
这个就很简单啦,日常开发中写操作表数据的sql: SELECT、UPDATE、INSERT、DELETE。
SELECT 列名 FROM 表名
UPDATE 表名 SET 列名 = 新值,列名 = 新值 WHERE 列名称 = 某值
INSERT INTO tableName (列1, 列2,...) VALUES (值1, 值2,....)
DELETE FROM 表名称 WHERE 列名称 = 值
总结下二者区别:
DML是SELECT、UPDATE、INSERT、DELETE,这4条命令是用来对数据库里的数据进行操作的语言。
DDL主要的命令有CREATE、ALTER、DROP等,DDL主要是用在定义或改变TABLE的结构,数据类型,表之间的链接和约束等初始化工作上,他们大多在建立表或者数据库函数(建立一个function供其他存储过程的sql调用执行)时使用。
-------------------------------------------------------------------------------------------------------------------------------------------------------
翻的时找到两个新小陆,下面是某不知名大佬给的补充:
DCL(Data Control Language)——数据控制语言,用来授予或回收访问数据库的某种特权,并控制数据库操纵事务发生的时间及效果,对数据库实行监视等。
数据库控制功能,用来设置或更改数据库用户或角色权限的语句,包括grant,deny,revoke等语句。在默认状态下,只有sysadmin,dbcreator,db_owner或db_securityadmin等人员才有权力执行DCL 详细解释。
(1)COMMIT - save work done 提交
(2)SAVEPOINT - identify a point in a transaction to which you can later roll back 保存点
(3)ROLLBACK - restore database to original since the last COMMIT 回滚
(4)SET TRANSACTION - Change transaction options like what rollback segment to use 设置当前事务的特性,它对后面的事务没有影响
TCL - Transaction Control Language:事务控制语言,COMMIT - 保存已完成的工作,SAVEPOINT - 在事务中设置保存点,可以回滚到此处,ROLLBACK - 回滚,SET TRANSACTION - 改变事务选项