熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> SQL Server >> 正文

SQL入門:插入數據

2013-11-15 14:35:33  來源: SQL Server 

  當創建新表時新表不包含任何數據要將新的行輸入表中使用 INSERT 語句此語句有兩種一般格式
  
  
  一種格式使用 VALUES 子句來指定一行或多行的列值下面三個示例使用此一般格式將數據插入表中
  
  另一種格式指定全查詢而非指定 VALUES 來標識來自包含在其他表和/或視圖中的行的列
  全查詢是 INSERT 或 CREATE VIEW 語句中所使用的選擇語句或者是跟在謂詞後面的選擇語句括在括號中的全查詢一般稱為子查詢
  
  根據創建表時已選擇的缺省選項對於每個插入的行為每一列提供一個值或者接受一個缺省值各種數據類型的缺省值在 SQL Reference 中討論
  
  下列語句使用 VALUES 子句將一行數據插入 PERS 表中
  
   
   INSERT INTO PERS
    VALUES ( Harris Sales )
  
  
  下列語句使用 VALUES 子句將三行插入其中只有 ID名稱以及工作是已知的 PERS 表中如果列定義為 NOT NULL 且沒有缺省值則必須為該列指定一個值 CREATE TABLE 語句中的列定義上的 NOT NULL 子句可以用單詞 WITH DEFAULT 擴充如果某一列定義為 NOT NULL WITH DEFAULT 或常數缺省值(如 WITH DEFAULT 並且您未在列列表中指定該列則缺省值插入至已插入行的該列中例如在 CREATE TABLE 語句中僅為 DEPT 列指定了缺省值並將該值定義為 因此DEPT 設置為 而所有其他列都為空
  
  
   INSERT INTO PERS (NAME JOB ID)
    VALUES (Swagerman Prgmr )
        (Limoges Prgmr )
        (Li Prgmr )
  
  下列語句返回插入的結果
  
   SELECT *
    FROM PERS
   
  注意在此情況下並未給每個列指定值空值顯示為 為此列名列表的次序和數據類型都必須與 VALUES 子句中提供的值對應如果省略列名列表(如第一個示例中那樣)則 VALUES 之後的數據值列表的次序必須與它們所插入至的表中的列次序相同值的數目必須等於表中列的數目
  
  每個值必須與它所插入至的列的數據類型相容如果某列定義為可空且未指定該列的值則將空值賦給插入行中的該列
  
  下列示例將空值插入 YEARSCOMM 和 BIRTH_DATE 中因為未給行中的那些列指定值
  
   INSERT INTO PERS (ID NAME JOB DEPT SALARY)
    VALUES ( Perna Sales )
  
  INSERT 語句的第二種格式對於用來自另一表中行的值填充表非常方便如所述的那樣指定全查詢而非指定 VALUES 以標識來自包含在其他表和/或視圖中的行中的列
  
  下列示例從員工 STAFF 表中選擇部門 的成員的數據並將它插入 PERS 表中
  
   
   INSERT INTO PERS (ID NAME DEPT JOB YEARS SALARY)
    SELECT ID NAME DEPT JOB YEARS SALARY
      FROM STAFF
      WHERE DEPT =
  
  在此插入之後下列 SELECT 語句與 INSERT 語句中全查詢產生的結果相同
  
   SELECT ID NAME DEPT JOB YEARS SALARY
    FROM PERS
    WHERE DEPT =
  
  
  結果為
  
  

From:http://tw.wingwit.com/Article/program/SQLServer/201311/22031.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.