DDL,DML,DCL
一、DDL(data definition language)数据定义语言
数据定义语言用于执行数据库的任务,对数据库以及数据库中的各种对象进行创建、删除、修改等操作。基本的DDL命令及功能如下:
命令 | 功能说明 |
Alter procedure | 重新编译存储过程 |
Alter table | 修改表(增加列、重新定义列、更改表存储区分配) |
Alter table and constraint | 在已有的表增加约束 |
Create table | 创建表 |
Create index | 创建索引 |
Drop table | 删除表 |
Drop index | 删除索引 |
Truncate table | 截断表中的数据,表示先删除,再提交 |
Truncate 与 Delete 区别:(摘录:truncate和delete的区别_易腾一涵的博客-CSDN博客_truncate和delete的区别)
- 当表被truncate后,表和索引的所占空间会恢复到初始大小,Delete操作不会减少表和索引的所占空间。
- Truncate只能对Table,Delete可以是Table和View(视图)。
- Truncate和Delete只删除数据,Drop则删除整个表(结构和数据)。
- Delete语句为DML(Data Manipulation Language 数据操纵语句),这个操作会被放到 rollback segment(用来临时的保存当数据库数据发生改变时的先前值)中,事务提交后才生效。如果有相应的trigger(触发器),执行的时候将被触发。Truncate是DDL(Data Definition Language),操作立即生效,原数据不会放到rollback segment中,不能回滚。
- Truncate速度快,效率高。
- Truncate和Delete均不会使表结构及其列、约束、索引等发生改变。
二、DML(Data Manipulation Language 数据操纵语句)
数据操纵语句用于操纵数据库中各种对象、检索和修改数据。使用 DML 语句对某一种数据进行操作时,需要必须拥有该对象的对应操作权限或拥有相应的系统权限。DML命令包括的主要语句及功能如下表:
命令 | 功能说明 |
Selcet | 查询数据库 |
Insert | 在数据库中插入一行数据 |
Update | 更新数据库中的数据 |
Delete | 从表中删除数据 |
三、DCL (数据控制语句)
数据控制语句用于安全管理、确定哪些用户可以查看或修改数据库中的数据。DCL命令包括的主要语句及功能如下表:
命令 | 功能说明 |
grant | 将权限和角色授予用户或角色 |
revoke | 从用户或角色收回权限 |
--该⾓⾊的系统权限
select* from dba_sys_privs where grantee = 'dba'
--该⾓⾊的对象权限
select * from dba_tab_privs where grantee = 'dba'
--查询某个⽤户具有多少⾓⾊
select* from dba_role_privs where grantee = '⽤户名';
四、PL/SQL中使用DML、DDL语言
摘录自:PL/SQL中使用DML、DDL语言 - 简书
【select into 可以直接使用(赋值),但是如果是删除,创建,清空表需要用execute immediate执行】
4.1 DML语言的使用
DML语句在PL/SQL中的使用方式和单独执行并没有什么区别,示例:
beginINSERT INTO product(name,price,num) values('GTX 2080Ti',2333.33,33);COMMIT;
end;beginUPDATE product SET price = 6666.66 where num = 33;COMMIT;
end;beginDELETE FROM product where num = 33;COMMIT;
end;
4.2 DDL语言的使用
PL/SQL中DDL语言的使用需要用到 EXECUTE IMMEDIATE 命令,同时,这个命令不仅可以执行DDL语句,也可以执行DML语句.
--DDL
declare v_ddl_sql varchar2(200); beginv_ddl_sql := 'CREATE TABLE ddl_test(tid number(10) primary key,tname varchar2(10))';EXECUTE IMMEDIATE v_ddl_sql;
end;
--DML
declare v_dml_sql varchar2(200);
beginv_dml_sql := 'INSERT INTO ddl_test VALUES(1,';v_dml_sql := v_dml_sql || '''AAA'')';EXECUTE IMMEDIATE v_dml_sql;COMMIT;
end;
由于使用 EXECUTE IMMEDIATE 命令主要是拼接字符串,拼接起来很麻烦,所以如果不是特别需要,执行DML语句不要使用动态SQL的方式.
DDL,DML,DCL相关推荐
- consistent read一致性读,DDL DML DCL
一致性读的概念consistent read mysql 的读操作是快照读,也就是说,在读操作执行的时候是某一个时刻的数据内容,不管其他的事务在做什么,原始数据会依据undo log 进行重新组织.一 ...
- DDL, DML, DCL, 和TCL的含义
DDL, DML, DCL, 和TCL是什么? 在一些公司中提交给测试团队的SQL脚本会划分为DDL.DML等,但这些概念到底是如何定义的呢?SQL(Structure Query Language) ...
- SQL四种语言:DDL,DML,DCL,TCL
1.DDL(Data Definition Language)数据库定义语言statements are used to define the database structure or schema ...
- 数据库必会必知 之 SQL四种语言:DDL DML DCL TCL
今天群里面讨论,DDL 还是 DML,我这种小白还是总结下他们的区别吧. 1. DDL – Data Definition Language 数据库定义语言:定义数据库的结构. 其主要命令有CREAT ...
- DDL DML DCL
2019独角兽企业重金招聘Python工程师标准>>> DDL is Data Definition Language statements. Some examples:数据定义语 ...
- ddl dml dcl
DCL数据控制语言 创建临时表空间 create temporary tablespace user_temp tempfile 'E:/oracle/product/10.1.0/oradata/o ...
- DDL/DML/DCL/TCL基本概念
2019独角兽企业重金招聘Python工程师标准>>> 1. 数据定义语言DDL DDL((Data Definition Language),用于定义/修改/删除数据对象(如表)的 ...
- SQL 四大功能DDL/DML/DCL/TCL
SQL主要分成四部分: (1)数据定义.(SQL DDL)用于定义SQL模式.基本表.视图和索引的创建和撤消操作. (2)数据操纵.(SQL DML)数据操纵分成数据查询和数据更新两类.数据更新又分成 ...
- MySQL数据库应用(DDL/DML/DCL)
一.DDL(Data Definition Language)数据定义语言: 适用范围:对数据库中的某些对象 创建数据库 :CREATE DATABASE 1.创建表: CREATETABLE [ ...
最新文章
- 作为一个程序员。数学重要吗,下面python大牛告诉你
- 我是Redis,MySQL大哥被我害惨了!
- laravel-admin关联查询问题解决办法
- 2017.4.7 e.toString() 与 e.getMessage()的区别
- 数据中心机房消防演练方案
- DL之AE:自编码器AutoEncoder的简介、应用、经典案例之详细攻略
- MySQL数据库-笔记01【数据库概念、数据库安装、终端操作数据库】
- PHP案例 网页计数器设计
- java8 base64_Java 8中的Base64 –加入乐趣为时不晚
- 三点外接圆_故地重游伪切圆——伪外接圆的基本性质
- 华为云域名注册_华为云域名专场钜惠,助推中小企业云速建站
- centOS docker容器的安装
- 连续七天熬夜3D建模师终于出手,让老板增加薪资待遇,3D建模初学者的4个技巧
- 民办大学计算机专业教师,干货!民办大学和独立院校教师创新排行榜,这五个高校最亮眼...
- 阿里云携手印度电信巨头 网络互连覆盖150个国家地区
- 字符串转换为小数(如String a=“123“),转换之后为123.0
- 卷积神经网络CNN:Tensorflow实现(以及对卷积特征的可视化)
- php网上商城系统下载,php网上商城系统 v3.0 rc6
- 施耐德SoMachine Basic中存在高危漏洞(CVE-2018-7783),可读取目标系统上的任意文件...
- 更新华为CCE域名证书方法