雖然ADO組件中的Connection、Command及RecordSet都可以用來(lái)操縱數(shù)據(jù)庫(kù)中的記錄,但還是推薦讀者使用SQL語(yǔ)句來(lái)操縱數(shù)據(jù)庫(kù),因?yàn)樗梢允鼓汩_(kāi)發(fā)的程序更專業(yè)化,而且使用SQL語(yǔ)句的執(zhí)行效率更高,功能更強(qiáng)大。下面以功能來(lái)分類,介紹比較常用的SQL語(yǔ)句,包括查詢、添加、更新、刪除和統(tǒng)計(jì)幾個(gè)方面。
查詢主要用到SELECT語(yǔ)句,下面舉例說(shuō)明SELECT語(yǔ)句在不同情況下的使用。
例1 一般精確查詢(當(dāng)字段類型是字符型時(shí),字段值需要加單引號(hào)):
sql="select * from 數(shù)據(jù)表 where 字段名=字段值 order by 字段名 [desc]"
例2 字符串模糊比較:
sql="select * from 數(shù)據(jù)表 where 字段名 like '%字段值%' order by 字段名 [desc]"
例3 最多僅選出前n項(xiàng)符合條件的結(jié)果:
sql="select top 10 * from 數(shù)據(jù)表 where 字段名 order by 字段名 [desc]"
例4 在集合中查找(in的括號(hào)中也可以是一個(gè)SELECT語(yǔ)句):
sql="select * from 數(shù)據(jù)表 where 字段名 in ('值1','值2','值3')"
例5 范圍查找:
sql="select * from 數(shù)據(jù)表 where 字段名 between 值1 and 值2"
例6 使用別名:
sql = "SELECT 字段1 AS 學(xué)號(hào), 字段2 AS 姓名 FROM 數(shù)據(jù)表
添加主要用到INSERT語(yǔ)句。下面舉例說(shuō)明INSERT語(yǔ)句在不同情況下的使用。
例1 在數(shù)據(jù)表中添加一條記錄:
sql="insert into 數(shù)據(jù)表 (字段1,字段2,字段3 …) values (值1,值2,值3 …)"
例2 把源數(shù)據(jù)表的記錄添加到目標(biāo)數(shù)據(jù)表:
sql="insert into 目標(biāo)數(shù)據(jù)表 select * from 源數(shù)據(jù)表"
更新主要用到UPDATE語(yǔ)句。下面舉例說(shuō)明UPDATE語(yǔ)句在不同情況下的使用。
例1 更新數(shù)據(jù)表中滿足條件表達(dá)式的記錄中的單個(gè)字段:
sql="update 數(shù)據(jù)表 set 字段名=字段值 where 條件表達(dá)式"
例2 更新數(shù)據(jù)表中滿足條件表達(dá)式的記錄中的多個(gè)字段:
sql="update 數(shù)據(jù)表 set 字段1=值1,字段2=值2 …… 字段n=值n where 條件表達(dá)式"
刪除主要用到DELETE語(yǔ)句。下面舉例說(shuō)明DELETE語(yǔ)句在不同情況下的使用。
例1 將數(shù)據(jù)表中滿足條件表達(dá)式的記錄刪除:
sql="delete from 數(shù)據(jù)表 where 條件表達(dá)式"
例2 將數(shù)據(jù)表中的所有記錄刪除:
sql="delete from 數(shù)據(jù)表" (將數(shù)據(jù)表所有記錄刪除)
不同的數(shù)據(jù)庫(kù)系統(tǒng)都對(duì)SQL語(yǔ)言的標(biāo)準(zhǔn)聚合函數(shù)進(jìn)行了擴(kuò)展。下面列舉一些常用的標(biāo)準(zhǔn)聚合函數(shù),這些聚合函數(shù)一般都要與SELECT語(yǔ)句配合使用。
l AVG(字段名):求得在選擇集中指定字段名的平均值。
l COUNT(*|字段名):求得選擇集的個(gè)數(shù)。
l MAX(字段名):求得選擇集中某字段的最大值。
l MIN(字段名):求得選擇集中某字段的最小值。
l SUM(字段名):對(duì)選擇集中某字段的值求和。
例1 統(tǒng)計(jì)數(shù)據(jù)庫(kù)中滿足條件表達(dá)式的字段值的和:
sql="select sum(字段名) as 別名 from 數(shù)據(jù)表 where 條件表達(dá)式"
|
用rs("別名")獲取統(tǒng)計(jì)的值,其他函數(shù)運(yùn)用同上。 |
例2 統(tǒng)計(jì)進(jìn)貨表中商品名稱含有“礦泉水”的每種商品的進(jìn)貨數(shù)量和總價(jià)格:
Select MerchID, Name, COUNT(MerchID) AS TotalCount, SUM(nPrice * nCount) AS TotalPrice
FROM Buy
WHERE Name LIKE '%礦泉水%'
GROUP BY MerchID, Name
|
以“ID,Name”將符合條件的數(shù)據(jù)分組,統(tǒng)計(jì)該組中記錄個(gè)數(shù)和總價(jià)格。每組中“ID,Name”都不完全相同。 |
如對(duì)本文有疑問(wèn),請(qǐng)?zhí)峤坏浇涣髡搲?,廣大熱心網(wǎng)友會(huì)為你解答?。?點(diǎn)擊進(jìn)入論壇