用SQL录入数据

发表于:2007-07-02来源:作者:点击数: 标签:
数据的录入采用【insert】语句。对应不同的录入方式,【insert】语句的语法会有所变化。 4.6.1 单行记录的录入 1. 语法 insert into 数据表(字段名1,字段名2,……) values(字段名1的值, 字段名2的值,……)。 由于字段的类型不同,在书写字段值的时候要注意格


    数据的录入采用【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.ltesting.net