操作查詢

基本連接

select子句列表中,每個目標列前都要加上基表名稱

from子句應包括所有使用的基表

where子句應定義一個同等連接

內鏈接

將多個表符合條件的數據挑選出來,內鏈接是一種等值連接

SELECT select list(查找的目標列)

FROM table1 INNER JOIN(表示內連接) table2 [ON join_ conditions(等值連接)]

[WHERE search_ conditions]

[ORRDER BY order_ expression]

 

實踐:

SELECT A.班級名,A.班級人數 ,B.姓名,B.聯繫方式

FROM 班級信息 A  inner join 輔導員信息 B

ON A.輔導員=B.輔導員編號

Where  B.性別='女'

inner可以取消

左外連接

Select A.班級名,A.班級人數,B.姓名,B.聯繫方式

From 輔導員信息  B. LEFT outer join 班級信息 A

ON A.輔導員=B.輔導員編號

Where A.班級人數 >20

Ourer 可以取消

右外連接

Select A.班級名,A.班級人數,B.姓名,B.聯繫方式

From 班級信息 A. RIGHT outer join 輔導員信息  B

ON A.輔導員=B.輔導員編號

Where A.班級人數 >20

全連接

Select A.班級名,A.班級人數,B.姓名,B.聯繫方式

From 輔導員信息  B FULL outer join 班級信息 A.

ON A.輔導員=B.輔導員編號

交叉連接

語法格式

Select select_list

FROM table1 CROSS JOIN (連接)table2

[WHERE search_conditions](結果進行篩選)

[ORDeR BY order_expression]

實踐

Select A.班級名稱,A.人數,B.姓名

From 班級信息 A cross join 輔導員信息 B

自連接

實踐

Select A.班級名,A.班級人數,B.班級名

From 班級信息 A,班級信息 B

Where a.班級人數= B.班級人數 and A.班級編號 < >B.班級編號 and A.班級名='查詢班級名'

聯合查詢

語法格式

Select select_list

From table_source

[where search_conditions]

{union[all](把兩個查詢結果聯合在一起)

Selectselect_list

From table_source

[where search_conditions]}

[order by order_expression]

all可以取消,不使用它將兩個查詢結果重複的行過濾掉

注意:

使用UNION查詢時,連接的兩個結果集必須在其目標列表中有相同數目的表達式,且數據內容儘量保持一致

實踐

Select A.成績編號, A.分數,B.姓名

FROM 成績信息 A.學生信息 B

Where A.學生編號=B.學號 and A.課程編號='2' and  a.考試編號= '0808'

UNION

Select ‘’sum (分數)‘合計’

FROM 成績信息 A.學生信息 B

Where A.學生編號=B.學號 and A.課程編號='2' and  a.考試編號= '0808'

ORDER BY 分數

使用子查詢

Select A.成績編號, A.分數,B.姓名

FROM 成績信息 A.學生信息 B

Where A.學生編號=B.學號 and A.課程編號='2' and  a.考試編號= '0808'

And a.分數<(

Select  avg (分數) FROM 成績信息 A.學生信息 B

Where A.學生編號=B.學號 and A.課程編號='2' and  a.考試編號= '0808'

)

嵌套子查詢

Select A.成績編號, A.分數,B.姓名

FROM 成績信息 A.學生信息 B

Where A.學生編號=B.學號 and A.課程編號='2' and  a.考試編號= '0808'

And a.學號<(

Select 學號 FROM 班級信息 A.學生信息 B

Where A.班級編號=B.學號 and B.所屬班級='2' and  a.輔導員= (

Sellect 輔導員編號 from 輔導員信息 where 姓名=‘查詢姓名’

xml查詢

查詢格式

實踐

FOR XML子句

通過for xml 子句並制定模式可以將從數據庫系統的表中檢索出來得數據自動錶示成XML格式。

模式:

RAW模式,AUTO模式,EXPLICIT模式,PATH模式

RAW模式

Select A.班級名,A.班級人數,B.姓名,B.聯繫方式

From 班級信息 A.輔導員信息 B

Where A.輔導員=B.輔導員編號

For cml raw

AUTO模式

Select A.班級名,A.班級人數,B.姓名,B.聯繫方式

From 班級信息 A.輔導員信息 B

Where A.輔導員=B.輔導員編號

For cml auto

EXLSTS關鍵字查詢

Select a. * from 成績信息

Where exists(select * 考試安排 Bwhere b.考試編號=a.考試編號 and b.考試編號=‘0809’ )

判斷用戶登陸

Declare  @username varchar (20)

Declare  @pwd varchar(20)

Set @username = '01010202'

Set @pwd = '哈哈'

If exists (select * from 學生信息 where 學號=@yserbane and 姓名 =@owd)

Print ‘登陸成功'

Else

Print '登陸失敗'

交查詢INTERSECT

Select from a.成績信息 a,分數 b.姓名 from 成績信息 a,學生信息 b

Where a.學生編號 = b.學號 and a.課程編號 = 2 and a.考試編號=‘0801’

Intersect

Select a.成績編號, a.分數,A.姓名from

(

Select top 10 a. 成績信息 a,分數,b. from 成績信息 a,學生信息 b

Where a.學生編號 = b.學號 and a.考試編號=‘0801’order by a.分數 desc

)a

 

 差查詢EXCEPT

Select from a.成績信息 a,分數 b.姓名 from 成績信息 a,學生信息 b

Where a.學生編號 = b.學號 and a.課程編號 = 2 and a.考試編號=‘0801’

 

EXCEPT

 

Select a.成績編號, a.分數,A.姓名from

(

Select top 10 a. 成績信息 a,分數,b. from 成績信息 a,學生信息 b

Where a.學生編號 = b.學號 and a.考試編號=‘0801’order by a.分數 desc

)a

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章