爱心技术专栏专题

用SQL录入数据

摘录:爱心 来源:爱心 加入时间:2007年04月30日
摘要:
用SQL录入数据


    数据的录入采用【insert】语句。对应不同的录入方式,【insert】语句的语法会有所变化。
4.6.1 单行记录的录入
    1. 语法
    insert into …

用SQL录入数据

站点:爱心种子小博士 关键字:用SQL录入数据

用SQL录入数据


    数据的录入采用【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数据表中。

转载:转载请保留本信息,本文来自http://www.51dibs.com/lp07/la/a2/l_a_85a63b04f402e45b.html