SQL Insert Into


SQL CREATE TABLE
SQL Constraint
SQL 主鍵
SQL 外來鍵
SQL CREATE VIEW
SQL CREATE INDEX
SQL ALTER TABLE
SQL DROP TABLE
SQL TRUNCATE TABLE
SQL INSERT INTO
SQL UPDATE
SQL DELETE FROM



網站導引
其他資源


到目前為止,我們學到了將如何把資料由表格中取出。但是這些資料是如果進入這些表格的呢? 這就是這一頁 (INSERT INTO) 和下一頁 (UPDATE) 要討論的。

基本上,我們有兩種作法可以將資料輸入表格中內。一種是一次輸入一筆,另一種是一次輸入好幾筆。 我們先來看一次輸入一筆的方式。

依照慣例,我們先介紹語法。一次輸入一筆資料的語法如下:

INSERT INTO "表格名" ("欄位1", "欄位2", ...)
VALUES ("值1", "值2", ...)

假設我們有一個架構如下的表格:

Store_Information 表格
Column Name Data Type
store_name char(50)
Sales float
Date datetime

而我們要加以下的這一筆資料進去這個表格:在 January 10, 1999,Los Angeles 店有 $900 的營業額。我們就打入以下的 SQL 語句:

INSERT INTO Store_Information (store_name, Sales, Date)
VALUES ('Los Angeles', 900, 'Jan-10-1999')

第二種 INSERT INTO 能夠讓我們一次輸入多筆的資料。 跟上面剛的例子不同的是,現在我們要用 SELECT 指令來 指明要輸入表格的資料。如果您想說,這是不是說資料是從另一個表格來的,那您就想對了。 一次輸入多筆的資料的語法是:

INSERT INTO "表格1" ("欄位1", "欄位2", ...)
SELECT "欄位3", "欄位4", ...
FROM "表格2"

以上的語法是最基本的。這整句 SQL 也可以含有 WHEREGROUP BY、及 HAVING 等子句,以及 表格連接及別名等等。

舉例來說,若我們想要將 1998 年的營業額資料放入 Store_Information 表格,而我們知道 資料的來源是可以由 Sales_Information 表格取得的話,那我們就可以鍵入以下的 SQL:

INSERT INTO Store_Information (store_name, Sales, Date)
SELECT store_name, Sales, Date
FROM Sales_Information
WHERE Year(Date) = 1998

在這裡,我用了 SQL Server 中的函數來由日期中找出年。不同的資料庫會有不同的語法。 舉個例來說,在 Oracle 上,您將會使用 WHERE to_char(date,'yyyy')=1998。

下一頁:SQL UPDATE

網站導引   |   其他資源