需要执行的SQL语句:

create table student(id char(36) primary key,name varchar2(8) not null,mobile char(11),address varchar2(150)
)

数据库中对数据进行的添加、修改和删除操作均属于数据库操纵语言(DML),这类类型的SQL语句只有执行数据控制语言(DCL)中的commit才能使之起作用,DCL语言中的rollback用于撤销DML语言操作:

数据添加的方式有两种:

第一种:

语法:

insert into table_name [(column_name1,column_name2,...,column_namen)] values (value1,value2,...valuen)e.g
insert into student(id,name,mobile,address)
values ('9b4435ec-372c-456a-b287-e3c5aa23dff4','张三','12345678901','北京海淀');
commit;

注意:

1、字段列表的顺序可以不按照表中字段的顺序列出来,但对应值列表必须和字段名列表对应;

insert into student(mobile,address,id,name)
values ('18338945560','安徽六安','eb0a220a-60ae-47b6-9e6d-a901da9fe355','张李三');
commit;

2、对应值列表中的值如果是字符类型或日期类型,则需使用单引号引起来;

3、如果没有字段列表,则值列表中值的顺序必须按照实际表中字段的默认顺序进行排列;

insert into student values ('a273ea66-0a42-48d2-a17b-388a2feea244','李%四','98765432130','北京东城区');
insert into student values ('6ab71673-9502-44ba-8db0-7f625f17a67d','王_五','98765432130','北京朝阳区');
commit;

第二种:

语法:

insert into to_table_name [(column_name1,column_name2,...,column_namen)]
select column_name1,column_name2,...,column_namen from from_table_name
create table new_student(id char(36) primary key,name varchar2(8) not null,mobile char(11),address varchar2(150)
)
insert into new_student select id,name,mobile,address from student
commit;

注意:

1、insert子句中字段名列表的数目和数据类型必须和select子句中选择的字段列表的数目和数据类型相匹配。数据类型不考虑长度,但是须比查出来的对应列的长度长或相等。

2、select查询字段名可以和insert插入表对应字段名不一致。

修改数据:

语法:

update table_name

set column1=value1, column2=value2……

[where ……]

update student set address='辽宁大连高新区' where id='6ab71673-9502-44ba-8db0-7f625f17a67d';
commit;

删除数据:

语法:

delete [from] table_name

[where……]

delete from student where id='6ab71673-9502-44ba-8db0-7f625f17a67d';
commit;

注意:from关键字在Oracle数据库中可以没有,但是在MySQL数据库中必须要有

事务操作:

当执行一组DML操作时,为了确保数据的一致性,避免数据库产生错误数据,就需要通过事务(Transaction)使该组DML操作同时成功或失败,例如:

create table account(id char(36) primary key,card_id varchar2(20) unique,name varchar2(8) not null,money number(10,2) default 0
)
insert into account values('6ab71673-9502-44ba-8db0-7f625f17a67d','1234567890','张三',1000);
insert into account (id,card_id,name) values('9883a53d-9127-4a9a-bdcb-96cf87afe831','0987654321','张三');
update account set money=money-100 where card_id= '1234567890';
update account set money=money+100 where card_id= '0987654321';--要求同时成功同时失败

当执行第一个DML SQL语句时,事务开始,当出现以下情况时事务结束:

1、执行了commit或rollback语句;

2、执行了DDL语句(如建表语句)或DCL语句(如给用户授权),如下:

create table student(id      char(36) not null,name    varchar2(8) not null,mobile  char(11),address varchar2(150)
)
insert into student values ('0e0180a3-ec2f-4a72-b1ae-28d5f2be36ea','小明','18338954490','北京市大兴区');
create table user_info(id char(36) primary key
)--上面insert语句虽然没有执行commit或rollback,但是由于执行了本建表语句,使得事务被隐式提交

3、数据库客户端程序退出或数据库崩溃时,为了保持数据一致性,也会结束事务。

事务控制语句:

1、commit:提交事务,使之前做的改变永久作用于数据库;

2、rollback:回滚当前事务,丢弃所有未决的数据改变;

3、savepoint name:在当前事务中标记保存点(非ANSL SQL标准);

4、rollback to name:回滚当前事务到指定的保存点,从而丢弃保存点后对数据库的任何改变;

update student set name='小明';
savepoint delete_data; --
delete from student;
rollback to delete_data;--实现了局部DML回滚,即删除操作被撤销
commit;update student set name='小明';
delete from student;
rollback;--无法实现局部DML回滚
commit;

注意:

1、执行DML语句且没有结束事务时,如果需要查询数据库的真实改变情况,则要求在一个新的SQL Window窗口中执行查询语句:因为事务中所做的每一个操作在事务被提交之前都是临时的,在commit或rollback语句执行之前,DML语句首先影响该用户的数据库缓冲区,因为这些操作可以被恢复,而且因为是在该用户的数据缓冲区,所以在原SQL窗口中查询得到的是数据缓冲区的结果,不是数据库真实的数据;要想拿到数据库真实的数据,需要在新SQL窗口中执行查询语句,这样针对不同的用户,Oracle服务器用读一致性来确保每个用户看到的数据和上次提交时的数据相同。

2、当一个用户执行DML语句时,如果其事物没有结束,则受影响的行被锁定,此时其它用户不能改变受影响行中的数据,后面用户所执行的DML语句会一直处于执行状态,直至前一个用户所执行DML语句事务结束,例如

a、在一个SQL Window中执行如下SQL语句,并且不执行事务结束语句:

update student set name='小强' where id='0e0180a3-ec2f-4a72-b1ae-28d5f2be36ea';

b、然后再在一个的SQL Window中执行如下SQL语句

delete from student where id='0e0180a3-ec2f-4a72-b1ae-28d5f2be36ea';

修改SQL语句执行后,PL/SQL Developer显示该语句已知处于执行状态,如下所示:

当上面修改数据的事务结束,则下面删除数据SQL语句结束执行状态。

3添加、修改、删除数据(oracle数据库)相关推荐

  1. oracle修改删除数据,[Oracle 错误修改删除数据后的恢复方法

    [Oracle ERP维护人员必备] 错误修改删除数据后的恢复方法 Oracle ERP维护人员工作再小心也难免会有在正式库中误删或者误改数据并且已经commit的情况发生,那么我就要用到 - Ora ...

  2. ajax刷新数据库数据,ajax删除数据刷新数据库

    ajax删除数据刷新数据库 内容精选 换一换 DWS数据连接创建完成后,用户可以在右侧区域中管理DWS数据连接的数据库模式.已新建DWS数据连接,请参见新建数据连接.已新建DWS数据库,请参见新建数据 ...

  3. 删除数据oracle,oracle删除数据

    oracle 动态删除,oracle监听之动态和静态注册,oracle删除数据,oracle删除用户 Oracle 删除数据的几种方法_计算机软件及应用_IT/计算机_专业资料.删除... oracl ...

  4. CentOS7设置静态IP、搭建单机版FastDFS图片服务器、使用FastDFS-Client客户端进行简单测试、实现图片上传、实现商品添加修改删除

    CentOS7设置静态IP.搭建单机版FastDFS图片服务器.使用FastDFS-Client客户端进行简单测试.实现图片上传.实现商品添加修改删除 CentOS7设置静态IP而且还可以上网 192 ...

  5. iReport 5.添加修改删除jdbc

    Jaspersoft iReport Designer 5.1.0       启动的时候以前的数据源jdbc找不到,报错:classnotfound:oracle.jdbc.driver.Oracl ...

  6. VC6.0 MFC 列表框 列表控件 添加 修改 删除

    VC6.0 MFC 列表框 列表控件 添加 修改 删除 写在前面:列表框是很常用,并且很重要的一个控件,那么接下来,就跟随我的脚步,去探索它的奥秘吧! 一.未卜先知 1.编译运行后,点击"学 ...

  7. es修改索引java_Elasticsearch添加修改删除索引文档案例分享

    本文介绍如何采用bboss es添加/修改/删除/批量删除elasticsearch索引文档,直接看代码. 添加/修改文档 TAgentInfo agentInfo = new TAgentInfo( ...

  8. asp.net 对xml文件的读写,添加,修改,删除操作

    asp.net 对xml文件的读写,添加,修改,删除操作 下面有代码调试正确 using System; using System.Collections; using System.Componen ...

  9. wordpress怎么修改html,WordPress后台编辑器HTML模式界面中添加修改删除按钮

    在WordPress编辑器HTML模式界面中添加 按钮一文中,我大致介绍了怎么在后台添加一些自定义的按钮,本文则更为详细全面的对wordpress后台编辑器HTML模式下的按钮自定义进行详解,以让开发 ...

  10. 如何动态添加修改删除定时任务

    如何动态添加修改删除定时任务 (1)思路说明: (a)首先这里我们需要重新认识一个类ThreadPoolTaskScheduler:线程池任务调度类,能够开启线程池进行任务调度. (b)ThreadP ...

最新文章

  1. 嵌入式学习笔记之一:嵌入式linux中混合编译入门
  2. 如果说一个地图是1000*1000那么需要多少内存呢?
  3. grpc中监听端口添加及绑定
  4. RAC分解步骤之一,在oracle linux 4u4上安装oracle 10.2.0.1.0操作日志
  5. [号外] Blazor wasm 其实也挺快!
  6. 怎样判断网页是静态还是伪静态呢
  7. ueditor 在线附件和在线图片路径错误BUG补丁
  8. PHP的 Warning: Cannot modify header information - headers already sent by警告
  9. 云计算运维累不累_要做好云计算运维管理,一定要注意这3个要点
  10. 【codevs1907】【方格取数3】二分图最大带权独立集
  11. CIM是什么?CIM智慧城市建设路径分析
  12. Javaweb(二)制作调查问卷
  13. mp4转换m3u8格式php,m3u8格式怎么转换mp4 ts格式转换 - 下载的m3u8、ts如何转换成mp4...
  14. java setw_setw()函数使用
  15. 用户体验导向的Android应用开发
  16. 三维向量类Vector类封装,包含三维向量一些基本运算
  17. ACM/ICPC 2018亚洲区预选赛北京赛站网络赛
  18. 那个服务器的联盟最多的,魔兽世界联盟最多的服务器是哪个
  19. 《计算机网络自顶向下方法》读书笔记(一):计算机网络和因特网
  20. python+shell 批量获取服务器信息并且生成excel表

热门文章

  1. Strusts框架学习(一)
  2. 有时用weblogic用户启动weblogic时会报错的原因以及解决办法
  3. C和C++中的struct
  4. DJ2-1 进程管理
  5. Linux文件类型和根目录结构
  6. #Java学习#实验考试题
  7. 上传照片显示服务器繁忙怎么回事,解决WordPress上传图片“图像后期处理失败,可能是服务器忙或没有足够的资源”问题...
  8. html中scr作用,车用尿素在SCR系统中的作用讲解?
  9. Rust、D、Go三者的Pk1
  10. java有道_java实现有道翻译爬虫