亚洲国产欧美一区二区三区f,亚洲A∨精品永久无码青草网,亚洲 暴爽 av人人爽日日碰,亚洲AV永久无码精心天堂久久_无码

系統城裝機大師 - 唯一官網:www.outletmksalestore.com!

當前位置:首頁 > 數據庫 > MsSql > 詳細頁面

SQL Server連接查詢的實用教程

時間:2021-04-07來源:www.outletmksalestore.com作者:電腦系統城

前沿小補充

例3.48 查詢平均成績大于等于80分的學生學號和平均成績

1
2
3
4
5
SELECT Sno,AVG(Grade)
FROM SC
WHERE AVG(Grade)>=80
GROUP BY Sno;
SELECT * FROM SC;

此時發現:

這是因為WHERE子句中是不能用聚集函數作為條件表達式的,正確的查詢語句應該是:

1
2
3
4
5
SELECT Sno,AVG(Grade)
FROM SC
GROUP BY Sno
HAVING AVG(Grade)>=80;
SELECT * FROM SC;

總結:WHERE子句作用基本表或視圖,從中選擇滿足條件的元組。

HAVING短語作用于組,從中選擇滿足條件的組

等值與非等值連接查詢

連接符號是=的成為等值連接,其他的稱為非等值連接

一般形式:

[<表名1>.]<列名1><比較運算符>[<表名2>.]<列名2>

例3.49 查詢每個學生及其課程選秀修情況

1
2
3
4
5
SELECT Student.*,SC.*
FROM Student,SC
WHERE Student.Sno=SC.Sno;
SELECT * FROM SC;
SELECT * FROM Student;

拓展:去掉WHERE Student.Sno=SC.Sno后發現標稱笛卡爾積形式

1
2
3
4
5
SELECT Student.*,SC.*
FROM Student,SC
 
SELECT * FROM SC;
SELECT * FROM Student;

例3.50 對例3.49 用自然連接完成

1
2
3
4
5
SELECT Student.Sno,Sname,Ssex,Sage,Sdept,Cno,Grade
FROM Student,SC
WHERE Student.Sno=SC.Sno;
SELECT * FROM SC;
SELECT * FROM Student;

修改為自然連接竟然是一點一點選擇可視的列來進行的,是我想不到的,以為會有專門的語句來進行呢

例3.51 查詢選修了2號課程且成績大于等于90分所有學生的學號和姓名

1
2
3
4
5
6
7
SELECT Student.Sno,Sname
FROM Student,SC
WHERE Student.Sno=SC.Sno
AND SC.Cno='2'
AND SC.Grade>=90;
SELECT * FROM SC;
SELECT * FROM Student;

一條SQL語句可以同時完成選擇和連接查詢,這時WHERE子句由連接謂詞和選擇謂詞組成的復合條件

自身連接

一個表與其自身進行連接,稱為自身連接

例3.52 查詢每一門課的間接選修課

1
2
3
4
SELECT FIRST.Cno,SECOND.Cpno
FROM Course FIRST,Course SECOND
WHERE FIRST.Cpno=SECOND.Cno;
SELECT * FROM Course;

在T-SQL 語句中,外連接是存在空值的,

外連接

例如某個學生沒有選課,仍把Student的懸浮元組保存在結果關系中,而在SC表的屬性上填上空值NULL,這是需要使用外連接

例3.53 對Student進行左外連接SC

1
2
3
4
5
SELECT *
FROM Student LEFT OUTER JOIN SC ON(Student.Sno=SC.Sno);
--SELECT * FROM Course;
SELECT * FROM SC;
SELECT * FROM Student;

多表連接

兩個表以上的操作稱為外連接

例3.54 查詢每個學生的學號、姓名、選修的課程及成績

1
2
3
4
5
6
SELECT Student.Sno,Sname,Cname,Grade
FROM Student,SC,Course
WHERE Student.Sno=SC.Sno AND SC.Cno=Course.Cno;
SELECT * FROM Course;
SELECT * FROM SC;
SELECT * FROM Student;

拓展:對SELECT進行*改寫

1
2
3
SELECT *
FROM Student,SC,Course
WHERE Student.Sno=SC.Sno AND SC.Cno=Course.Cno;

原算法只是對數據進行了一步篩選。

總結:連接查詢這部分比較簡單,注意對屬性的表格定位名時,不要打錯了

分享到:

相關信息

系統教程欄目

欄目熱門教程

人氣教程排行

站長推薦

熱門系統下載

亚洲国产欧美一区二区三区f,亚洲A∨精品永久无码青草网,亚洲 暴爽 av人人爽日日碰,亚洲AV永久无码精心天堂久久_无码 日本少妇又色又爽又高潮