就是运用 TRUNCATE TABLE 的指令。在这个指令之下,表格中的资料会完全消失,可是表格本身会继续存在。 TRUNCATE TABLE 的语法为下:
TRUNCATE TABLE \表格名\
所以,我们如果要清除在 SQL Create Table 那一页建立的顾客表格之内的资料,我们就键入:
TRUNCATE TABLE customer.
INSERT INTO
到目前为止,我们学到了将如何把资料由表格中取出。但是这些资料是如果进入这些表格的呢?这就是这一页 (INSERT INTO) 和下一页 (UPDATE) 要讨论的。
基本上,我们有两种作法可以将资料输入表格中内。一种是一次输入一笔,另一种是一次输入好几笔。我们先来看一次输入一笔的方式。
依照惯例,我们先介绍语法。一次输入一笔资料的语法如下:
INSERT INTO \表格名\栏位1\栏位2\VALUES (\值1\值2\
假设我们有一个架构如下的表格:
Store_Information 表格 Column Name store_name Sales Data Type char(50) 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。
UPDATE
我们有时候可能会需要修改表格中的资料。在这个时候,我们就需要用到 UPDATE 指令。这个指令的语法是:
UPDATE \表格名\SET \栏位1\新值] WHERE {条件}
最容易了解这个语法的方式是透过一个例子。假设我们有以下的表格:
Store_Information 表格 store_name Los Angeles San Diego Los Angeles Boston Sales Date $1500 Jan-05-1999 $250 Jan-07-1999 $300 Jan-08-1999 $700 Jan-08-1999 我们发现说 Los Angeles 在 01/08/1999 的营业额实际上是 $500,而不是表格中所储存的 $300,因此我们用以下的 SQL 来修改那一笔资料:
UPDATE Store_Information
SET Sales = 500
WHERE store_name = \ AND Date = \
现在表格的内容变成:
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 {条件}
DELETE FROM
在某些情况下,我们会需要直接由数据库中去除一些资料。这可以藉由 DELETE FROM 指令来达成。它的语法是:
DELETE FROM \表格名\WHERE {条件}
以下我们用个实例说明。假设我们有以下这个表格:
Store_Information 表格 store_name Los Angeles San Diego Los Angeles Sales Date $1500 Jan-05-1999 $250 Jan-07-1999 $300 Jan-08-1999
Boston $700 Jan-08-1999 而我们需要将有关 Los Angeles 的资料全部去除。在这里我们可以用以下的 SQL 来达到这个目的:
DELETE FROM Store_Information WHERE store_name = \
现在表格的内容变成:
Store_Information 表格 store_name San Diego Boston
Sales $250 $700 Date Jan-07-1999 Jan-08-1999 进阶SQL
在这一部分,我们将介绍以下的 SQL 概念及关键字:
SQL UNION SQL UNION ALL SQL INTERSECT SQL MINUS SQL Subquery SQL EXISTS SQL CASE
我们并介绍如何用 SQL 来做出以下的运算:
排名 (Rank) 中位数 (Median)
累积总计 (Running Total) 总合百分比 (Percent to Total)
累积总合百分比 (Cumulative Percent to Total)
UNION
UNION 指令的目的是将两个 SQL 语句的结果合并起来。从这个角度来看, UNION 跟 JOIN 有些许类似,因为这两个指令都可以由多个表格中撷取资料。 UNION 的一个限制是两个 SQL 语句所产生的栏位需要是同样的资料种类。另外,当我们用 UNION 这个指令时,我们只会看到不同的资料值 (类似 SELECT DISTINCT)。
UNION 的语法如下:
[SQL 语句 1] UNION
[SQL 语句 2]
假设我们有以下的两个表格,
Store_Information 表格 store_name Los Angeles San Diego Los Angeles Boston Internet_Sales 表格 Date Jan-07-1999 Jan-10-1999 Jan-11-1999 Sales $250 $535 $320 Sales Date $1500 Jan-05-1999 $250 Jan-07-1999 $300 Jan-08-1999 $700 Jan-08-1999 Jan-12-1999 $750 而我们要找出来所有有营业额 (sales) 的日子。要达到这个目的,我们用以下的 SQL 语句:
SELECT Date FROM Store_Information UNION
SELECT Date FROM Internet_Sales
结果:
Date
Jan-05-1999 Jan-07-1999 Jan-08-1999 Jan-10-1999 Jan-11-1999 Jan-12-1999
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库SQL语句基础教程(7)在线全文阅读。
相关推荐: