顯示具有 資料異動 標籤的文章。 顯示所有文章
顯示具有 資料異動 標籤的文章。 顯示所有文章

2013年9月12日 星期四

SQL: Insert 插入資料

到目前為止,我們學到了將如何把資料由表格中取出。但是這些資料是如果進入這些表格的呢? 這就是這一頁 (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 也可以含有 WHERE、 GROUP 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

2013年9月3日 星期二

SQL 資料的異動指令


Truncate 刪除 Table 的全部資料

從資料表中移除所有資料列,且不記錄個別資料列的刪除動作。 TRUNCATE TABLE 類似於不含 WHERE 子句的 DELETE 陳述式;不過,TRUNCATE TABLE 比較快,使用的系統資源和交易記錄資源也比較少。

TRUNCATE TABLE employees;
移除 employees 所有資料列。