Oracle插入(insert into)

Oracle对表数据的插入是使用insert命令来执行的。

insert 命令结构:

insert into 表名(列名1,列名2,列名3.....)values(值1,值2,值3.....);

 


语法解析:

1、列名可以省略,当列名不填时,默认的是表中的所有列,列的顺序是按照建表的顺序进行排列的。

2、列名的数量和值的数量要一致,并且值的类型要和列的类型一一对应。

3、当表当中某些字段设置了某些约束的情况下,必须按照字段的约束来进行该值的插入,例如:学生信息表(STUINFO)当中设置有主键(主键字段是STUID),因此该字段必须具有唯一性,不能和原有的数据重复。age、stuname、calassno等字段是必填字段,因此是必须有值的。

 


案例1:向学生信息表(stuinfo)插入一条数据:

insert into STUDENT.STUINFO (STUID, STUNAME, SEX, AGE, CLASSNO, STUADDRESS, GRADE, ENROLDATE, IDNUMBER)
values ('SC201801005', '龙七', '1', 26, 'C201801', '福建省厦门市XXX号', '2018', to_date('01-09-2018', 'dd-mm-yyyy'),
 '3503021992XXXXXXXX');
select * from student.stuinfo t where t.stuid='SC201801005';

结果如下:

Oracle插入(insert into)

 


案例2:向学生信息表(stuinfo)插入重复数据:

insert into STUDENT.STUINFO (STUID, STUNAME, SEX, AGE, CLASSNO, STUADDRESS, GRADE, ENROLDATE, IDNUMBER)
values ('SC201801005', '龙七', '1', 26, 'C201801', '福建省厦门市XXX号', '2018', to_date('01-09-2018', 'dd-mm-yyyy'),
 '3503021992XXXXXXXX');

结果如下:

Oracle插入(insert into)


insert插入一个select的结果集

在 Oracle 中,一个 INSERT 命令可以把一个select结果集一次性插入到一张表中。

 


语法结构如下:

 INSERT INTO 表 SELECT 子句,

 


案例3:把上一章节利用Oracle查询(select)语句备份的表stuinfo_2018的数据一次插入表stuinfo当中:

delete  from student.stuinfo t where t.stuid in (select b.stuid from student.stuinfo_2018 b );

insert into student.stuinfo select * from student.stuinfo_2018;

select * from student.stuinfo;

结果如下:

Oracle插入(insert into)

Oracle插入(insert into)

 

提示!

数据操纵语言(DML)包括 INSERT(插入)命令、 UPDATE(更新)命令、 DELETE(删除)命令、 SELECT … FOR UPDATE(查询)等。只有提交(commit)后才能持久化到数据库。