当前位置: Oracle DBA培训网-优技培训 >> oracle培训 > Oracle培训教程 >

Oracle基础:insert数据插入语法

Oracle基础:insert数据插入语法

Oracle基础:insert数据插入语法,用INSERT命令完成对数据的插入。

语法结构:根据结果集创建表

INSERT INTO 表名(列名1,列名2……) VALUES (1,值2……)

语法解析:

1. 列名可以省略。当省略列名时,默认是表中的所有列名,列名顺序为表定义中列的先后顺序。

2. 值的数量和顺序要与列名的数量和顺序一致。值的类型与列名的类型一致。

代码演示:向INFOS表和SCORES表中插入数据

SQL> INSERT INTO INFOS VALUES (  

  2  's100102', '林冲', '', 22, 2,

  3  TO_DATE('2009-8-9 06:30:10',' YYYY-MM-DD HH24:MI:SS '),  

  4  '西安', '1001'

  5  )

  6  /

1 row inserted

SQL> INSERT INTO INFOS VALUES (

's100104','阮小二','',26,3,SYSDATE,default,'1001');  

 1 row inserted

SQL>COMMIT;  

代码解析:

① 表名后面缺省了列名,默认是表Infos中的所有列名,values中的值要与表中列一一对应,包括顺序和数据类型的对应。在SQL*Plus中一条语句可以写在多行,那么从第二行开始,sqlplus会为每一行前面给出行号。

② 在Oracle中,日期是国际化的,不同的区域安装的数据库,默认的日期格式不同,因此为了程序便于移植,日期的输入要使用TO_DATE函数对日期格式化后输入,采用格式化字符串对日期进行格式化时,格式化字符串中字符不区分大小写,常见的格式化字符如下:

1. yyyy表示四位年份

2. mm表示两位月份,比如3月表示为03

3. dd表示两位日期

4. hh24表示小时从0-23,hh12也表示小时从0-11。

5. mi 表示分钟

6. ss表示秒

③ 在遇到存在默认值的列时,可以使用default值代替。

④ commit是把用户操作(添加、删除、修改操作)提交,只有提交操作后,数据才能真正更新到表中,否则其他用户无法查询到当前用户操作的结果。

在Oracle中,一个INSERT命令可以把一个结果集一次性插入到一张表中。使用的语句是:INSERT INTO 表 SELECT子句,如下示例:

代码演示:INSERT向表中插入一个结果集

SQL> INSERT INTO INFOS2 SELECT * FROM INFOS;

5 rows inserted

在这种语法下,要求结果集中每一列的数据类型必须与表中的每一列的数据类型一致,结果集中的列的数量与表中的列的数量一致。比如表INFOS2,该表的结构与INFO表一样,那么可以把INFO表中的所有记录一次性插入到INFOS2表中。

Oracle的简单查询和SQL Server一样都可以在查询列中使用常量,如图:

图3 Select中的常量

可以使用刚才的做法,把该结果集中的数据插入到表INFOS中。

代码演示:INSERT向表中插入一个常量结果集

SQL> INSERT INTO INFOS

SELECT 's100106','卢俊义','',23,5,

               TO_DATE('2009-8-9 08:00:10','YYYY-MM-DD HH24:MI:SS'),

               '青龙寺','1001'

FROM DUAL;

1 rows inserted

SQL>COMMIT;

技术沙龙MORE+

标签错误:<!-- #Label# labelId=20160707140604 moduleId=1 classId=12231768634 orderby=2 fields=url,title,u_info attribute= datatypeId=22192428132 recordCount=3 pageSize= <htmlTemplate><dt><img src="/images/index_26${index}.jpg" width="100" height="62" /><a href="$url" title="${title}">${title}</a><span>${api.left(u_info,60)}</span></dt></htmlTemplate> -->
我要参加技术沙龙