GZICP.com   
 
    返回首页
    联系我们
 
 
     

SQL入门:插入数据

www.gzicp.com   2004年6月30日 23:32:27
 
  当创建新表时,新表不
有两种一般格式:
包含任何数据。要将新的行输入

表中,使用 INSERT 语句。此语句



  一种格式,使用 VALUE
数据插入表中。
S 子句来指定一行或多行的列值

。下面三个示例使用此一般格式将


  另一种格式,指定全查
列。
询而非指定 VALUES 来标识来自

包含在其他表和/或视图中的行的

  全查询是 INSERT 或 CREATE VIEW
择语句。括在括号中的全查询一般称为子
语句中所使用的选择语句、或者是跟在谓词后面的选
查询。

  根据创建表时已选择的缺省选项,对
缺省值。各种数据类型的缺省值在 SQL R
于每个插入的行,为每一列提供一个值或者接受一个
eference 中讨论。

  下列语句使用 VALUES 子句将一行数据插入 PERS 表中:             

                                                                             
   INSERT INTO PERS                                    
   VALUES (12,
'Harris', 20, 'Sales', 5, 18
000, 1000, '1950-1-1')
                                                                       

  下列语句使用 VALUES 子句将三行插
。如果列定义为 NOT NULL 且没有缺省值
的列定义上的 NOT NULL 子句可以用单词
WITH DEFAULT 或常数缺省值(如 WITH D
省值插入至已插入行的该列中。例如,在
并将该值定义为 10。因此,DEPT 设置为
入其中只有 ID、名称以及工作是已知的 PERS 表中
,则必须为该列指定一个值。 CREATE TABLE 语句中
WITH DEFAULT 扩充。如果某一列定义为 NOT NULL
EFAULT 10),并且您未在列列表中指定该列,则缺
CREATE TABLE 语句中,仅为 DEPT 列指定了缺省值
10 而所有其他列都为空。

                                                                               
   INSERT INTO PERS (NAME, JOB, ID)    

   VALUES ('Swa
german', 'Prgmr', 500),

   ('Lim
oges', 'Prgmr', 510),
   ('Li', 'Prgmr', 520)        

  下列语句返回插入的结果:                                                     

   SELECT *                                                    
   FROM PERS                                            
   

  注意:在此情况下,并
类型都必须与 VALUES 子句
VALUES 之后的数据值列表
于表中列的数目。
未给每个列指定值。空值显示为
中提供的值对应。如果省略列名
的次序必须与它们所插入至的表

-。为此,列名列表的次序和数据
列表(如第一个示例中那样),则
中的列次序相同,值的数目必须等


  每个值必须与它所插入至的列的数据
,则将空值赋给插入行中的该列。
类型相容。如果某列定义为可空,且未指定该列的值


  下列示例将空值插入 YEARS、COMM

和 BIRTH_DATE 中,因为未给行中的那些列指定值。


   INSERT INTO PER
S (ID, NAME, JOB, DEPT, SALA
RY)
   VALUES (410,
'Perna', 'Sales', 20, 20000
)

  INSERT 语句的第二种格式对于用来
指定全查询而非指定 VALUES 以标识来自
自另一表中行的值填充表非常方便。如所述的那样,
包含在其他表和/或视图中的行中的列。

  下列示例从员工 STAFF
表中选择部门 38 的成员的数
据,并将它插入 PERS 表中:

                                                                             
   INSERT INTO PER
S (ID, NAME, DEPT, JOB, YEAR
S, SALARY)
   SELECT ID, NAME, DEPT, J
OB, YEARS, SALARY
   FROM STAFF                                    
   WHERE DEPT = 38                          

  在此插入之后,下列 S
ELECT 语句与 INSERT 语句中全
查询产生的结果相同。

   SELECT ID, NAME, DEPT, JOB,
YEARS, SALARY
   FROM PERS                                            
   WHERE DEPT = 38                                
                                                                               

  结果为:                                                                      
   



 

最新文章
·防范SQL注入式攻击  (2004年09月05日)
·SQL injection的实现与应用  (2004年09月04日)
·SQL入门:目录视图的介绍  (2004年07月15日)
·SQL入门:大对象 (LOB)  (2004年07月15日)
·SQL入门:用户定义函数  (2004年07月15日)
·SQL入门:用户定义类型  (2004年07月15日)





 
 
Copyright © 1999-2008 GZICP.com All Rights Reserved