柚子快報激活碼778899分享:【SQL實戰(zhàn)】——數(shù)據查詢
柚子快報激活碼778899分享:【SQL實戰(zhàn)】——數(shù)據查詢
?CSDN小墨&曉末:https://blog.csdn.net/jd1813346972
???個人介紹: 研二|統(tǒng)計學|干貨分享 ???????? 擅長Python、Matlab、R等主流編程軟件 ???????? 累計十余項國家級比賽獎項,參與研究經費10w、50w級橫向
文章目錄
1 背景和目的2 設備需求3 相關內容和步驟4 相關實例4.1 查詢學生的基本信息4.2 查詢“計算機”系學生的基本信息4.3 查詢“計算機”系學生年齡不在19到20之間的學生的學號、姓名4.4 找出最大年齡4.5 找出“計算機系”系年齡最大的學生,顯示其學號、姓名4.6 找出各系年齡最大的學生,顯示其學號、姓名4.7 統(tǒng)計“計算機”系學生的人數(shù)4.8 統(tǒng)計各系學生的人數(shù),結果按升序排列4.9 按系統(tǒng)計各系學生的平均年齡,結果按降序排列4.10 查詢每門課程的課程名4.11 查詢先修課小于4的課程的課程名和學分4.12 統(tǒng)計先修課小于3的課程的學分4.13 統(tǒng)計每位學生選修課程的門數(shù)、學分及其平均成績4.14 統(tǒng)計選修每門課程的學生人數(shù)及各門課程的平均成績4.15 找出平均成績在85分以上的學生,結果按系分組,并按平均成績的升序排列4.16 查詢選修了“C001”或“C002”號課程的學生學號和姓名4.17 查詢選修了“1”和“2”號課程的學生學號和姓名4.18 查詢選修了課程名為“高等數(shù)學”且成績在60分以下的學生的學號、姓名和成績4.19 查詢每位學生選修了課程的學生信息(顯示:學號,姓名,課程號,課程名,成績)4.20 查詢沒有選修課程的學生的基本信息4.21 查詢選修了3門以上課程的學生學號4.22 查詢選修課程成績至少有一門在80分以上的學生學號4.23 查詢選修課程成績均在80分以上的學生學號4.24 查詢選修課程平均成績在80分以上的學生學號
本篇文章通過24個精心挑選的案例,為讀者提供了一個全面、實用的SQL查詢語法學習平臺。無論你是SQL初學者,還是希望提升技能的進階者,都能從中獲得寶貴的經驗和啟示,為未來的數(shù)據處理和分析工作奠定堅實的基礎。
1 背景和目的
??在數(shù)據庫中,存在一個設計的學生-課程數(shù)據庫系統(tǒng),它全面涵蓋了學生的基本信息、課程的基礎詳情以及學生選修課程的關聯(lián)數(shù)據。此系統(tǒng)不僅是一個數(shù)據管理的工具,更是學習SQL查詢操作和命令應用的理想實驗場。
??本文通過24個具體的實驗實例,引領讀者深入探索這一數(shù)據庫系統(tǒng)。我們將一步步指導讀者如何查詢學生信息、課程詳情以及它們之間的選修關系,從而幫助讀者熟悉并掌握SQL語句的精髓。無論是基礎的SELECT查詢,還是涉及GROUP、WHERE等高級條件的復雜查詢,都將通過實例得到生動展現(xiàn)。
??通過這些實驗實例,讀者不僅能夠學會如何構建正確的SQL語句來檢索所需數(shù)據,還能深刻理解SQL語句的各種形式及其在不同場景下的應用。我們鼓勵讀者在跟隨實例操作的同時,嘗試自行修改查詢條件或添加新的查詢需求,以此鍛煉SQL語句的靈活運用能力。
??總之,本文旨在通過實踐的方式,使讀者在輕松愉快的氛圍中掌握SQL查詢的核心技能,為日后在數(shù)據處理和分析領域的發(fā)展打下堅實的基礎。無論你是SQL初學者,還是希望提升技能的進階者,都能從這個實驗實例中獲得寶貴的經驗和啟示。其中,學生-課程數(shù)據庫中三張關系表分別為:
??學生關系表S:
??課程關系表C:
??課程關系表SC :
??在數(shù)據庫中顯示效果為:
2 設備需求
??Pentium 166MHz及以上微機;
??Windows XP/2000/7及以上操作系統(tǒng);
??安裝了SQL Server;
3 相關內容和步驟
1.在表S,C,SC上進行簡單查詢;
2.在表S,C,SC上進行連接查詢;
3.在表S,C,SC上進行嵌套查詢;
4.使用聚合函數(shù)的查詢;
5.對數(shù)據的分組查詢;
6.對數(shù)據的排序查詢。
4 相關實例
4.1 查詢學生的基本信息
??運行程序:
select *
from S
??運行結果:
4.2 查詢“計算機”系學生的基本信息
??運行程序:
select *
from S
where(Sdept='計算機系')
??運行結果:
4.3 查詢“計算機”系學生年齡不在19到20之間的學生的學號、姓名
??運行程序:
select Sno,Sname
from S
where(Sdept='計算機系'and(Sage<19 or Sage>20))
??運行結果:
4.4 找出最大年齡
??運行程序:
select Max(Sage)as "最大年齡"
from S
??運行結果:
4.5 找出“計算機系”系年齡最大的學生,顯示其學號、姓名
??運行程序:
select Sno,Sname
from S
where Sdept='計算機系'
and Sage=(select MAX(Sage)
from S)
??運行結果:
4.6 找出各系年齡最大的學生,顯示其學號、姓名
??運行程序:
select sno,sname from S as s1
where s1.sage =(select MAX(sage) from S as s2
where s1.sdept=s2.sdept )
??運行結果:
4.7 統(tǒng)計“計算機”系學生的人數(shù)
??運行程序:
select COUNT(Sno) as '計算機系學生人數(shù)'
from S
where Sdept='計算機系'
??運行結果:
4.8 統(tǒng)計各系學生的人數(shù),結果按升序排列
??運行程序:
select COUNT(*) as '各系學生人數(shù)升序排列'from S
group by sdept
order by COUNT(*) ASC
??運行結果:
4.9 按系統(tǒng)計各系學生的平均年齡,結果按降序排列
??運行程序:
select AVG(Sage) as '各系學生平均年齡升序排列'from S
group by sdept
order by AVG(Sage) DESC
??運行結果:
4.10 查詢每門課程的課程名
??運行程序:
select Cname
from C
??運行結果:
4.11 查詢先修課小于4的課程的課程名和學分
??運行程序:
select Cname,Ccredit from C
where Cpno<4
??運行結果:
4.12 統(tǒng)計先修課小于3的課程的學分
??運行程序:
select Ccredit from C
where Cpno<3
??運行結果:
4.13 統(tǒng)計每位學生選修課程的門數(shù)、學分及其平均成績
??運行程序:
select sc.sno'學號',COUNT(sc.cno)'選修數(shù)',AVG(grade)'平均成績',SUM(ccredit)'總學分'
from sc,C
where sc.cno=c.cno
group by sc.sno
??運行結果:
4.14 統(tǒng)計選修每門課程的學生人數(shù)及各門課程的平均成績
??運行程序:
select cno'課程',COUNT(sno)'人數(shù)',AVG(grade)'平均分'
from sc
group by cno
??運行結果:
4.15 找出平均成績在85分以上的學生,結果按系分組,并按平均成績的升序排列
??運行程序:
select sc.sno'學號',sdept'專業(yè)',AVG(grade)'平均分'
from S,SC
where SC.Sno=S.Sno
group by sc.sno,Sdept
having(AVG(Grade)>80)
order by Sdept, AVG(Grade)
??運行結果:
4.16 查詢選修了“C001”或“C002”號課程的學生學號和姓名
??運行程序:
select distinct SC.Sno,Sname from S,SC
where S.Sno=SC.Sno
and (Cno='C001'or Cno='C002')
??運行結果:
4.17 查詢選修了“1”和“2”號課程的學生學號和姓名
??運行程序:
select distinct SC.Sno,Sname from S,SC,C
where S.Sno=SC.Sno
and (Cpno='1'or Cpno='2')
??運行結果:
4.18 查詢選修了課程名為“高等數(shù)學”且成績在60分以下的學生的學號、姓名和成績
??運行程序:
select S.Sno,Sname,Grade from S,SC,C
where S.Sno=SC.Sno and C.Cno=SC.Cno and C.Cname='高等數(shù)學'and Grade<60
??運行結果:
4.19 查詢每位學生選修了課程的學生信息(顯示:學號,姓名,課程號,課程名,成績)
??運行程序:
select sc.sno,sname,grade ,cname,sc.cno from sc,s,c
where s.sno=sc.sno and c.cno=sc.cno
??運行結果:
4.20 查詢沒有選修課程的學生的基本信息
??運行程序:
select * from S
where Sno!=all(select Sno from SC)
??運行結果:
4.21 查詢選修了3門以上課程的學生學號
??運行程序:
select distinct Sno from Sc
where (select count(Sno) from Sc
)>3
??運行結果:
4.22 查詢選修課程成績至少有一門在80分以上的學生學號
??運行程序:
select distinct Sno from Sc
where (select count(Sno) from Sc
)>3 and Grade>80
??運行結果:
4.23 查詢選修課程成績均在80分以上的學生學號
??運行程序:
select distinct Sno from Sc
where grade not in (select Grade from SC
where Grade<80)
??運行結果:
4.24 查詢選修課程平均成績在80分以上的學生學號
??運行程序:
select Sno from Sc
group by Sno
having AVG(grade)>80
??運行結果:
柚子快報激活碼778899分享:【SQL實戰(zhàn)】——數(shù)據查詢
精彩文章
本文內容根據網絡資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點和立場。
轉載請注明,如有侵權,聯(lián)系刪除。