用于修改數(shù)據(jù)庫內(nèi)容的 SQL 語句主要有以下三個:
1、 Insert,向一個表中加入新的數(shù)據(jù)行
2、 Delete,從一個表中刪除數(shù)據(jù)行
3、 Update,更改數(shù)據(jù)庫中已經(jīng)存在的數(shù)據(jù)
首先我們來看看 Insert 的用法:
標(biāo)準(zhǔn)語法:
INSERT INTO table_name
(col1, col2...)
VALUES(value1, value2...)
下例要將888作為一個新的銷售員加入表 Salesreps 中
Insert Into
Salesreps (name,num,sales,hire_date,income)
values ('shusheng',9,10000,'23-Feb-99',2000)
在此語句中,列的名稱列在括號中以逗號隔開,接下去是 Value 短語和括號中同樣以逗號隔開的每列數(shù)據(jù),應(yīng)該注意的是數(shù)據(jù)和列名稱的順序是相同的,而且若是字符串型則以單引號隔開。從概念上來講, Insert 語句建立的一個與表列結(jié)構(gòu)相一致的數(shù)據(jù)行,用取自 Values 子句的數(shù)據(jù)來填充它,然后將該新行加入表中,表中的行是不排序的,因此不存在將該行插入到表的頭或尾或兩行之間的這個概念。 Insert 語句結(jié)束后,新行就是表的一部分了。
Insert 語句還可以將多行數(shù)據(jù)添加到目標(biāo)表中去,在這種形式的 Insert 語句中,新行的數(shù)據(jù)值不是在語句正文中明確地指定的,而是語句中指定的一個數(shù)據(jù)庫查詢。添加的值來自數(shù)據(jù)庫自身的行,這乍看起來似乎有些奇怪,但是在某些特定的狀態(tài)下,這是非常有用的。比如,你想把 1998 年 12 月 30 日之前產(chǎn)生的訂單編號、日期和數(shù)目從 order 表中拷貝到另一個名為 oldorder 的表中去,多行 Insert 語句為拷貝數(shù)據(jù)提供了一種緊湊而高效的方法,如下:
Insert into oldorder (Num,Date,Amount)
Select Num,Date,Amount
From order
Where Date<'30-12-98'
這條語句看起來有些復(fù)雜,其實很簡單,語句標(biāo)識了接收新行的表 oldorder 和接收數(shù)據(jù)的列,完全類似于單行 Insert 語句。語句的剩余部分是一個查詢,它檢索 order 表中的數(shù)據(jù)。 SQL 先執(zhí)行對 order 表的查詢,然后將查詢結(jié)果逐行插入到 oldorder 表中去。
下面我們來看看 Update 的用法, Update 語句用于更新單表中選定行的一列或多列的值。要更新的目標(biāo)表在語句中定義, Set 子句則指定要更新哪些列并計算他們的值。 Update 語句總是包含 Where 語句,而且 Update 語句比較危險,所以您必須明確地認識到 Where 語句的重要性, Where 語句被用來指定需要更新的行。
標(biāo)準(zhǔn)語法:
UPDATE table_name
SET columnname1 = value1
[, columname2 = value2]...
WHERE search_condition
以下是一個簡單的 Update 語句的例子 :
Update customers
Set credit=100000.00,id=99
Where name='asp'
在此例中我們將表 customers 中客戶名為 asp 的客戶的信貸值更新為 10 萬并將他的 ID 變更為 99。再看下例:
Update customers
Set credit=200000.00,state=021
Where ID in (80,90,100,120)
我們可以發(fā)現(xiàn),其實 SQL 處理 Update 語句的過程就是逐行遍歷所指定的表,更新其搜索條件結(jié)果為“真”的行,跳過其搜索條件結(jié)果為“假”或“空”的行。
最后,來看看 Delete 語句。
標(biāo)準(zhǔn)語法:
DELETE FROM tablename
WHERE condition
由于它過于簡單,所以所造成的后果也是嚴(yán)重的,雖然其中的 Where 子句是任選的,但它幾乎總是存在的,若將 Where 子句從 Delete 語句中省略掉,則目標(biāo)表的所有行都將被刪除。看下例:
Delete from order Where ID=99
在文章的末尾,作者在給大家簡要介紹一下數(shù)據(jù)定義語言。它是用來創(chuàng)建和修改數(shù)據(jù)庫結(jié)構(gòu)的一種語句,包括 Create 和 Drop 語句。
1、 Create 語句
標(biāo)準(zhǔn)語法:
CREATE TABLE table_name
( field1 datatype [ NOT NULL ],
field2 datatype [ NOT NULL ],
field3 datatype [ NOT NULL ]...)
如:
CREATE TABLE BILLS
( NAME CHAR(30),
AMOUNT NUMBER,
ACCOUNT_ID NUMBER)
盡管 Create Table 比前面介紹的語句難理解一些,但仍然很直觀。它將 bills 賦予一個新表,并指定表中三列的名稱和數(shù)據(jù)類型。表被建立后我們就可以添入數(shù)據(jù)了。如:
Insert into bills(name,amout,account_id) values('gates',100,1)
如果,你覺得不再需要保存產(chǎn)品信息,則可用 Drop table 語句將該表及其所包含的所有數(shù)據(jù)從數(shù)據(jù)庫中刪除掉。
標(biāo)準(zhǔn)語法:
DROP TABLE table_name
至此,我們已經(jīng)了解了所有常用的 SQL 語句,可別小看這些貌似英文的簡單語句,它們的功能十分強大,當(dāng)我們編寫 asp 程序時必須使用他們對數(shù)據(jù)庫進行操作。