SQL語句基礎(chǔ)學(xué)習(xí)之InsertInto

字號:

到目前為止,我們學(xué)到了將如何把資料由表格中取出。但是這些資料是如何進(jìn)入這些表格的呢?這就是這一頁 (INSERT INTO) 和下一頁 (UPDATE) 要討論的。
    基本上,我們有兩種作法可以將資料輸入表格中內(nèi)。一種是一次輸入一筆,另一種是一次輸入好幾筆。我們先來看一次輸入一筆的方式。
    依照慣例,我們先介紹語法。一次輸入一筆資料的語法如下:
    INSERT INTO "表格名" ("欄位1", "欄位2", ...) VALUES ("值1", "值2", ...)
    假設(shè)我們有一個架構(gòu)如下的表格:
    Store_Information 表格
    Column NameData Type
    store_namechar(50)
    Salesfloat
    Datedatetime
    而我們要加以下的這一筆資料進(jìn)去這個表格:在 January 10, 1999,Los Angeles 店有 $900 的營業(yè)額。我們就打入以下的 SQL 語句:
    INSERT INTO Store_Information (store_name, Sales, Date) VALUES (’Los Angeles’, 900, ’Jan-10-1999’)
    第二種 INSERT INTO 能夠讓我們一次輸入多筆的資料。跟上面剛的例子不同的是,現(xiàn)在我們要用 SELECT 指令來指明要輸入表格的資料。如果您想說,這是不是說資料是從另一個表格來的,那您就想對了。一次輸入多筆的資料的語法是:
    INSERT INTO "表格1" ("欄位1", "欄位2", ...)
    SELECT "欄位3", "欄位4", ...
    FROM "表格2"
    以上的語法是最基本的。這整句 SQL 也可以含有 WHERE、 GROUP BY、 及 HAVING 等子句,以及表格連接及別名等等。
    舉例來說,若我們想要將 1998 年的營業(yè)額資料放入 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 中的函數(shù)來由日期中找出年。不同的數(shù)據(jù)庫會有不同的語法。舉個例來說,在 Oracle 上,您將會使用 WHERE to_char(date,’yyyy’)=1998。