dml oracle数据库ddl - CSDN
精华内容
参与话题
  • oracle DMLDDL语句区别

    千次阅读 2014-01-03 17:57:00
    DML:数据操作语言,SQL中处理数据等操作统称为数据操纵语言  它们是SELECT、UPDATE、INSERT、DELETE,就象它的名字一样,这4条命令是用来对数据库里的数据进行操作的语言,不修改表的结构,只修改表的内容 需要...
    DML:数据操作语言,SQL中处理数据等操作统称为数据操纵语言

           它们是SELECT、UPDATE、INSERT、DELETE,就象它的名字一样,这4条命令是用来对数据库里的数据进行操作的语言,不修改表的结构,只修改表的内容

    需要commit 才能真正被执行



    DDL:数据定义语言,用于定义和管理 SQL 数据库中的所有对象的语言

           DDL比DML要多,主要的命令有CREATE、ALTER、DROP等,DDL主要是用在定义或改变表(TABLE)的结构,数据类型,表之间的链接和约束等初始化工作上,他们大多在建立表时使用



    DCL:数据控制语言,用来授予或回收访问数据库的某种特权,并控制数据库操纵事务发生的时间及效果,对数据库实行监视等

           是数据库控制功能。是用来设置或更改数据库用户或角色权限的语句,包括(grant,deny,revoke等)语句。在默认状态下,只有sysadmin,dbcreator,db_owner或db_securityadmin等人员才有权力执行DCL
    展开全文
  • oracle什么时候需要commit

    万次阅读 多人点赞 2012-06-05 10:37:17
    今天在oracle的SQL plus 中执行了删除和查询操作,然后在PL/SQL中也执行查询操作,语句一样,结果却不一样,让我大感郁闷,后来才突然想到可能是两边数据不一致造成的,但是为什么不一致呢,就是没用commit, ...

    今天在oracle的SQL plus 中执行了删除和查询操作,然后在PL/SQL中也执行查询操作,语句一样,结果却不一样,让我大感郁闷,后来才突然想到可能是两边数据不一致造成的,但是为什么不一致呢,就是没用commit,

    在网上查了一下,大概是这样说的:

    DML语言,比如update,delete,insert等修改表中数据的需要commit;
    DDL语言,比如create,drop等改变表结构的,就不需要写commit(因为内部隐藏了commit);


    DDL 数据定义语言:
    create table 创建表  
    alter table 修改表  
    drop table 删除表  
    truncate table 删除表中所有行  
    create index 创建索引  
    drop index 删除索引
    当执行DDL语句时,在每一条语句前后,oracle都将提交当前的事务。如果用户使用insert命令将记录插入到数据库后,执行了一条DDL语句(如create
    table),此时来自insert命令的数据将被提交到数据库。当DDL语句执行完成时,DDL语句会被自动提交,不能回滚。

    DML 数据操作语言:
    insert 将记录插入到数据库 
    update 修改数据库的记录 
    delete 删除数据库的记录
    当执行DML命令如果没有提交,将不会被其他会话看到。除非在DML命令之后执行了DDL命令或DCL命令,或用户退出会话,或终止实例,此时系统会自动
    发出commit命令,使未提交的DML命令提交。


    DDL  :
    Data Definition Language (DDL) statements are used to define the database structure or schema. Some examples:

    CREATE - to create objects in the database

    ALTER - alters the structure of the database

    DROP - delete objects from the database

    TRUNCATE - remove all records from a table, including all spaces allocated for the records are removed

    COMMENT - add comments to the data dictionary

    RENAME - rename an object

    DML:

    Data Manipulation Language (DML) statements are used for managing data within schema objects. Some examples:

    SELECT - retrieve data from the a database

    INSERT - insert data into a table

    UPDATE - updates existing data within a table

    DELETE - deletes all records from a table, the space for the records remain

    MERGE - UPSERT operation (insert or update)

    CALL - call a PL/SQL or Java subprogram

    EXPLAIN PLAN - explain access path to data

    LOCK TABLE - control concurrency

    DCL

    Data Control Language (DCL) statements. Some examples:

    GRANT - gives user's access privileges to database

    REVOKE - withdraw access privileges given with the GRANT command

    TCL

    Transaction Control (TCL) statements are used to manage the changes made by DML statements. It allows statements to be grouped together into logical transactions.

    COMMIT - save work done

    SAVEPOINT - identify a point in a transaction to which you can later roll back

    ROLLBACK - restore database to original since the last COMMIT

    SET TRANSACTION - Change transaction options like isolation level and what rollback segment to use

    锁概念基础


    数据库是一个多用户使用的共享资源。当多个用户并发地存取数据时,在数据库中就会产生多个事务同时存取同一数据的情况。若对并发操作不加控制就可能会读取和存储不正确的数据,破坏数据库的一致性。

    加锁是实现数据库并发控制的一个非常重要的技术。当事务在对某个数据对象进行操作前,先向系统发出请求,对其加锁。加锁后事务就对该数据对象有了一定的控制,在该事务释放锁之前,其他的事务不能对此数据对象进行更新操作。

    在数据库中有两种基本的锁类型:排它锁(Exclusive Locks,即X锁)和共享锁(Share Locks,即S锁)。当数据对象被加上排它锁时,其他的事务不能对它读取和修改。加了共享锁的数据对象可以被其他事务读取,但不能修改。数据库利用这两种基本的锁类型来对数据库的事务进行并发控制。



    Oracle数据库的锁类型

    根据保护的对象不同,Oracle数据库锁可以分为以下几大类:DML锁(data locks,数据锁),用于保护数据的完整性;DDL锁(dictionary locks,字典锁),用于保护数据库对象的结构,如表、索引等的结构定义;内部锁和闩(internal locks and latches),保护数据库的内部结构。

    DML锁的目的在于保证并发情况下的数据完整性,。在Oracle数据库中,DML锁主要包括TM锁和TX锁,其中TM锁称为表级锁,TX锁称为事务锁或行级锁。

    当Oracle 执行DML语句时,系统自动在所要操作的表上申请TM类型的锁。当TM锁获得后,系统再自动申请TX类型的锁,并将实际锁定的数据行的锁标志位进行置位。这样在事务加锁前检查TX锁相容性时就不用再逐行检查锁标志,而只需检查TM锁模式的相容性即可,大大提高了系统的效率。TM锁包括了SS、SX、S、X 等多种模式,在数据库中用0-6来表示。不同的SQL操作产生不同类型的TM锁。

    在数据行上只有X锁(排他锁)。在 Oracle数据库中,当一个事务首次发起一个DML语句时就获得一个TX锁,该锁保持到事务被提交或回滚。当两个或多个会话在表的同一条记录上执行 DML语句时,第一个会话在该条记录上加锁,其他的会话处于等待状态。当第一个会话提交后,TX锁被释放,其他会话才可以加锁。

    当Oracle数据库发生TX锁等待时,如果不及时处理常常会引起Oracle数据库挂起,或导致死锁的发生,产生ORA-60的错误。这些现象都会对实际应用产生极大的危害,如长时间未响应,大量事务失败等。

    展开全文
  • DQL、DMLDDL、DCL的概念与区别

    万次阅读 多人点赞 2010-10-18 16:12:00
    SQL(Structure Query Language)语言是数据库的核心语言。 <br />SQL的发展是从1974年开始的,其发展过程如下: 1974年-----由Boyce和Chamberlin提出,当时称SEQUEL。 1976年-----IBM公司的...

    SQL(Structure Query Language)语言是数据库的核心语言。


    SQL的发展是从1974年开始的,其发展过程如下:
    1974年-----由Boyce和Chamberlin提出,当时称SEQUEL。
    1976年-----IBM公司的Sanjase研究所在研制RDBMS SYSTEM R
    时改为SQL。
    1979年-----ORACLE公司发表第一个基于SQL的商业化RDBMS产品。
    1982年-----IBM公司出版第一个RDBMS语言SQL/DS。
    1985年-----IBM公司出版第一个RDBMS语言DB2。
    1986年-----美国国家标准化组织ANSI宣布SQL作为数据库工业标准。
    SQL是一个标准的数据库语言,是面向集合的描述性非过程化语言。
    它功能强,效率高,简单易学易维护(迄今为止,我还没见过比它还好
    学的语言)。然而SQL语言由于以上优点,同时也出现了这样一个问题:
    它是非过程性语言,即大多数语句都是独立执行的,与上下文无关,而
    绝大部分应用都是一个完整的过程,显然用SQL完全实现这些功能是很困
    难的。所以大多数数据库公司为了解决此问题,作了如下两方面的工作:
    (1)扩充SQL,在SQL中引入过程性结构;(2)把SQL嵌入到高级语言中,
    以便一起完成一个完整的应用。


    二. SQL语言的分类

    SQL语言共分为四大类:数据查询语言DQL,数据操纵语言DML,数据定义语言DDL,数据控制语言DCL。

    1. 数据查询语言DQL
    数据查询语言DQL基本结构是由SELECT子句,FROM子句,WHERE
    子句组成的查询块:
    SELECT <字段名表>
    FROM <表或视图名>
    WHERE <查询条件>

    2 .数据操纵语言DML
    数据操纵语言DML主要有三种形式:
    1) 插入:INSERT
    2) 更新:UPDATE
    3) 删除:DELETE

    3. 数据定义语言DDL
    数据定义语言DDL用来创建数据库中的各种对象-----表、视图、
    索引、同义词、聚簇等如:
    CREATE TABLE/VIEW/INDEX/SYN/CLUSTER
    | | | | |
    表 视图 索引 同义词 簇

    DDL操作是隐性提交的!不能rollback

    4. 数据控制语言DCL
    数据控制语言DCL用来授予或回收访问数据库的某种特权,并控制
    数据库操纵事务发生的时间及效果,对数据库实行监视等。如:
    1) GRANT:授权。


    2) ROLLBACK [WORK] TO [SAVEPOINT]:回退到某一点。
    回滚---ROLLBACK
    回滚命令使数据库状态回到上次最后提交的状态。其格式为:
    SQL>ROLLBACK;


    3) COMMIT [WORK]:提交。


        在数据库的插入、删除和修改操作时,只有当事务在提交到数据
    库时才算完成。在事务提交前,只有操作数据库的这个人才能有权看
    到所做的事情,别人只有在最后提交完成后才可以看到。
    提交数据有三种类型:显式提交、隐式提交及自动提交。下面分
    别说明这三种类型。


    (1) 显式提交
    用COMMIT命令直接完成的提交为显式提交。其格式为:
    SQL>COMMIT;


    (2) 隐式提交
    用SQL命令间接完成的提交为隐式提交。这些命令是:
    ALTER,AUDIT,COMMENT,CONNECT,CREATE,DISCONNECT,DROP,
    EXIT,GRANT,NOAUDIT,QUIT,REVOKE,RENAME。


    (3) 自动提交
    若把AUTOCOMMIT设置为ON,则在插入、修改、删除语句执行后,
    系统将自动进行提交,这就是自动提交。其格式为:
    SQL>SET AUTOCOMMIT ON;

     

    展开全文
  • oracleDDLDML指什么?

    千次阅读 2011-07-26 09:33:16
    DDL】 create table 创建表 alter table 修改表 drop table 删除表 truncate table 删除表中所有行 create index 创建索引 drop index 删除索引当执行DDL语句时,在每一条语句前后,oracle都将提交当前的事务。...
    【DDL】 
      
    create table 创建表   
    alter table  修改表  
    drop table 删除表  
    truncate table 删除表中所有行   
    create index 创建索引  
    drop index  删除索引
    当执行DDL语句时,在每一条语句前后,oracle都将提交当前的事务。
    
    如果用户使用insert命令将记录插入到数据库后,执行了一条DDL语句(如create table),此时来自insert命令的数据将被提交到数据库。
    
    当DDL语句执行完成时,DDL语句会被自动提交,不能回滚。
    
    
    【DML】
    
    insert 将记录插入到数据库
    update 修改数据库的记录
    delete 删除数据库的记录
    当执行DML命令如果没有提交,将不会被其他会话看到。
    
    除非在DML命令之后执行了DDL命令或DCL命令,或用户退出会话,或终止实例,
    
    此时系统会自动发出commit命令,使未提交的DML命令提交。
    
    展开全文
  • Oracle事务的隐式提交

    千次阅读 2013-11-13 14:16:41
    又名自动提交,即无需显示执行commit语句,session中的操作被自动提交到数据库的过程。 隐式提交的方式 1、正常执行完ddl语句。包括create,alter,drop,truncate,rename。 2、正常执行完dcl语句。包括grant,...
  • Oracle - 数据库语言(DDLDML、DCL)

    千次阅读 2019-06-14 11:13:10
    DDL(Data Defination Language) DML(Data Manipulation Language) DCL(Data Control Language)
  • oracle 中触发器,commit 的问题

    万次阅读 2011-07-05 22:47:10
    触发器无需commit也不能写commit触发器和触发它的DML是同一个事务DML提交了,触发器的操作也提交了,要不就一起回滚了当然,如果你一定要在触发器里写COMMIT那就用自治事务相当于一个事务里的子事务正常情况下,...
  • DML语言,比如update,delete,insert等修改表中数据的需要commit; DDL语言,比如create,drop等改变表结构的,就不需要写commit(因为内部隐藏了commit); DDL 数据定义语言: create table 创建表 alter table ...
  • 88.Oracle数据库SQL开发之 修改表内存——数据库事务的开始和结束 欢迎转载,转载请标明出处: 事务既有起点,也有终点。 下列之间之一发生,事务开始了: l 连接数据库上,并执行一条DML语句 l 前一个事务结束后...
  • Oracle的触发器中执行DDL语句

    千次阅读 2008-05-15 00:12:00
    触发器无需commit也不能写commit触发器和触发它的DML是同一个事务DML提交了,触发器的操作也提交了,要不就一起回滚了当然,如果你一定要在触发器里写COMMIT那就用自治事务相当于一个事务里的子事务正常情况下,...
  • DML(data manipulation language)数据库操作语言:  它们是SELECT、UPDATE、INSERT、DELETE,就象它的名字一样,这4条命令是用来对数据库里的数据进行操作的语言 DDL(data definition language)数据库...
  • Oracle锁表查询和解锁方法

    万次阅读 多人点赞 2016-12-09 15:12:40
    DDL数据库模式定义语言,关键字:create DML:数据操纵语言,关键字:Insert、delete、update DCL:数据库控制语言 ,关键字:grant、remove DQL:数据库查询语言,关键字:select oracle表在什么情况下会被锁住...
  • SQL语言分类DDLDML、DQL、TCL、DCL

    千次阅读 2017-12-10 15:37:35
    关系型数据库的SQL语句都可以分为4大类:1. DDL(数据定义语言)2. DML(数据操纵语言)3. DQL(数据查询语言)4. TCL(事务处理语言)5. DCL(数据控制语言)
  • DML、DCL、DDL、DQL的介绍和区别 我们学习了oracle的数据控制语言。以下是详细的介绍。 1、首先我们来了解一下DDL、DCL、DQL、DML的一些区别及其本身的意义。 DML(Data Manipulation Language)数据操纵语言,...
  • SQL语言的3种分类

    万次阅读 2020-06-13 14:53:08
    SQL语言按照实现的功能不同,主要分为3类:数据操纵语言(DML),数据定义语言(DDL),数据控制语言(DCL)。1.数据操纵语言(DML):主要用来处理数据库中的数据内容。允许用户对数据库中的数据进行查询 ,插入,...
  • SQL的四种类型:DDL,DML,DCL,TCL

    千次阅读 2013-12-13 14:59:41
    SQL Command有四种类型,分别是DDLDML,DCL,TCL 图谱 DDL DDL(Data Definition Language),是SQL语言集中,负责数据结构定义与数据库对象定义的语言,由CREATE、ALTER与DROP三个语法所...
  • 什么时候需要commit

    千次阅读 2018-07-17 09:17:22
    今天在oracle的SQL plus 中执行了删除和查询操作,然后在PL/SQL中也执行查询操作,语句一样,结果却不一样,让我大感郁闷,后来才突然想到可能是两边数据不一致造成的,但是为什么不一致呢,就是没用commit, ...
  • Sql语句中的DDLDML、DCL的介绍

    万次阅读 2016-12-10 16:09:23
    一、DDL DDL is Data Definition Language statements. Some examples:数据定义语言,用于定义和管理 SQL 数据库中的所有对象的语言 1.CREATE - to create objects in the database 创建 2.ALTER - alters ...
1 2 3 4 5 ... 20
收藏数 35,406
精华内容 14,162
热门标签
关键字:

dml oracle数据库ddl