数据库教程-Oracle插入数据

跨零代码为大家提供高品质的解决方案,请大家多多来访,跨零不胜感激,在此谢过。

在本教程中将学习如何使用Oracle INSERT语句将数据插入到表中。

Oracle INSERT语句简介

要将新行插入到表中,请按如下方式使用Oracle INSERT语句:

INSERT INTO table_name (column_1, column_2, column_3, ... column_n) VALUES( value_1, value_2, value_3, ..., value_n); 

在这个声明语句中:

  • 首先,指定要插入的表的名称 – table_name
  • 其次,在圆括号内指定逗号分隔列名的列表。
  • 第三,指定对应于列列表的逗号分隔值列表。

如果值列表与表列具有相同的顺序,则可以跳过不指定列的列表,但这不被认为是一种好的做法:

INSERT INTO table_name VALUES (value_1, value_2, value_3, ..., value_n); 

如果从Oracle INSERT语句中排除一列或多列,则必须指定列列表,因为Oracle需要它与值列表中的值相匹配。

INSERT语句中省略的列将使用缺省值(如果可用)或者如果列接受NULL值,则使用NULL值。

Oracle INSERT语句的例子

我们创建一个名为discounts的新表,用来演示如何插入数据:

-- oracle 12c 创建表语法 CREATE TABLE discounts (     discount_id NUMBER GENERATED BY DEFAULT AS IDENTITY,     discount_name VARCHAR2(255) NOT NULL,     amount NUMBER(3,1) NOT NULL,     start_date DATE NOT NULL,     expired_date DATE NOT NULL );  -- oracle 11g 创建表语法 drop sequence discounts_seq;  create sequence discounts_seq  increment by 1  start with 1  maxvalue 9999999999  nocache;  CREATE TABLE discounts (     discount_id NUMBER, -- discounts_seq.nextval     discount_name VARCHAR2(255) NOT NULL,     amount NUMBER(3,1) NOT NULL,     start_date DATE NOT NULL,     expired_date DATE NOT NULL ); 

discounts表中,discount_id列是一个标识列,其默认值由系统自动生成,因此在Oracle 12c 中,不必在INSERT语句中指定discount_id列。

其他列,如:discount_nameamountstart_dateexpired_dateNOT NULL列,所以必须为它们提供值。

以下语句将新行插入到discounts表中:

-- Oracle 12c语法 INSERT INTO discounts(discount_name, amount, start_date, expired_date) VALUES('双11电脑特价', 6.5, DATE '2017-11-11', DATE '2017-11-12');  -- oracle 11g语法 INSERT INTO discounts(discount_id, discount_name, amount, start_date, expired_date) VALUES(discounts_seq.nextval, '双11电脑特价', 6.5, DATE '2017-11-11', DATE '2017-11-12'); 

在这个语句中,使用日期文字DATE '2017-11-11'DATE '2017-11-12'来表示日期列start_dateexpired_date

以下语句从discounts表中检索数据以验证插入情况:

SELECT     * FROM     discounts; 

执行上面查询语句,得到以下结果 –

Oracle插入数据

以下示例向discounts表中插入一个新行:

-- Oracle 12c写法 INSERT INTO discounts(discount_name, amount, expired_date, start_date) VALUES('2017长期折扣',  9.5, DATE '2017-12-31', CURRENT_DATE);  -- Oracle 11g INSERT INTO discounts(discount_id, discount_name, amount, expired_date, start_date) VALUES(discounts_seq.nextval, '2017长期折扣',  9.5, DATE '2017-12-31', CURRENT_DATE); 

在这个例子中,使用CURRENT_DATE函数的结果指定start_date列的值。

以下语句从discounts表中检索数据以验证插入情况:

SELECT     * FROM     discounts; 

执行上面查询语句,得到以下结果 –

Oracle插入数据

在本教程中,您已学习如何使用Oracle INSERT语句将新行插入到表中。

  

从零到一,创造未来!跨零综合IT问题解决服务站,欢迎你的到来。Oracle数据库教程 只为你绽放。

本文固定链接: http://kua0.com/2019/01/17/数据库教程-oracle插入数据/

为您推荐

发表评论

电子邮件地址不会被公开。 必填项已用*标注