标签:inline develop name 编辑 tps 详细介绍 数字 time top
? 简介
本文介绍 Oracle 中的增删改语句,即 INSERT、DELETE、UPDATE 语句的使用。是时候展现真正的技术了,快上车:
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 中,所有有关对数据更改的操作(即:INSERT、UPDATE、DELETE)语句,执行完成后,都必须执行提交命令(COMMIT)。
2) 当使用 FRO UPDATE 语句增删改时,并点击锁表按钮后会进行锁表,锁表后其他会话将不能进行增删改操作,所以不建议使用该方式。
Oracle 增删改(INSERT、DELETE、UPDATE)语句
标签:inline develop name 编辑 tps 详细介绍 数字 time top
原文地址:https://www.cnblogs.com/abeam/p/12003647.html