版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、1,數(shù)據(jù)庫查詢,子查詢 :在查詢條件中,可以使用另一個查詢的結果作為條件的一部分,例如判定列值是否與某個查詢的結果集中的值相等,作為查詢條件一部分的查詢稱為子查詢。 use northwindselect t.orderid, t.customeridfrom ( select orderid, customerid from orders ) as tgo,2,,use pubsselect title, price, (
2、select avg(price) from titles) as average, price-(select avg(price) from titles) as differencefrom titlesgo,3,,子查詢通常與IN、Exist謂詞及比較運算符結合使用(1)IN子查詢格式為:expression [ NOT ] IN ( subquery )【例】要查找選修了課程號為101的課程的學生的情
3、況: SELECT * FROM XSWHERE 學號 IN ( SELECT 學號 FROM XS_KC WHERE 課程號 = ‘101’ )在執(zhí)行包含子查詢的SELECT語句時,系統(tǒng)先執(zhí)行子查詢,產(chǎn)生一個結果表,再執(zhí)行查詢。本例中,先執(zhí)行子查詢:SELECT 學號 FROM XS_KC WHERE 課程名 = ‘101’,4,數(shù)據(jù)庫查詢,比較子查詢格式為:
4、expression { | >= | != | | ! } { ALL | SOME | ANY } ( subqueryAll:指定表達式要與子查詢結果集中的每個值都進行比較,當表達式與每個值都滿足比較的關系時,才返回true,否則返回false;Some和any:表示表達式只要與子查詢結果集中的某個值滿足比較的關系時,就返回true,否則返回false.【例】查找比所有計算機系的學生年齡都大的學生。
5、 SELECT * FROM XS WHERE 出生時間 <ALL( SELECT 出生時間 FROM XS WHERE 專業(yè)名 = '計算機'),5,,Exists 子查詢 用于測試子查詢的結果是否為空表。若子查詢的結果集不為空,則exists返回true.exists 還可以與not 結合使用,即not exists,其返回值與ex
6、ists剛好相反。查詢選修206號課程的學生姓名Select 姓名From xsWhere exists(select * from xs_kc where 學號=XS.學號 and 課程號=‘206’)Go其處理過程:首先查找外層查詢中XS表的第1行,根據(jù)該行的學號列值處理內層查詢,若結果不為空,則where條件就為真,就把該行的姓名值取出作為結果集的一行。重復上述過程。,6,連接,連接是兩元運算,可以對兩個或多個表進行
7、查詢,結果通常是含有參加連接運算的兩個表的指定列的表。在實際應用中,多數(shù)情況下用戶查詢的都來自多個表,把涉及多個表的查詢稱為連接查詢。在T-SQL語言中,連接查詢有兩大類表示形式,一是符合SQL標準連接謂詞表示形式,一是T-SQL擴展的使用關鍵字JOIN的表示形式。,7,連接謂詞,連接謂詞【例】查找XSCJ數(shù)據(jù)庫每個學生的情況以及選修的課程情況。 SELECT XS.* , XS_KC.* FROM XS
8、, XS_KC WHERE XS.學號 = XS_KC.學號連接謂詞中的比較符可以是,>=,!=,!,當比較符為=時就是等值連接?!纠孔匀贿B接查詢:若在目標列中除去相同的字段名,則為自然連接 SELECT XS.* , XS_KC.課程號, XS_KC.成績 FROM XS , XS_KC WHERE XS.學號= XS_KC.學號 【例】查找選修了206課程且成績在80分以上的學生
9、姓名及成績。 SELECT 姓名 , 成績 FROM XS , XS_KC WHERE XS.學號 = XS_KC.學號 AND 課程號 = ‘206’ AND 成績 >= 80,8,內連接,內連接可以用于多個表的連接【例】查找XSCJ數(shù)據(jù)庫每個學生的情況以及選修的課程情況。 SELECT * FROM XS INNER JOIN XS_KC ON XS.學號 = XS
10、_KC.學號還有一種特例,可以將一個表與它自身進行連接,稱為自連接,若要在一個表中查找具有相同列值的行,則可以使用自連接。使用自連接時需為表指定兩個別名,且對所有列的引用均要用別名限定?!纠坎檎也煌n程成績相同的學生的學號、課程號和成績。 SELECT a.學號,a.課程號,b.課程號,a.成績 FROM XS_KC a JOIN XS_KC b ON a.成績=b.成績 AND a.學號=b
11、.學號 AND a.課程號!=b.課程號,9,外連接,外連接的結果表不但包含滿足連接條件的行,還包含相應表中的所有行。外連接包括三種:(1)左外連接(left outer join):結果集中除了包括滿足連接條件的行外,還包括左表的所有行;(2)右外連接(right outer join):結果集中除了包括滿足連接條件的行外,還包括右表的所有行;(3)完全外連接(full outer join):結果集中除了包括滿足連接條件的行外
12、,還包括兩個表的所有行;注:外連接只能對兩個表進行。,10,外連接,【例】查找所有學生情況,及他們選修的課程號,若學生未選修任何課,也要包括其情況。SELECT XS.* , 課程號 FROM XS LEFT OUTER JOIN XS_KC ON XS.學號 = XS_KC.學號【例】查找被選修了的課程的選修情況和所有開設的課程名。SELECT XS_KC.* , 課程名 FROM XS
13、_KC RIGHT JOIN KC ON XS_KC.課程號= KC.課程號【例】列出學生所有可能的選課情況。 SELECT 學號,姓名,課程號,課程名 FROM XS CROSS JOIN KC注:外連接只能對兩個表進行,交叉連接不能有條件,且不能帶where子句。,11,Select 語句的其他子句,INTO子句 INTO子句的格式為: [ INTO new_table ]【例】由XS表創(chuàng)建“計算機系
14、學生”表,包括學號和姓名。 SELECT 學號,姓名 INTO計算機系學生 FROM XS WHERE 專業(yè)名= '計算機',12,視圖,視圖概念 視圖是從一個或多個表(或視圖)導出的表。視圖是數(shù)據(jù)庫的用戶使用數(shù)據(jù)庫的觀點。CREATE VIEW CS_XS AS SELECT * FROM XS WHERE 專業(yè)名 = '計算機‘--創(chuàng)建
15、一個加密的視圖create view v_employeeswith encryption--加密腳本asselect * from employeesgo,13,創(chuàng)建視圖,--在with check option定義的前提下,如果修改的值超過了視圖所定義的范圍,將拒絕修改create view v_name9asselect * from [orders]where employeeid<5with chec
16、k option--將進行驗證go,14,創(chuàng)建視圖,--創(chuàng)建多表的視圖use Northwindgocreate view v_name1asselect a.customerid,companyname,orderid,c.city,photofrom customers as a join [order] as bon a.customerid=b.customeridjoin employees con b.e
17、mployeeid=c.employeeidgo,15,,創(chuàng)建一個分區(qū)視圖(必連接遠程SQL;sqlc驗證模式)create view v_3asselect * from [192.168.101.41].northwind.productswhere productid50go,16,修改視圖的定義,使用ALTER VIEW語句修改視圖【例】將CS_XS視圖修改為只包含計算機專業(yè)學生的學號、姓名和總學分。USE
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)據(jù)庫查詢優(yōu)化之我見
- 數(shù)據(jù)庫1數(shù)據(jù)查詢
- sql數(shù)據(jù)庫查詢優(yōu)化
- 數(shù)據(jù)庫1數(shù)據(jù)資料查詢
- oracle數(shù)據(jù)庫查詢語句大全
- 實驗4 數(shù)據(jù)庫的查詢
- nativexml數(shù)據(jù)庫的查詢優(yōu)化研究
- 關系數(shù)據(jù)庫查詢優(yōu)化.pdf
- 數(shù)據(jù)庫—創(chuàng)建、建表、查詢語句
- 概率數(shù)據(jù)庫可擴展查詢技術.pdf
- XML數(shù)據(jù)庫多核查詢優(yōu)化.pdf
- 數(shù)據(jù)庫查詢練習含參考答案
- 時空數(shù)據(jù)庫瞬時查詢和時空范圍查詢研究.pdf
- 數(shù)據(jù)庫sql查詢語句練習題
- 數(shù)據(jù)庫實驗多表查詢參考答案
- 時空數(shù)據(jù)庫聚集查詢算法研究.pdf
- 實驗 access數(shù)據(jù)庫查詢創(chuàng)建與操作
- 關系數(shù)據(jù)庫查詢優(yōu)化策略探究
- 數(shù)據(jù)庫數(shù)據(jù)查詢實驗報告和答案
- 基于查詢日志的數(shù)據(jù)庫關鍵字查詢研究.pdf
評論
0/150
提交評論