SQL入门教程(32) Insert Into

到目前为止,我们学到了将如何把资料由表格中取出。但是这些资料是如何进入这些表格的呢?这就是这一页 ( 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  

在这里,我用了 SQL Server  中的函数来由日期中找出年。不同的数据库会有不同的语法。举个例来说,在 Oracle  上,您将会使用 WHERE to_char(date,’yyyy’)=1998 。