首页 > 其他分享 >DDL语句

DDL语句

时间:2023-07-14 16:01:33浏览次数:44  
标签:语句 回滚 对象 数据库 DDL employees

DDL(Data Definition Language)是Oracle数据库的数据库定义语言,用于定义数据库对象。它允许用户创建、修改或删除数据库对象,如表、视图、索引、触发器、存储过程等。

DDL语句的主要类型有:

  1. CREATE:用于创建数据库对象,如表、视图、索引、序列、存储过程等。

CREATE TABLE employees(
...
);

  1. ALTER:用于修改数据库对象的结构或属性。

ALTER TABLE employees
ADD column_name datatype;

  1. DROP:用于删除数据库对象。

DROP TABLE employees;

  1. TRUNCATE:用于删除表中的所有行,但表结构及其属性保留。

TRUNCATE TABLE employees;

  1. COMMENT:用于添加注释或注释信息。

COMMENT ON TABLE employees
IS 'Employee Information';

  1. RENAME:用于重命名数据库对象。

RENAME employees TO worker;

  1. GRANT/REVOKE:用于授予或撤销对象权限。

GRANT SELECT ON employees TO public;
REVOKE SELECT ON employees FROM public;

DDL语句在Oracle数据库中属于非事务性语句。一旦执行,其效果立即发生,不能回滚。但如果在执行过程中出现错误,整个DDL语句将不执行(回滚)。

因此在执行DDL语句时,需要注意:

  1. 事务性:DDL语句自动提交,无需使用COMMIT进行提交,并不属于任何事务。

  2. 不能回滚:一旦成功执行,无法使用ROLLBACK回滚DDL语句。

  3. 全部执行或全部不执行:如果DDL语句的一部分出现错误, Oracle将回滚整个DDL语句。

  4. 对象依赖:在删除对象前,需要解决其依赖的其他对象,否则会出现错误。

  5. 锁定:DDL语句会锁定相关对象,阻止其他会话访问。执行时间可能较长。

  6. 保存点:DDL语句执行前建议设置保存点,以便在出现错误时进行回滚。

DDL语句在数据库的逻辑设计和模型设计中起着非常重要的作用。熟练掌握DDL语句,可以更高效地设计和管理Oracle数据库,特别是对DBA而言,DDL语句是常用工具之一。要充分利用DDL语句,需要理解其特性,熟悉各种语法,并在实践中不断训练。

标签:语句,回滚,对象,数据库,DDL,employees
From: https://www.cnblogs.com/suixingc/p/17553922.html

相关文章

  • DCL语句
    DCL(DataControlLanguage)是Oracle数据库的数据控制语言,用于授权和撤销数据库对象的访问权限,以及控制数据库的事务处理。DCL的主要语句有:GRANT:用于授予对象权限,如SELECT、INSERT、UPDATE、DELETE等权限。语法:GRANTprivilegeONobjectTO{user|PUBLIC|role}[W......
  • CASE WHEN语句
    CASE表达式是SQL中的条件选择语句,用于根据条件选择相应的结果。它类似于其他编程语言中的switch-case语句。CASE表达式的基本语法有两种:条件THEN结果:CASEWHENcondition1THENresult1WHENcondition2THENresult2ELSEdefault_resultENDFlorida:CASEinput_expr......
  • verilog task/function 语句
    task模块任务task在模块中任意位置定义,并在模块内任意位置引用,作用范围也局限于此模块。模块内子程序出现下面任意一个条件时,则必须使用任务而不能使用函数。1)子程序中包含时序控制逻辑,例如延迟,事件控制等2)没有输入变量3)没有输出或输出端的数量大于1//任务task定义:如下......
  • verilog 循环语句
    循环语句在VerilogHDL中存在着四种类型的循环语句,用来控制执行语句的执行次数。1)forever连续的执行语句。2)repeat 连续执行一条语句n次。3)while  执行一条语句直到某个条件不满足。如果一开始条件即不满足(为假),则语句一次也不能被执行。4)for通过以下三个步......
  • 分支语句、循环语句
    一、ifelse语句悬空else  else与距离最近的未匹配的if匹配  常量==变量  减少出错机率二、字符串的输入与输出——getcharputchar  (1)   字符串结尾含有“\n” 第一个scanf——“123456” 第二个getchar——“\n”为假 (2) 字符串结尾......
  • 对目标元素进行监听 - addListener和IntersectionObserver
    在web的构建中,经常需要对元素进行监听,例如监听元素是否出现在可视范围内。我们可以通过addEventListener来监听滚动,计算元素距离顶部的位置对元素的变更来做出反应。但是长时间大量的触发事件反而对网页性能影响很大,使用节流的话其实也只是浅浅的优化一下性能。有没有其他思路可......
  • Shell | 循环语句
    for循环基本语法1:for((初始值;循环控制条件;变量变化))do 程序done例子:从1加到100$touchfor1.sh$vimfor1.sh#!/bin/bashsum=0for((i=0;i<=100;i++))dosum=$[$sum+$i]doneecho$sum$chmod777for1.sh$./for1.sh5050基本语法2:for变量in值......
  • Shell | 判断语句
    if判断基本语法:(1)单分支if[条件判断式];then 程序fi或者if[条件判断式]then 程序fi(2)多分支if[条件判断式]then 程序elif[条件判断式]then 程序else 程序fi注意事项:​ ①[条件判断式],中括号和条件判断式之间必须有空格​ ②if后要有空格......
  • python-pymysql-类对象映射为sql语句
    查询语句importpymysqlclassUserQuery:def__init__(self,name=None,age=None,email=None):self.name=nameself.age=ageself.email=emaildefselect_data(table,condition):#连接到数据库connection=pymysql.connec......
  • 使用SQL语句写递归查询
    要编写递归SQL语句,你可以使用通用表达式(CommonTableExpressions,CTE)和递归查询功能。CTE允许在SQL查询中定义临时的命名查询,并且可以在查询内部引用自身。以下是一个示例来演示如何编写递归SQL语句:假设有一个员工表employees,其中包含列id、name和manager_id,表示员工......