oracle 删除实例 重建,Oracle经典实例——插入、更新和删除

50c803a15f6e

1.插入新纪录

使用INSERT语句和VALUES子句一次插入一行:

insert into table_name(field1,field2...) values(value1,value2...);

省略字段名称,需要插入所有列的值,还要注意VALUES列表的顺序:

insert into table_name values(value1,value2,value3...);

2.插入默认值

为某些列设置了默认值,则需显示指定默认值:

insert into table_name(id) values(default);

对于既有非默认值又有默认值的表,只要不把设置了默认值的列写入INSERT列表,就能为它们插入默认值

3.使用null覆盖默认值

VALUES列表显示指定null,覆盖设置了默认值的field1列:

insert into table_name(field1,field2,...) values(null,value2,...);

4.复制数据到另一个表

在INSERT语句后面附加一个检索目标数据的查询语句:

insert into table1(field1,field2,...)

select field1,field2,... from table2 where condition1 and condition2...;

如果去掉WHERE条件,则复制table2的全部数据到table1

5.复制表定义

使用CREATE TABLE语句和一个不返回任何数据的子查询:

create table table1 as select * from table2 where 1=0;

如果WHERE子句不指定一个不可能为真的条件,table2的查询结果集将写到table1中

6.多表插入

使用INSERT ALL或者INSERT FIRST语句:

insert all

when condition1 then

into table1(field1,field2,...) values(value1,value2,...)

when condition2 then

into table2(field1,field2,...) values(value1,value2,...)

else

into table3(field1,field2,...) values(value1,value2,...)

select field1,field2,... from table_name;

使用ALL和FIRST关键字的区别:

当WHEN-THEN-ELSE的结果为真时,INSERT FIRST就立即结束评估,不执行后面的判断,而INSERT ALL会逐一执行每一条语句,不论前面的判断结果如何,因此INSERT ALL会把同一行数据插入到多个表

7.禁止插入特定列

创建一个视图,只暴露那些希望插入的列,然后强制所有INSERT语句都被传送到该视图:

create view view_name as select field1,field2,... from table_name;

insert into view_name(field1,field2,...) values(value1,value2,...);

8.更新记录

使用UPDATE语句更新已有记录:

update table_name set field1=value1 where condition;

如果省略WHERE子句,那么全部行都将被更新

9.合并记录(批量插入、更新)

使用MERGE INTO语句:

merge into table1 t1

using(select * from table2) t2 on (t1.field1=t2.field1)

when matched then

update t1.field2=value2

delete where condition

when not matched then

insert (t1.field1,t1.field2,...)

values (t2.field1,t2.field2,...);

10.删除全表记录

使用DELETE语句:

delete from table_name;

如果DELETE语句后面没有WHERE子句,则会删除全表记录,使用的时候要注意

11.删除指定记录或单行记录

delete from table_name where condition;

删除时要注意主键的唯一性约束条件,如果没有唯一性约束,WHERE子句还要确保不会误删记录

整理自《SQL经典实例》

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值