用SQL录入数据

王朝mssql·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

数据的录入采用【insert】语句。对应不同的录入方式,【insert】语句的语法会有所变化。

4.6.1 单行记录的录入

1. 语法

insert into 数据表(字段名1,字段名2,……) values(字段名1的值, 字段名2的值,……)。

由于字段的类型不同,在书写字段值的时候要注重格式。

数值型字段,可以直接写值。

字符型字段,其值上要加上单引号。

日期型字段,其值上要加上单引号,同时还要注重年、月、日的排列次序。

在数据的插入语句中,插入列排序和插入值要一一对应。字符型和日期型字段要加上单引号,非空列必须有值。

2. 实例

在scott.emp数据表里共包含了3种类型的字段。

empno,number(4),NOT NULL,数值型,长度为4,不能为空。

ename,varchar2(10),字符型,长度为10。

hiredate,date,日期型。

我们以在这3个字段中插入记录为例进行说明。

对于日期型的数据,读者往往会感觉为难,因为不知道年、月、日的排列顺序和格式,这里教给大家几个方法。首先查询范例数据表中的数据,然后“依葫芦画瓢”就可以了。

(1)在【命令编辑区】输入“select empno, ename, hiredate from scott.emp;”,然后单击【执行】按钮,出现如图4.41所示的结果。因此,笔者的计算机系统默认的日期型数据格式应该为“日-月-年”。

【参见光盘文件】:\第4章\4.6\461-1.sql。

(2)在【命令编辑区】输入“insert into scott.emp(empno, ename, hiredate) values (7999, ’JONE’,’25-11月-2002’);”,然后单击【执行】按钮,出现如图4.42所示的结果。

【参见光盘文件】:\第4章\4.6\461-2.sql。

(3)在【命令编辑区】输入“select * from scott.emp where empno=7999;”,然后单击【执行】按钮,出现如图4.43所示的结果。

【参见光盘文件】:\第4章\4.6\461-3.sql。

4.6.2 多行记录的录入

在数据的录入中,经常需要将从数据表中查询到的数据稍做修改成批录入的情况,这就是多行数据的录入。

1. 语法

insert into 数据表(字段名1,字段名2,……)

(select(字段名1或运算, 字段名2或运算,……) from 数据表 where 条件)

实际上,首先利用子查询语句查询结果,然后再利用insert语句将结果插入数据表。子查询和insert中的数据表既可以相同,也可以不同,但要求查询结果的字段和insert插入的数据表中字段属性完全一致。

2. 实例

在【命令编辑区】执行以下语句。

―――――――――――――――――――――――――――――――――――――

insert into scott.emp(empno,ename,hiredate) (select empno+100,ename,hiredate from scott.emp where empno>=6999 );

―――――――――――――――――――――――――――――――――――――

【参见光盘文件】:\第4章\4.6\462.sql。

单击【执行】按钮,出现如图4.44所示的结果。

4.6.3 表间数据复制

可以从一个数据表中选择需要的数据插入到全新的数据表中。

(1)在【命令编辑区】执行以下语句。

―――――――――――――――――――――――――――――――――――――

create table scott.test

as

(

select distinct empno,ename,hiredate

from scott.emp

where empno>=7000

);

―――――――――――――――――――――――――――――――――――――

【参见光盘文件】:\第4章\4.6\463.sql。

然后单击【执行】按钮,出现如图4.45所示的结果。

上述语句的功能是创建一个名为scott.test的数据表,表结构包含3个字段。并将scott.emp中具有不同的empno字段,且empno>=7000的数据复制到scott.test数据表中。

(2)在【命令编辑区】输入“select * from scott.test;”语句,然后单击【执行】按钮,出现如图4.46所示的结果。

这里的create table语句的功能是创建新的数据表,上述过程实际是分3步执行的。首先查询符合要求的数据,其次建立3个字段的名为test的数据空表,最后是将查询的数据插入到test数据表中。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航