SQL语句教程(31) Truncate Table
有时候我们会需要清除一个表格中的所有资料。要达到这个目的,一种方式是我们在 SQL DROP 那一页 看 到的 DROP TABLE 指令。不过这样整个表格就消失,而无法再被用了。另一种方式就是运用 TRUNCATE TABLE 的指令。在这个指令之下,表格中的资料会完全消失,可是表格本身会继续存在。 TRUNCATE TABLE 的语法为下:
TRUNCATE TABLE "表格名"
所以,我们如果要清除在 SQL Create 那一页建立的顾客表格之内的资料,我们就打入:
TRUNCATE TABLE customer.
SQL语句教程(32) Insert Into
到目前为止,我们学到了将如何把资料由表格中取出。但是这些资料是如何进入这些表格的呢?这就是这一页 (INSERT INTO) 和下一页 (UPDATE) 要讨论的。基本上,我们有两种作法可以将资料输入表格中内。一种是一次输入一笔,另一种是一次输入好几笔。我 们先来看一次输入一笔的方式。
依照惯例,我们先介绍语法。一次输入一笔资料的语法如下:
INSERT INTO "表格名" ("栏位 1", "栏位 2", ...) VALUES ("值 1", "值 2", ...)
假设我们有一个架构如下的表格:
|
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。
SQL语句教程(33) Update
我们有时候可能会需要修改表格中的资料。在这个时候,我们就需要用到 UPDATE 指令。这个指令的语法是:
UPDATE "表格名"
SET "栏位 1" = [新值]
WHERE {条件}
最容易了解这个语法的方式是透过一个例子。假设我们有以下的表格:
|
store_name |
Sales |
Date |
|
Los Angeles |
$1500 |
Jan-05-1999 |
|
San Diego |
$250 |
Jan-07-1999 |
|
Los Angeles |
$300 |
Jan-08-1999 |
|
Boston |
$700 |
Jan-08-1999 |
我们发现说 Los Angeles 在 01/08/1999 的营业额实际上是 $500,而不是表格中所储存的 $300,因此
我们用以下的 SQL 来修改那一笔资料:
UPDATE Store_Information
SET Sales = 500
|
store_name |
Sales |
Date |
|
Los Angeles |
$1500 |
Jan-05-1999 |
|
San Diego |
$250 |
Jan-07-1999 |
|
Los Angeles |
$500 |
Jan-08-1999 |
|
Boston |
$700 |
Jan-08-1999 |
在这个例子中,只有一笔资料符合 WHERE 子句中的条件。如果有多笔资料符合条件的话,每一笔符合条
件的资料都会被修改的。
我们也可以同时修改好几个栏位。这语法如下:
UPDATE "表格"
SET "栏位 1" = [值 1], "栏位 2" = [值 2]
WHERE {条件}
SQL语句教程(34) Delete
在某些情况下,我们会需要直接由数据库中去除一些资料。这可以藉由 DELETE FROM 指令来达成。它的 语法是:
|
store_name |
Sales |
Date |
|
Los Angeles |
$1500 |
Jan-05-1999 |
|
San Diego |
$250 |
Jan-07-1999 |
|
Los Angeles |
$300 |
Jan-08-1999 |
|
Boston |
$700 |
Jan-08-1999 |
而我们需要将有关 Los Angeles 的资料全部去除。在这里我们可以用以下的 SQL 来达到这个目的:
DELETE FROM Store_Information WHERE store_name = "Los Angeles"
现在表格的内容变成:
|
store_name |
Sales |
Date |
|
San Diego |
$250 |
Jan-07-1999 |
| Boston | $700 | Jan-08-1999 |
