码迷,mamicode.com
首页 > 数据库 > 详细

Oracle 增删改(INSERT、DELETE、UPDATE)语句

时间:2019-12-07 23:21:33      阅读:127      评论:0      收藏:0      [点我收藏+]

标签:inline   develop   name   编辑   tps   详细介绍   数字   time   top   

?  简介

本文介绍 Oracle 中的增删改语句,即 INSERTDELETEUPDATE 语句的使用。是时候展现真正的技术了,快上车技术图片

1.   插入数据(INSERT)

2.   修改数据(UPDATE)

3.   删除数据(DELETE)

4.   注意事项

 

1.   插入数据(INSERT)

u  语法:

INSERT INTO TABLE_NAME [(column1[, column2…]] VALUES(value1[, value2…]);

说明:

1)   INSERT 数据时可以指定列名,也可不指定列名。如果不指定列名,必须为每一列都提供数据,并且顺序必须与列名的顺序一致;如果指定列名,提供的数据需要与指定的列名顺序一致;

2)   插入数据时数字类型的列可直接写入,字符或日期类型的列需要加单引号;

3)   插入的数据必须满足约束规则,主键和 NOT NULL 的列必须提供数据。

 

u  插入数据的方式

1)   首先,可以在 PL/SQL Developer 中使用 FOR UPDATE 语句

1.   首先执行 SELECT 语句

SELECT * FROM Table01 FOR UPDATE;

2.   点击锁表按钮

技术图片

3.   编辑数据 -> 记入改变 -> 表解锁按钮

技术图片

4.   最后点击提交

技术图片

l  说明:低版本的 PL/SQL Developer 操作与以上类似。

 

2)   使用 INSERT INTO 语句,插入一条数据

INSERT INTO Table01(Id, Name) VALUES(2, 李四); --指定所有列

COMMIT; --必须执行提交命令

 

INSERT INTO Table01(Id) VALUES(3); --指定部分列,其他未指定的列表必须可以为空(即 NULL

COMMIT;

 

INSERT INTO Table01 VALUES(4, 王五); --不指定任何列,必须按顺序插入所有列

COMMIT;

 

3)   使用 INSERT INTO SELECT 语句,插入多条数据

INSERT INTO Table02 SELECT * FROM Table01; -- Table01 中的所有数据插入 Table02 中(注意:可以指定插入的列;Table02 必须存在;可指定 Table01 的查询条件)

COMMIT;

 

4)   另外,还可以使用 PL/SQL Developer 中使用变量的方式(该方式不怎么实用,不做详细介绍)

INSERT INTO Table01 VALUE(&Id, &Name);

 

5)   同时插入多条(支持多表插入)

INSERT ALL

INTO Table01 VALUES(10, 10‘)

INTO Table01 VALUES(11, 11‘)

INTO Table02 VALUES(20, 20‘) --同时插入 Table02

SELECT * FROM DUAL;

COMMIT;

说明:INSERT ALL INTO 在效率上,比逐条执行 INSERT INTO 语句要高很多。

 

提示:插入 DATE 类型的数据时需要指定日期格式,例如:

to_date(‘1985/10/22‘, ‘yyyy/mm/dd‘)

 

2.   修改数据(UPDATE)

u  语法:

UPDATE TABLE_NAME SET Column1 = Value1[, Column2 = Value2…] [WHERE 条件];

说明:规则与 INSERT 语句类似。

 

u  修改数据的方式

1)   同样,也可以在 PL/SQL Developer 中使用 FOR UPDATE 语句,进行修改操作

SELECT * FROM Table01 FOR UPDATE;

说明:操作步骤与插入数据类似,只是一个是修改原有的数据,一个是新增数据。

 

2)   使用 UPDATE 语句更新

UPDATE Table01 SET Name=张山 WHERE Id=1; --更新多个字段,使用“,”逗号分隔

COMMIT;

 

3)   子查询更新(多列)

UPDATE Table02 SET(Id, Name) = (SELECT Id, Name FROM Table01 WHERE Id=1)

WHERE Id=1; -- Table02 中的 Id, Name 列更新为 Table01 中的 Id, Name,这里没有其他列,就以 Id 列代替了

COMMIT;

 

3.   删除数据(DELETE)

u  语法:

DELETE FROM TABLE_NAME or VIEW_NAME [WHERE <condition>];

说明:如果存在外键关联,删除数据前,需要先删除外键表中的关联数据。

 

u  删除数据的方式

1)   同样,也可以在 PL/SQL Developer 中使用 FOR UPDATE 语句,进行删除操作

SELECT * FROM Table01 FOR UPDATE;

说明:操作步骤与插入数据类似,点击“删除记录”按钮即可。

 

2)   使用 DELETE 语句

DELETE FROM Table01 WHERE Id=3;

COMMIT;

 

3)   使用 TRUNCATE 语句

TRUNCATE TABLE Table02;

说明:

1.   TRUNCATE 语句具有:清除整表数据,不能加 WHERE 条件;不需要 COMMIT 提交;性能高于 DELETE 语句;并清除所占用的空间;不记录日志;不会触发 DELETE 出发器等特点。

2.   DELETE 语句:可根据条件删除数据;需要显示提交,支持事务回滚;会记录更新日志;删除后仍然占用物理空间;会触发 DELETE 触发器等。

 

4.   注意事项

1)   Oracle 中,所有有关对数据更改的操作(即:INSERTUPDATEDELETE)语句,执行完成后,都必须执行提交命令(COMMIT)。

2)   当使用 FRO UPDATE 语句增删改时,并点击锁表按钮后会进行锁表,锁表后其他会话将不能进行增删改操作,所以不建议使用该方式。

Oracle 增删改(INSERT、DELETE、UPDATE)语句

标签:inline   develop   name   编辑   tps   详细介绍   数字   time   top   

原文地址:https://www.cnblogs.com/abeam/p/12003647.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!