數據庫: SQL Sever 2000
注意:
如果你將SQL Sever配置為使用完整安全或混合安全,那么你可以使用可信連接。如果你使用標準安全,你則需要提供用戶(hù) 賬號 和密碼。
庫名: pubs (包含一個(gè)虛擬的出版商使用的各個(gè)表;安裝好就有的,本文例子就用此表講解)
調試工具: SQL 查詢(xún)分析器 (允許執行交互的SQL查詢(xún),在把查詢(xún)語(yǔ)句寫(xiě)進(jìn)程序之前進(jìn)行測試是非常有用的。)
選庫 : 在查詢(xún)窗口頂部的 DB下拉框中選擇數據庫pubs,這樣你就選擇了數據庫。
1 例子
1.1 記錄查詢(xún) ( 附 :有編號)
1.1.1 簡(jiǎn)單SELECT查詢(xún)語(yǔ)句
1.1.1.1 描述:
SELECT 字段 1, 字段 2, …… FROM 表 [WHERE 條件]
1.1.1.2 SQL語(yǔ)句:
" SELECT au_lname, phone FROM authors
" SELECT * FROM authors WHERE au_lname =‘Ringer‘
1.1.1.3 結果:
1.1.1.4 注意:
1.1.2 操作多個(gè)表
1.1.2.1 描述:
1.1.2.2 Sql 語(yǔ)句
" SELECT au_lname ,title FROM authors, titles
" SELECT title,pub_name FROM titles,publishers WHERE titles.pub_id=publishers.pub_id
1.1.2.3 結果:
1.1.2.4 注意:
1.1.3 操作字段
1.1.3.1 描述:
1.1.3.2 Sql 語(yǔ)句
" SELECT phone as ‘電話(huà)號碼‘ FROM authors WHERE au_lname =‘Ringer‘
" SELECT phone ‘電話(huà)號碼‘ FROM authors WHERE au_lname =‘Ringer‘
" SELECT price * 2 FROM titles
" SELECT price "Original price", price * 2 "New price" FROM titles
1.1.3.3 結果:
1.1.3.4 注意:
你可以使用大多數標準的數學(xué)運算符來(lái)操作字段值,如加(+),減(-),乘(*)和除(/)。
你也可以一次對多個(gè)字段進(jìn)行運算.
1.1.4 排序查詢(xún)結果
1.1.4.1 描述:
1.1.4.2 Sql 語(yǔ)句
" SELECT au_lname FROM authors ORDER BY au_lname
" SELECT au_lname ,au_fname FROM authors ORDER BY au_lname ,au_fname
" SELECT au_lname,au_fname FROM authors ORDER BY au_lname ,au_fname DESC
1.1.4.3 結果:
1.1.4.4 注意:
警告:
不是特別需要時(shí),不要對查詢(xún)結果進(jìn)行排序,因為服務(wù)器完成這項工作要費些力氣。這意味著(zhù)帶有ORDER BY 子句的SELECT語(yǔ)句執行起來(lái)比一般的SELECT語(yǔ)句花的時(shí)間長(cháng)。
1.1.5 取出互不相同的記錄
1.1.5.1 描述:
1.1.5.2 Sql 語(yǔ)句
" SELECT DISTINCT au_lname FROM authors WHERE au_lname = ‘Ringer‘
1.1.5.3 結果:
1.1.5.4 注意:
警告:
如同ORDER BY子句一樣,強制服務(wù)器返回互不相同的值也會(huì )增加運行開(kāi)銷(xiāo)。福氣不得不花費一些時(shí)間來(lái)完成這項工作。因此,不是必須的時(shí)候不要使用關(guān)鍵字DISTINCT。
1.1.6 集合函數
1.1.6.1 描述:
可以統計記錄數目,平均值,最小值,最大值,或者求和。
1.1.6.2 Sql 語(yǔ)句
" SELECT AVG( lowqty ) ‘the_average‘ FROM discounts
" SELECT COUNT( au_lname ) FROM authors WHERE au_lname= ‘Ringer‘
" SELECT COUNT( DISTINCT au_lname ) FROM authors WHERE au_lname= ‘Ringer‘
" SELECT COUNT( * ) FROM authors WHERE au_lname= ‘Ringer‘
" SELECT SUM( min_lvl ) FROM jobs
" SELECT MAX( min_lvl ) FROM jobs
" SELECT MIN( min_lvl ) FROM jobs
1.1.6.3 結果:
1.1.6.4 注意:
1.1.7 通過(guò)匹配來(lái)取出數據
1.1.7.1 描述:
百分號是通配符的例子之一。它代表 0個(gè)或多個(gè)字符。
中括號([])用來(lái)匹配處在指定范圍內的單個(gè)字符。
‘[ABC]%‘任何一個(gè)其名字以這些字符中的任一個(gè)開(kāi)頭記錄都將被返回。
脫字符( ^)來(lái)排除特定的字符。
通過(guò)使用下劃線(xiàn)字符( _),你可以匹配任何單個(gè)字符。
1.1.7.2 Sql 語(yǔ)句
" SELECT royalty FROM titles WHERE royalty >= 10 AND royalty <= 12
" SELECT royalty FROM titles WHERE royalty BETWEEN 10 AND 12
" SELECT royalty FROM titles WHERE royalty NOT BETWEEN 10 AND 12
" SELECT royalty FROM titles WHERE royalty = 10 OR royalty = 12
" SELECT royalty FROM titles WHERE royalty IN (10,12)
" SELECT type FROM titles WHERE type LIKE ‘%popular_comp%‘
" SELECT type FROM titles WHERE type LIKE ‘[A-M ]%‘
" SELECT type FROM titles WHERE type LIKE ‘[ABC]%‘
" SELECT type FROM titles WHERE type LIKE ‘[a-fm]%‘
" SELECT type FROM titles WHERE type LIKE ‘[^(a-fmt)]%‘
1.1.7.3 結果:
1.1.7.4 注意:
注意:
如果你想匹配百分號或下劃線(xiàn)字符本身,你需要把它們括在方括號中。如果你想匹配連字符 (-),應把它指定為方括號中的第一個(gè)字符。如果你想匹配方括號,應把它們也括在方括號中。例如,下面的語(yǔ)句返回所有其描述中包含百分號的站點(diǎn):
1.1.8 轉換數據
1.1.8.1 描述:
SQL Sever 把大部分數值從一種類(lèi)型轉換為另一種類(lèi)型。例如,要比較SMALLINT型和INT型數據的大小,你不需要進(jìn)行顯式的類(lèi)型轉換。SQL Sever會(huì )為你完成這項工作。
當想在字符型數據和其它類(lèi)型的數據之間進(jìn)行轉換時(shí),需要自己進(jìn)行轉換操作。
函數 CONVERT( )
1.1.8.2 Sql 語(yǔ)句
" SELECT CONVERT( CHAR(8),price) + ‘$‘ as ‘錢(qián)‘ FROM titles
1.1.8.3 結果:
1.1.8.4 注意:
函數 CONVERT( ) 帶有兩個(gè)變量。第一個(gè)變量指定了數據類(lèi)型和長(cháng)度。第二個(gè)變量指定了要進(jìn)行轉換的字段。

