一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數據庫技術|

服務器之家 - 數據庫 - Sql Server - 數據庫表的查詢操作(實驗二)

數據庫表的查詢操作(實驗二)

2020-04-17 15:17MSSQL教程網 Sql Server

這篇文章主要介紹了表的查詢操作,包括單表查詢、多表連接及查詢、嵌套查詢、集合查詢等,需要的朋友可以參考下

【實驗目的】:了解SQL語言的使用,進一步理解關系運算,鞏固數據庫的基礎知識。
【實驗要求】:掌握利用Select語句進行各種查詢操作:單表查詢、多表連接及查詢、嵌套查詢、集合查詢等。
【實驗內容】

一、單表查詢
1.簡單查詢
打開查詢分析器,根建立teacher表,并加入數據。從teacher表中分別檢索出教師的所有信息,以及僅查詢教工號、姓名和職稱。語句如下:

?
1
2
select * from teacher
select tno, tname from teacher

如要查詢時改變列標題的顯示,則從teacher表中分別檢索出教師教工號、姓名、電子郵箱信息并分別加上‘教師姓名'、‘教工號'、'電子郵箱'等標題信息。

?
1
select tno 工號, tname 姓名, temail 電子郵箱 from teacher

使用TOP關鍵字:分別從teacher中檢索出前2條及前面67%的教師的信息。

?
1
2
select top 2 * from teacher
select top 67 percent * from teacher

使用DISTINCT關鍵字:從teacher表中檢索出教師的職稱并且要求顯示的職稱不重復。select  distinct tposition   from  teacher

2.用計算列:將teacher表中各教師的姓名、教工號及工資按95%發放的信息,第2條語句將工資按95%發放后列名該為‘預發工資'。語句如下:

?
1
2
select tno tname ,tsalary*0.95 from teacher
select tno工號, tname姓名, tsalary*0.95 AS 預發工資 from teacher

3.使用ORDER BY子句對查詢的結果進行排序
使用ORDER BY語句可以對查詢的結果進行排序,ASC、DESC分別是升序和降序排列的關鍵字,系統默認的是升序排列。從teacher表中查詢工資大于2800的教師的教工號、姓名,并按升序排列,語句如下:

?
1
2
select tno, tname from teacher
WHERE tsalary>2800 order by tsalary ASC

4.條件查詢
(1)使用關系運算符:從teacher表中查詢出工作量大于288的教師資料,語句如下:

?
1
select * from teacherWHERE tamount>288 order by tamount DESC

(2)使用BETWEEN AND謂詞:從teacher表中查詢出工作量界于144和288之間的教師資料,語句如下:

?
1
select * from teacher WHERE tamount between 144 and 288

(3) 使用IN謂詞:從teacher表中查詢出職稱為“教授”或“副教授”的教師的教工號、教師姓名、職稱及家庭住址,語句如下:

?
1
2
select tno,tname,tposition, taddress from teacher
WHERE tposition in ('教授','副教授')

(4)使用LIKE謂詞:從teacher表中分別檢索出姓'王'的教師的資料,或者姓名的第2個字是'莉'或'軒'的教師的資料,語句如下:

?
1
2
select * from teacher WHERE tname like '王%'
select * from teacher WHERE tname like '_[莉,軒]%'

 二、多表查詢
數據庫各表中存放著不同的數據,用戶經常需要用多個表中的數據來組合提煉出所需要的信息,如果一個查詢需要對多個表進行操作,就稱為關聯查詢,關聯查詢的結果集或結果表稱為表之間的連接。關聯查詢實際上是通過各各表之間共同列的關聯來查詢數據的,它是關系數據庫查詢最基本的特征。
1.SQL 2000兼容2種連接形式:用于FROM子句的ANSI連接語法和用于WHERE子句的SQL SERVER連接語法形式。
從student、course和SC三張表中檢索學生的學號、姓名、學習課程號、學習課程名及課程成績,語句如下:

?
1
2
3
4
5
6
7
8
9
10
select student.sno, sname, cno, grade
from student inner join SC on student.sno=SC.sno
 
select student.sname,sc.grade
from student,sc
WHERE student.sno=sc.sno
 
select student.sno,student.sname,sc.cno,course.cname,sc.grade
from student,sc,course
WHERE student.sno=sc.sno and sc.cno=course.cno

2.使用UNION子句進行查詢
使用UNION子句可以將一個或者多個表的某些數據類型相同的列顯示在同一列上。如從teacher表中列出教工號、姓名并從student表中列出學號及學生姓名,語句及查詢結果如下:

?
1
2
3
select sno AS 學號或工號, sname AS 姓名 from student
union
select tno, tname from teacher

3.用GROUP子句進行查詢 
如果要在數據檢索時對表中數據按照一定條件進行分組匯總或求平均值,就要在SELECT語句中與GROUP BY子句一起使用集合函數。使用GROUP BY子句進行數據檢索可得到數據分類的匯總統計、平均值或其他統計信息。
(1) 使用不帶HAVING的GROUP BY子句。
使用不帶HAVING 的GROUP BY子句匯總出SC表中的學生的學號及總成績,語句如下:

?
1
2
3
select '學號'=sno,'總成績'=SUM(Grade)
from SC
group by Sno

(2)使用帶HAVING 的GROUP BY子句。
使用帶HAVING 的GROUP BY子句匯總出SC表中總分大于450分的學生的學號及總成績,語句如下:

?
1
2
3
select '學號'=sno,'總成績'=SUM(Grade) from SC
group by Sno
Having SUM(Grade)>160

4.用COMPUTE和COMPUTE BY子句進行查詢
使用COMPUTE和COMPUTE BY 既能瀏覽數據又能看到統計的結果。
(1) 用COMPUTE子句匯總出SC表中每個學生的學號及總成績,語句如下:

?
1
2
select '學號'=sno,'成績'=Grade from SC
order by sno COMPUTE SUM(Grade)

(2)用COMPUTE BY 子句按學號匯總出SC表中每個學生的學號及總成績,語句如下:

?
1
2
select '學號'=sno,'成績'=Grade from SC
ORDER BY Sno COMPUTE SUM(Grade) by sno

觀察執行COMPUTE和COMPUTE BY子句的結果有什么不同?

5.嵌套查詢
(1) 使用IN或NOT IN關鍵字
使用IN關鍵字查詢出j10011班所有男生的學號、課程號及相應的成績,語句如下:

?
1
2
3
4
5
select SC.sno , SC.cno,SC.grade
FROM SC
WHERE sno IN
 ( SELECT sno FROM student
 WHERE Sclass='j10011' AND Ssex='男')

使用IN關鍵字查詢出與教師不同名的學生(學號,姓名),語句如下:

?
1
2
3
select sno 學號, sname 姓名
from student
where sname not in (select tname from teacher)

(2) 使用EXISTS 或NOT EXISTS關鍵字。

使用EXISTS關鍵字查詢出‘j10011'班的學生的學號、課程號及相應的成績,語句如下:

?
1
2
3
4
5
SELECT SC.sno,SC.cno,SC.grade
FROM SC
WHERE EXISTS
SELECT * FROM student
 WHERE SC.sno=student.sno AND student.sclass=‘j10011' )

 

以上就是表的查詢操作實驗全部內容,希望對大家的學習有所幫助,大家親自動手實踐一下。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产一区二区在线观看视频 | 亚洲精品免费视频 | 国产成人亚洲精品一区二区在线看 | 色批网站www | 91尤物在线视频 | 国产我不卡| 免费高清www动漫视频播放器 | 国产精品青青青高清在线 | 久久AV国产麻豆HD真实乱 | 9久热这里只有精品免费 | 99久久成人 | 东北恋哥在线播放免费播放 | 免费被靠视频动漫 | 把美女屁股眼扒开图片 | 午夜影院c绿象 | 午夜大片在线观看 | tkvk视频| 国产码一区二区三区 | 9420高清完整版在线观看国语 | 国产a高清 | 亚洲国产美女精品久久久久 | 性xxx免费 | www.羞羞答答 | 小柔的性放荡羞辱日记 | 欧美猛男同志同性video | 香蕉久久一区二区不卡无毒影院 | 四虎最新永久免费网址 | 奇米影视77777 | brazzers办公室| 色臀网站| 欧美日韩一区二区三区免费不卡 | 无限在线观看视频大全免费高清 | 日本特级大片 | 日本无卡码一区二区三区 | 欧美亚洲国产另类 | 成人午夜爽爽爽免费视频 | 哇嘎在线精品视频在线观看 | 999热这里全都是精品 | 欧美日韩综合网在线观看 | 经典千人斩一区二区视频 | 黄网久久|