一、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的区别)

  1. 当表被truncate后,表和索引的所占空间会恢复到初始大小,Delete操作不会减少表和索引的所占空间。
  2. Truncate只能对Table,Delete可以是Table和View(视图)。
  3. Truncate和Delete只删除数据,Drop则删除整个表(结构和数据)。
  4. Delete语句为DML(Data Manipulation Language 数据操纵语句),这个操作会被放到 rollback segment(用来临时的保存当数据库数据发生改变时的先前值)中,事务提交后才生效。如果有相应的trigger(触发器),执行的时候将被触发。Truncate是DDL(Data Definition Language),操作立即生效,原数据不会放到rollback segment中,不能回滚
  5. Truncate速度快,效率高。
  6. 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相关推荐

  1. consistent read一致性读,DDL DML DCL

    一致性读的概念consistent read mysql 的读操作是快照读,也就是说,在读操作执行的时候是某一个时刻的数据内容,不管其他的事务在做什么,原始数据会依据undo log 进行重新组织.一 ...

  2. DDL, DML, DCL, 和TCL的含义

    DDL, DML, DCL, 和TCL是什么? 在一些公司中提交给测试团队的SQL脚本会划分为DDL.DML等,但这些概念到底是如何定义的呢?SQL(Structure Query Language) ...

  3. SQL四种语言:DDL,DML,DCL,TCL

    1.DDL(Data Definition Language)数据库定义语言statements are used to define the database structure or schema ...

  4. 数据库必会必知 之 SQL四种语言:DDL DML DCL TCL

    今天群里面讨论,DDL 还是 DML,我这种小白还是总结下他们的区别吧. 1. DDL – Data Definition Language 数据库定义语言:定义数据库的结构. 其主要命令有CREAT ...

  5. DDL DML DCL

    2019独角兽企业重金招聘Python工程师标准>>> DDL is Data Definition Language statements. Some examples:数据定义语 ...

  6. ddl dml dcl

    DCL数据控制语言 创建临时表空间 create temporary tablespace user_temp tempfile 'E:/oracle/product/10.1.0/oradata/o ...

  7. DDL/DML/DCL/TCL基本概念

    2019独角兽企业重金招聘Python工程师标准>>> 1. 数据定义语言DDL DDL((Data Definition Language),用于定义/修改/删除数据对象(如表)的 ...

  8. SQL 四大功能DDL/DML/DCL/TCL

    SQL主要分成四部分: (1)数据定义.(SQL DDL)用于定义SQL模式.基本表.视图和索引的创建和撤消操作. (2)数据操纵.(SQL DML)数据操纵分成数据查询和数据更新两类.数据更新又分成 ...

  9. MySQL数据库应用(DDL/DML/DCL)

    一.DDL(Data Definition Language)数据定义语言: 适用范围:对数据库中的某些对象 创建数据库  :CREATE DATABASE  1.创建表: CREATETABLE [ ...

最新文章

  1. 作为一个程序员。数学重要吗,下面python大牛告诉你
  2. 我是Redis,MySQL大哥被我害惨了!
  3. laravel-admin关联查询问题解决办法
  4. 2017.4.7 e.toString() 与 e.getMessage()的区别
  5. 数据中心机房消防演练方案
  6. DL之AE:自编码器AutoEncoder的简介、应用、经典案例之详细攻略
  7. MySQL数据库-笔记01【数据库概念、数据库安装、终端操作数据库】
  8. PHP案例 网页计数器设计
  9. java8 base64_Java 8中的Base64 –加入乐趣为时不晚
  10. 三点外接圆_故地重游伪切圆——伪外接圆的基本性质
  11. 华为云域名注册_华为云域名专场钜惠,助推中小企业云速建站
  12. centOS docker容器的安装
  13. 连续七天熬夜3D建模师终于出手,让老板增加薪资待遇,3D建模初学者的4个技巧
  14. 民办大学计算机专业教师,干货!民办大学和独立院校教师创新排行榜,这五个高校最亮眼...
  15. 阿里云携手印度电信巨头 网络互连覆盖150个国家地区
  16. 字符串转换为小数(如String a=“123“),转换之后为123.0
  17. 卷积神经网络CNN:Tensorflow实现(以及对卷积特征的可视化)
  18. php网上商城系统下载,php网上商城系统 v3.0 rc6
  19. 施耐德SoMachine Basic中存在高危漏洞(CVE-2018-7783),可读取目标系统上的任意文件...
  20. 更新华为CCE域名证书方法

热门文章

  1. 今天一个客户公司里要让一台电脑通网
  2. 淘宝api开放平台SDK调用对接淘宝商品详情
  3. uniapp使用地图
  4. 【Machine Learning】机器学习之一些数学相关的知识储备
  5. 什么是回滚事务rollback?
  6. 深圳软件测试培训:Docker下部署MySQL和Wordpress
  7. java基础 DK JRE JVM 关系 JDK 下载和安装
  8. LeetCode 剑指 Offer II 前缀树(上) 专题总结
  9. 怎么画流程图?手把手教你制作
  10. 二进制炸弹(arm)