Oracle 专题
专题目录
您的位置:database > Oracle专题 > Oracle插入数据
Oracle插入数据
作者:--    发布时间:2019-11-20

在本教程中将学习如何使用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列的值。

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

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

select
    *
from
    discounts;

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

oracle插入数据

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


网站声明:
本站部分内容来自网络,如您发现本站内容
侵害到您的利益,请联系本站管理员处理。
联系站长
373515719@qq.com
关于本站:
编程参考手册