|
學(xué)習(xí) SQL 文檔
| [日期:2005-07-08] |
來源:CSDN 作者: |
[字體:大 中 小] |
數(shù)據(jù)庫(kù): SQL Sever 2000 注意: 如果你將SQL Sever配置為使用完整安全或混合安全,那么你可以使用可信連接。如果你使用標(biāo)準(zhǔn)安全,你則需要提供用戶 賬號(hào) 和密碼。 庫(kù)名: pubs (包含一個(gè)虛擬的出版商使用的各個(gè)表;安裝好就有的,本文例子就用此表講解) 調(diào)試工具: SQL 查詢分析器 (允許執(zhí)行交互的SQL查詢,在把查詢語(yǔ)句寫進(jìn)程序之前進(jìn)行測(cè)試是非常有用的。) 選庫(kù) : 在查詢窗口頂部的 DB下拉框中選擇數(shù)據(jù)庫(kù)pubs,這樣你就選擇了數(shù)據(jù)庫(kù)。 1 例子 1.1 記錄查詢 ( 附 :有編號(hào)) 1.1.1 簡(jiǎn)單SELECT查詢語(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 結(jié)果: 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 結(jié)果: 1.1.2.4 注意: 1.1.3 操作字段 1.1.3.1 描述: 1.1.3.2 Sql 語(yǔ)句 " SELECT phone as ‘電話號(hào)碼‘ FROM authors WHERE au_lname =‘Ringer‘ " SELECT phone ‘電話號(hào)碼‘ 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 結(jié)果: 1.1.3.4 注意: 你可以使用大多數(shù)標(biāo)準(zhǔn)的數(shù)學(xué)運(yùn)算符來操作字段值,如加(+),減(-),乘(*)和除(/)。 你也可以一次對(duì)多個(gè)字段進(jìn)行運(yùn)算. 1.1.4 排序查詢結(jié)果 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 結(jié)果: 1.1.4.4 注意: 警告: 不是特別需要時(shí),不要對(duì)查詢結(jié)果進(jìn)行排序,因?yàn)榉?wù)器完成這項(xiàng)工作要費(fèi)些力氣。這意味著帶有ORDER BY 子句的SELECT語(yǔ)句執(zhí)行起來比一般的SELECT語(yǔ)句花的時(shí)間長(zhǎ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 結(jié)果: 1.1.5.4 注意: 警告: 如同ORDER BY子句一樣,強(qiáng)制服務(wù)器返回互不相同的值也會(huì)增加運(yùn)行開銷。福氣不得不花費(fèi)一些時(shí)間來完成這項(xiàng)工作。因此,不是必須的時(shí)候不要使用關(guān)鍵字DISTINCT。 1.1.6 集合函數(shù) 1.1.6.1 描述: 可以統(tǒng)計(jì)記錄數(shù)目,平均值,最小值,最大值,或者求和。 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 結(jié)果: 1.1.6.4 注意: 1.1.7 通過匹配來取出數(shù)據(jù) 1.1.7.1 描述: 百分號(hào)是通配符的例子之一。它代表 0個(gè)或多個(gè)字符。 中括號(hào)([])用來匹配處在指定范圍內(nèi)的單個(gè)字符。 ‘[ABC]%‘任何一個(gè)其名字以這些字符中的任一個(gè)開頭記錄都將被返回。 脫字符( ^)來排除特定的字符。 通過使用下劃線字符( _),你可以匹配任何單個(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 結(jié)果: 1.1.7.4 注意: 注意: 如果你想匹配百分號(hào)或下劃線字符本身,你需要把它們括在方括號(hào)中。如果你想匹配連字符 (-),應(yīng)把它指定為方括號(hào)中的第一個(gè)字符。如果你想匹配方括號(hào),應(yīng)把它們也括在方括號(hào)中。例如,下面的語(yǔ)句返回所有其描述中包含百分號(hào)的站點(diǎn): 1.1.8 轉(zhuǎn)換數(shù)據(jù) 1.1.8.1 描述: SQL Sever 把大部分?jǐn)?shù)值從一種類型轉(zhuǎn)換為另一種類型。例如,要比較SMALLINT型和INT型數(shù)據(jù)的大小,你不需要進(jìn)行顯式的類型轉(zhuǎn)換。SQL Sever會(huì)為你完成這項(xiàng)工作。 當(dāng)想在字符型數(shù)據(jù)和其它類型的數(shù)據(jù)之間進(jìn)行轉(zhuǎn)換時(shí),需要自己進(jìn)行轉(zhuǎn)換操作。 函數(shù) CONVERT( ) 1.1.8.2 Sql 語(yǔ)句 " SELECT CONVERT( CHAR(8),price) + ‘$‘ as ‘錢‘ FROM titles 1.1.8.3 結(jié)果: 1.1.8.4 注意: 函數(shù) CONVERT( ) 帶有兩個(gè)變量。第一個(gè)變量指定了數(shù)據(jù)類型和長(zhǎng)度。第二個(gè)變量指定了要進(jìn)行轉(zhuǎn)換的字段。
|