数据操作语言:

insert update delete

事务控制语言:

commit rollback savepoint

1.insert语句

两种格式:

直接插入

子查询插入

1. 直接插入基本语法:

insert into tb_name[(col_name,...)]

values(val1,....);

note:

1.如果给每个列都插入数据,可以省略table后边的列,并且插入值的顺序和定义表的顺序一致

2.如果插入的顺序和表定义的顺序不同,或者只插入某几列的值table_name后边必须跟上列名

3.字符串和日期类型的值必须使用‘’引起来

4.insert语句一次只插入一条数据

5.插入的值可以使用系统函数,例如---user,sysdate

6.插入的值可以使用运行时参数。

2.使用子查询插入

insert into table_name[(col_name,....)]

select .......

note:

1.不出现values关键字

2.插入的列的名字和子查询返回结果的列相匹配。

2.delete语句:

语法:delete [from] tbl_name [where option...]

note:在加外键约束的时候,如果想在删除主表的记录的同时对外键表中已经存在的关联关系记录进行操作可以使用下面两个关键词:

on delete cascade:级联删除,删除主表记录,外键表的关联记录一块儿删除

on delete set null:删除主表记录,外键表的关联记录该列的值变成null

3.update 语句:

语法:update table_name set column=value,[column=value]

[where condition...];

note:

1.如果不加条件,默认修改表中所有的行。

4.事务控制:

当一个sql命令执行一个事务就开始了,当遇到一下情况,事务自动完成

1.commit或者rollback

2.DDL或者DCL命令执行

3.错误,退出,或者系统崩溃

事务控制使用:commit,savepoint,rollback;

5.事务的ACID原则:

1.原子性:要不全成功,要不全失败

2.一致性:从一个一致性状态到达另外一个一致性状态

3.隔离性:事务之间互不影响

第一类丢失更新

不可重复读

幻影读

脏读

第二类丢失更新

4.持久性:事务提交后,能够持久性影响数据库。

6.隐式事务提交:

1.DDL语句(create..),执行commit

2.DCL语句(gant....),执行commit

3.正常退出终端。

note:如果系统崩溃,或者sqlplus不正常退出,事务回滚。

7.事务提交或者回滚之前的状态

1.因为数据库缓存区的存在,数据前一次的状态可以被回复

2.当前用户可以会看使用DML操作的数据的结果,但是其他用户不能看到当前用户的DML操作结果

3.所有受影响的行会被锁定,其他用户不能修改。

8.显示结束事务

commit:之前所做的所有会影响数据库的操作,都会对数据库产生持久的影响。

rollback:取消之前所做的所有操作

note:事务一旦提交,不能rollback

savepoint: 保存回滚点

savepoint point_name;

rollback to point_name;回滚到指定的标记点。标记点之后所做的所有操作都会被取消,但是之前的不受影响。

Oracle(DML)的更多相关文章

  1. Oracle DML容错处理(1)

    Oracle dml操作过程中可能出现键重复或者数据类型不一致等问题,一般进行数据处理时候需要对这些可能出现的错误提前考虑,避免更新失败.Oralce给出了一些其他解决方案,以在不同场景下使用. 1. ...

  2. oracle DML语句

    DML语句 1.  插入数据 创建一个新表 create table new_cust as select * from customers --使用insert语句添加行 /* 确定要插入的行所在的 ...

  3. Oracle DML容错处理(2)

    关于DML Error Logging效率的问题,摘自网上一篇文章,作为单独一篇说明,原文如下: DML Error Logging in Oracle 10g Database Release 2 ...

  4. oracle DML错误日志(笔记)

    DML错误日志是oracle10gR2引入的一个类似于SQL*Loader的错误日志功能.它的基本原理是把任何可能导致语句失败的记录转移,放到一张错误日志表中. 具体使用如下: 1.使用DBMS_ER ...

  5. oracle DML(数据管理语言)sql 基本语句

  6. oracle DML语句 事务的定义与特点

    1.insert into (插入数据) insert in to  表名(列表1,列表2)    values(要插入的数据1,数据2); or insert into 表名   values(数据 ...

  7. 转 如何观察 undo Oracle DML语句回滚开销估算

    https://searchdatabase.techtarget.com.cn/7-20392/ --use_urec 详细解读: select USED_UREC from v$transacti ...

  8. Oracle ddl 和 dml 操作

      ddl 操作 窗口设置用户权限的方法  Oracle的数据类型  按住Ctrl点击表名 ,可以鼠标操作  插入的数据需要满足创建表的检查  主表clazz删除数据从表设置级联也会一同删除 有约束也 ...

  9. ORACLE 11G R2 RAC classical install OGG12.1(LINUX) 经典抽取模式单项同步配置OGG12.1

    博文结构图如下: 一.环境描述以及注意事项 1.1 环境简介 IP 系统 Oracle版本 OGG版本 源端 172.16.10.16/36 RHEL6.5 oracle11204 12.1 目标端 ...

随机推荐

  1. DEDE有无缩略图如何调取

    同一样式分开调取 [field:array runphp='yes']@me = (strpos(@me['litpic'],'defaultpic') ? "":"&l ...

  2. AngularJS Best Practices: ng-include vs directive

    For building an HTML template with reusable widgets like header, sidebar, footer, etc. Basically the ...

  3. 生产/消费 发送和接收消息---基于kombu和redis交互

    from kombu import Connection, Exchange, Queue media_exchange = Exchange('media', 'direct', durable=T ...

  4. alert()、confirm()和prompt()的区别与用法

    1.警告消息框alertalert 方法有一个参数,即希望对用户显示的文本字符串.该字符串不是 HTML 格式.该消息框提供了一个"确定"按钮让用户关闭该消息框,并且该消息框是模式 ...

  5. Chrome console命令整理

    console.dir (这个方法是我经常使用的 可不知道比for in方便了多少) 直接将该DOM结点以DOM树的结构进行输出,可以详细查对象的方法发展等等 在页面右击选择 审查元素 ,然后在弹出来 ...

  6. 使用Struts 2防止表单重复提交

    用户重复提交表单在某些场合将会造成非常严重的后果.例如,在使用信用卡进行在线支付的时候,如果服务器的响应速度太慢,用户有可能会多次点击提交按钮,而这可能导致那张信用卡上的金额被消费了多次.因此,重复提 ...

  7. dell r710xd 通过远程管理卡安装系统

    机器dell r720xd 服务器 远程管理卡:iDRAC7 安装系统CentOS 5.9 64位 1.首先得配置要管理口IP信息及用户名.密码(这里就不做介绍了) 2.登录远程管理 https:// ...

  8. 17.如何修改SESSION的生存时间。

    方法1:将php.ini中的session.gc_maxlifetime设置为9999重启apache 方法2:$savePath = "./session_save_dir/"; ...

  9. Caffe + Ubuntu 14.04 64bit + 无CUDA(linux下安装caffe(无cuda)以及python接口)

    安装Caffe指导书 环境: Linux 64位 显卡为Intel + AMD,非英伟达显卡 无GPU 一. 安装准备工作 1. 以管理员身份登录 在左上角点击图标,搜索terminal(即终端),以 ...

  10. 获取当前正在执行的Javascript脚本文件的路径

    获取当前JavaScript脚本文件的路径,在特定场景下可能需要,比如写模块加载器,或者进行日志记录.下面这段脚本适用于所有浏览器来获取正在执行js文件的路径,但是该方法只适用于脚本加载过程中执行的情 ...