Oracle PL / SQL 插入insert

INSERT是SQL的数据操作语言的一部分的SQL关键字之一。

DML可以操作关系数据库中的数据。

让我们从INSERT语句的第一种形式开始,INSERT ... VALUES。

INSERT ... VALUES

以下代码显示如何使用DML的INSERT VALUES子语句。


INSERT INTO authors ( id, name, birth_date, gender ) 
VALUES ( 100, 'Tom', to_date('19830823', 'YYYYMMDD'), 'MALE' ); 

COMMIT; 

上述代码中使用的INSERT VALUES语句的语法如下:

INSERT INTO <table_name> ( 
<column_name_1>, 
<column_name_2>, ... 
<column_name_N> ) 
VALUES ( 
<column_value_1>, 
<column_value_2>,... 
<column_value_N> ); 

<table_name>是要插入值INSERT VALUES INTO的表的名称,<column_name>是您要插入值的表中的一个列<column_value>是要放入相应列的值。

INSERT VALUES语句之后的COMMIT语句提交您在数据库中插入的值。

以下两个insert语句将数据添加到author_books表中。

INSERT INTO author_books ( id, author_id, title, publish_date ) 
VALUES ( 10, 100, 'CSS', to_date('201000101', 'YYYYMMDD') ); 

INSERT INTO author_books ( 
id, author_id, title, publish_date ) 
VALUES ( 20, 100, 'Learn CSS', to_date('20200101', 'YYYYMMDD') ); 

COMMIT; 

execute SYS.DBMS_STATS.gather_table_stats(USER, 'AUTHOR_PUBLICATIONS'); 

Insert . . . Select

有一个第二种形式的INSERT语句,可以是非常有用的。

INSERT语句的第二种形式使用SELECT语句,而不是列值列表。

以下代码显示如何使用INSERT ... SELECT语法插入数据条目。


INSERT INTO authors ( 
id, name, birth_date, gender ) 
SELECT 200, 'Jack', to_date('19410101', 'YYYYMMDD') 'MALE' 
FROM dual; 

COMMIT; 

INSERT SELECT语句的语法如下:


INSERT INTO <table_name> ( 
<column_name_1>, 
<column_name_2>, ... 
<column_name_N> ) 
SELECT <column_value_1>, 
<column_value_2>,... 
<column_value_N> 
FROM <from_table_name> ...; 

<table_name>是您要插入的表的名称INSERT INTO <column_name>是您要插入值的表中的一个列<column_value>是要放入对应列<from_table_name>的值是从中选择值的表或表。

以下代码显示了Conditional INSERT ... SELECT语句。


INSERT INTO authors ( id, name, birth_date, gender ) 
SELECT 300, 'Jane', to_date('19830101', 'YYYYMMDD')09 'MALE' 
FROM dual d 
WHERE not exists ( SELECT 1 FROM authors x WHERE x.id = 300 ); 

COMMIT; 

SQL SELECT语句中的子查询将检查数据库中是否存在所需的条目。

如果是这样,Oracle不会尝试INSERT; 否则,它添加行。

 CSDN:程序猿 寄语:
1、作为一个真正的程序员,首先应该尊重编程,热爱你所写下的程序,他是你的伙伴,而不是工具。
2、程序员可以让步,却不可以退缩,可以羞涩,却不可以软弱,总之,程序员必须是勇敢的。
3、编程是一种单调的生活,因此程序员比普通人需要更多的关怀,更多的友情。
4、程序不是年轻的专利,但是,他属于年轻。
5、没有情调,不懂浪漫,也许这是程序员的一面,但拥有朴实无华的爱是他们的另一面。
6、一个好汉三个帮,程序员同样如此。
7、一个100行的代码调试都可能会让程序员遇到很多挫折,所以,面对挫折,我们永远不能低头。
8、调试完一个动态连接函数,固然值得兴奋,但真正的成功远还在无数个函数之后。
9、程序是我的生命,但我相信爱她甚过爱我的生命。
10、信念和目标,必须永远洋溢在程序员内心。
11、就算我们站在群山之颠,也别忘记雄鹰依旧能从我们头顶飞过。骄傲是比用JAVA进行底层开发更可笑的东西。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值