oracle插入数据语句实例,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_name,amount,start_date和expired_date是NOT 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_date和expired_date。

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

SELECT

*

FROM

discounts;

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

ccab158b67ca17bf21a8316b2f90efc4.png

以下示例向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列的值。

注意:start_date列这里是放到了最后一个位置,而它对应的值也放到最后一个位置。

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

SELECT

*

FROM

discounts;

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

9af8a6d243d0264d2238ecd7bb7d4afd.png

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

¥ 我要打赏

纠错/补充

收藏

加QQ群啦,易百教程官方技术学习群

注意:建议每个人选自己的技术方向加群,同一个QQ最多限加 3 个群。

参与评论 您还未登录,请先 登录 后发表或查看评论

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:深蓝海洋 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值