现在的位置: 首页备忘>正文
SQL语句全面教程-part4
2011年11月06日 备忘 暂无评论

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", ...)

假设我们有一个架构如下的表格:

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。

SQL语句教程(33) Update

我们有时候可能会需要修改表格中的资料。在这个时候,我们就需要用到 UPDATE 指令。这个指令的语法是:

UPDATE "表格名"

SET "栏位 1" = [新值]

WHERE {条件}

最容易了解这个语法的方式是透过一个例子。假设我们有以下的表格:

Store_Information 表格

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

WHERE store_name = "Los Angeles" AND Date = "Jan-08-1999" 现在表格的内容变成: Store_Information 表格

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 指令来达成。它的 语法是:

DELETE FROM "表格名" WHERE {条件} 以下我们用个实例说明。假设我们有以下这个表格: Store_Information 表格

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_Information 表格

store_name

Sales

Date

San Diego

$250

Jan-07-1999

Boston $700 Jan-08-1999
0

给我留言

留言无头像?

×
腾讯微博