版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
實驗五SQL語言
—*、目的與規(guī)定
1.掌握SQL語言的查詢功能;
2.掌握SQL語言的數(shù)據(jù)操作功能;
3.掌握對象資源管理器建立查詢、索引和視圖的方法;
二、實驗準備
1.了解SQL語言的查改增刪四大操作的語法;
2.了解查詢、索引和視圖的概念;
3.了解各類常用函數(shù)的含義。
三、實驗內(nèi)容
(-)SQL查詢功能
使用提供的studentdb數(shù)據(jù)庫文獻,先附加到目錄樹中,再完畢下列題
目,SQL命令請保存到腳本文獻中。
1.基本查詢
(1)查詢所有姓王的學生的姓名、學號和性別
SelectSt_Name,St_Sex,St_ID
Fromst_info
WhereSt_NameIike'王%
SQLQueryl.sql-.studentdb(PC-20160924WFDL\Administrator(59))*
1臼SelectSt_Name,St_Sex,St_ID
2Fromst_info
3WhereSt_Namelike*王%'
100%▼?
口結(jié)果二|消息
St__NameSt_SexSt_ID
1j主,j'雍|里2602060106
圖5-1
(2)查詢?nèi)w學生的情況,查詢結(jié)構(gòu)按班級降序排列,同一班級再按學號升序,
并將結(jié)果存入新表new中
select*intonew
fromst_info
orderbyCl_Namedesc,st_IDasc
SQLQuery2.sql-.studentdb(PC-20160924WFDL\Administrator(53))*
1Bselect*intonew
2fromst_info
3orderbyClLNamedesc,st_IDasc
100%一
由消息_________________________________________________________________________________
(16行受影響)
圖5-2
(3)對S_C_inf。表中選修了“體育”課的學生的平均成績生成匯總行和明
細行。(提醒:用compute匯總計算)
因2023版本已不支持compute關(guān)鍵字,所以選擇用其他方式。
Seiectc_no,score
Froms_c_info
Wherec_no=29000011
groupbyc_no,score
PC-20160924WFDL...db-dbo.stjnfo對象資源笞理器SQLQuery3.sql-l...min
1ESelectc_no_,score
2Froms_c_info
3Wherec_no=29000011
4groupbyc_no_,score)
100%
二]結(jié)果j消息
c_noscore
1i29000011j77
22900001183
32900001192
42900001197
圖5-3
2.嵌套查詢
⑴查詢其他班級中比“材料科學0601班”的學生年齡都大的學生姓名和年
齡
seiectst_name,born_date
fromst_info
wherecl_name!=’材料科學0601班'andborn_date<(select
min(born_date)
fromst_infowherecl_name=7材料科學0601班')
SQLQuery4.sql-l...ministrator(59))*XPC-20160924WFDL...db-dbo.stjnfo對象資源S3器
1臼selectst_name.,born-date
2fromst_info
3wherecl_name?二’材料科學0601班’andborn_date<(selectmin(born_date)
J4fromst_infowherecl_name二’材料科學0601班[)
100%一
口結(jié)果消息
st__nameborn_date
:鄧紅艷|1986-07-0300:00:00.000
金萍1984-11-0600:00:00.000
吳中華1985-04-1000:00:00.000
鄭遠月1986-06-1800:00:00,000
圖5-4
⑵用exists查詢選修了“9710041"課程的學生姓名
selectstname
fromst_info
whereexists(se1ect*froms_c_infowherec_no=9710041
andst_id=st_info.st_id)
PC-20160924WFDL...db-dbo.stjnfo對象資源霞器
1Bselectst_name
2fromst_info
3whereexists(select*froms_c_infowherec_no=9710041andst_id=st_info.st_id)
□結(jié)果,J消息
st_name
1「福受受
2黃正剛
3張紅飛
4曾莉娟
圖5-5
⑶用in查詢找出沒有選修“9710041”課程的學生的姓名和所在班級。
selectst_name,c1_name
fromst_info
wherest_idnotin(selectst_idfroms_c_infowherec
no'97100417)
ISQLQueryG.sql-l...ministrator(52))*XPC-20160924WFDL...db-dbo.stjnfo對象資源告理器
1-selectst_name.,cl_name
2fromst_info
3wherest_idnotin(selectst_idfroms_c_infowherec_no=r971004T)
100%▼4
□結(jié)果消息
st_namecl_name
1鄧紅艷法學0501
2金萍法學0502
3吳中華法學0503
4楊柳法學0503
5鄭遠月法學0601
6張力明法學0602
7張好然法學0603
8李娜法學0604
9楊平娟口腔(七)0601班
10王小維口腔(七)0601班
11劃小玲口腔(七)0601班
12何邵陽j口腔(七)06。1班
圖5-6
⑷查詢選修了學號為的學生所選所有課程的學生姓名。
selectst_name
fromst_infowherest_idin
(selectdistinctst_idfroms_c_infowherenotexists
(se1ect*froms_c_info
wherest_id=''andnotexists
(select*froms_c_infowherest_info.st_id=s_c_info.st_id
and
c_no=any(selectc_nofromscinfowherestid
''))))
76c(s_enole=catn*y(fsroemlecst_cc__innofofrowmherse_cs_ti_nifnofow.hset_reid=sts__icd_=_*in2f0o0.1s0t5_0i1d05a,n)d)))|
S10Q0L%Que▼ry7".sql-l...ministrator(52))*xPC-20160924WFDL...db-對"源頻器
5wherest-id=>2001050105*andnotexists
國結(jié)果1口Sse消le息ctst_najne
2st_nafmreomst_infowherest_idin
43((sseelleecctt*dfirsotmincs_tc_stin_fiodfroms_c_infowherenotexists
1『福箱1
2'荃舞……
3吳中華
1圖5?7
3.連接綜合查詢及其他
(1)查詢每個學生所選課程的最高成績,規(guī)定列出學號,姓名,課程編號和分數(shù)。
selectst_info.st_id,st_name,c—info.c_no,score
fromst_infoinnerjoins_c_infoonst_info.st_id=s
_c_info.st_idinnerjoin
c_infoons_c_info.c_no=c_info.c_no
wherescore:(selectmax(s_c_info.score)froms_c_info
wherest_info.st_id=s_c_info,st—id)
SQLQuery8.sql-l...ministrator(52))*XPC-20160924WFDL...db-dbo.stjnfo對象資源壓器SQLQuery3.sql-
1Bselectst_info.st_id,st.name,c_info.c_no,score
2fromst_infoinnerjoins_c_infoonst_info.st_id=s_c_info.st_idinnerjoin
3c_infoons_c_info.c_no=c_info.c_no
4wherescore-selectmax(s_c_info.score)froms_c_info
5wherest_info.st_id=s_c_info.st_id)
100%,
口結(jié)果J消息
st_idst_namec_nosee
1j0603060108;徐文文971004167
20603060109黃正剛971004178
30603060110張紅飛971004152
40603060111曾莉娟971004199
52001050105鄧紅艷972001390
62001050106金萍972001393
72001050107吳中華972001377
82602060105楊平娟2900001177
92602060106王小維2900001197
102602060107劉小玲2900001192
112602060108何邵陽2900001183
圖5-8
⑵查詢所有學生的總成績,規(guī)定列出學號、姓名、總成績,沒有選修課程的
學生總成績?yōu)榭铡?/p>
se1ectst_info.st_id,st_name,總成績
fromst_info
1eftouterjoin(se1ectst_id,sum(score)as總成績f
roms_c_infogroupby
stid)scinfoonstinfo.stidscinfo.stid
2LQuery9.sql-l...ministrator(52))*XPC-20160924WFDL....db-dbo.stjnfo對象資源管理器
1Eselectst_info.st_id,st_name,總成績
2fromst_info
43slet_fitd)osu_tecr_injofionon(ssetl_eicntfos.t_sitd_i,ds=ums_(csc_oinref)o.ast_總id成績froms_c_infogroupby
100%▼?
□結(jié)果二I消息
st-idst_name總成績
r1^0603060108I徐文文67
20603060109黃正剛78
30603060110張紅飛52
40603060111曾莉娟99
52001050105鄧紅艷178
62001050106金萍182
72001050107吳中華153
82001050109楊柳NULL
92001060103鄭遠月NULL
102001060104張力明NULL
112001060105張好然NULL
122001060106李娜HULL
132602060105楊平娟77
142602060106王小維97
152602060107劉小玲92
162602060108何邵陽83
圖5—9
(3)查詢“大學計算機基礎(chǔ)”課程考試成績前三名的學生姓名和成績。
selectst_info.st_id,st_name,score
fromst_info
irir)(?rJoins_c_infoonst_info.st_id=s_c_info.st_id
innerjoinc_infoons_c_info.c_noc_info.c_no
andc_name=7大學計算機基礎(chǔ)'
SQLQuerylO.sql-...dministrator(52))*X■騏,OT1立庭睦迎”4
⑷將s_c_info中的score列的值轉(zhuǎn)為等級制輸出,即60分以下顯示為
“不及格及60?69分顯示“及格”,70?79分顯示“中檔”,80~81顯
示“良好”,90?100顯示“優(yōu)秀二規(guī)定輸出學號、姓名、課程名、成績
等級。(提醒:在seiect字句中使用case...when...end語句)
selectst_info.st_id,st_name,c_name,成績等級二
case
whenscore〉二90then'優(yōu)秀'
whenscore>=80then'良好,
whenscore>=70then'中檔’
whenscore>^60then'及格’
whenscore<60then,不及格‘
end
froms_c_info,st_info,c_info
wherest_info.st_ids_c_info.st_idandc_info.c_nos_
cinfo.cno
ISQLQueryll.sql-...dministrator(52))*X
selectst_info.st_id,st_name.,c_name..成績等級二
case
|3
whenscore>=90then'優(yōu)秀’
whenscore>=80then‘良好’
whenscore>=70then‘中等’
whenscore>=60then'及格’
whenscore<60then'不及格’
end
froms_c_info,st_info,c_info
10wherestinfo.stid二scinfo.stidandcinfo,cno二scinfo,cnol
100%一
□結(jié)果消息
st_dst_namec_name成績等級
12603項108.徐文文C語言程序設(shè)計基甜及格
20603060109黃正剛C語言程序設(shè)計基酬中等
30603060110張紅飛C語言程序設(shè)計基礎(chǔ)不及格
40603060111曾莉娟C語言程序設(shè)計基礎(chǔ)優(yōu)秀
52001050105鄧紅艷大學計算機基礎(chǔ)良好
62001050105鄧紅艷大學計算機基礎(chǔ)實蛉優(yōu)秀
72001050106金第大學計算機基礎(chǔ)良好
82001050106金萍大學計算機基礎(chǔ)實驗優(yōu)秀
92001050107吳中華大學計算機基礎(chǔ)中等
102001050107吳中華大學計算機基礎(chǔ)實蛉中等
112602060105楊平娟體育中等
122602060106王小維體育優(yōu)秀
132602060107劉小玲體育優(yōu)秀
142602060108何邵陽體育良好
圖5-11
(二)SQL的增刪改功能
在實驗四建立的studb數(shù)據(jù)庫中,寫SQL語句實現(xiàn)增刪改功能。
1.在S表中增長如下記錄:
____|_sno」sname|ssex|bomdate|dname|enscore|address
1|jS3j張明華男1995^)8-2100:00:00,000MA重學530.0浙江杭州
圖5—12
insertS
values('s3?張明華,,'男',1995/08/2100:00:00.00O','MA_數(shù)學','530.0'
浙江杭州:NULL)
SQLQuery5.sql-127.0.0.l.studb(PC-20160924WFDL\Administrator(57))*
1HinsertS
2values('s3'張明華里1995/08/2100:00:00.000F/MA一數(shù)學‘,'530.O',‘浙江杭州‘,NULL)
圖5—13
PC-20160924WFDLstudb-dbo.SXPC-20160924WFDLstudb-dbo.S
snosnamessexborndateclnameenscoreaddresssfzh
?SI恒男1995-03-200...CS_計算機460.0湖南長沙NULL
S10劉京女1996-07-100...EN五語472.0NULL
S2歐陽蒙女1994-10-090...MAR519.5NULLNULL
s3張明華男1995-08-210...MA530.0浙江杭州NULL
圖5-14
2.在C表中將課程名為“數(shù)據(jù)庫”的學分更改為3。
updateCsetceredit=73'
wherecname='數(shù)據(jù)庫,
SQLQueryG.sql-l...ministrator(52))*XPC-20160924WFDLstudb-dbo.S
1EupdateCsetccredit=,3>
2wherecname二‘數(shù)據(jù)庫’
100%一
由肖息
(1行受影響)
圖5-15
PC-20160924WFDL.studb-dbo.C]SQLQuery6.sql-L..ministrator(52))*1
enocnameccreditepno
?Cl高等數(shù)學7.2NULL
C2數(shù)據(jù)庫3.0C5
C54.0Cl
?NULLNULLNULLNULL
圖5-16
3.刪除S表中S2的學生記錄,請問是否能刪除,為什么,要如何操作。
能刪除
de1etefromS
wheresno='S2
SQLQuery7.sql-127.0.0.l.studb(PC-20160924WFDL\Administrator(52))*
1t-deletefromS
2wheresno='S2'
100%
td消息
消息547,級別16,狀態(tài)。,第1行
DELETE語句與REFERENCE約束"FK_SCS"沖突。該沖突發(fā)生于數(shù)據(jù)庫“studb",表"dbo.SC",column〈no'。
語句已終止。
圖5-17
PC-20160924WFDL.studb-Diagram」)
SC
8sno8eno
8enocname
scoreccredit
cono
8sno
sname
ssex
borndate
clname
enscore
圖5-18
SQLQuery7.sql-.studb(PC-20160924WFDL\Administrator(52))*
1EdeletefromS|
2wheresno=,S2'
100%…
石肖息
(1行受影響)
圖5-19
>C-20160924WFDLstudb-dbo.S
snosnamessexborndateclnameenscoreaddresssfzh
?SI恒aa1995-03-200...CSJ+算機460.0湖南長沙NULL
S10踞女1996-07-100...EN至語472.0NULL
張明華EB1995-08-210...MA費學530.0浙江杭州NULL
NULLNULLNULLNULLNULLNULLNULLNULL
圖5-20
(三)索引
1.在studb數(shù)據(jù)庫中,分別用對象資源管理器和SQL語言定義索引
在對象資源管理器中,在T表的tname列上中建立聚集索引ix_tname,降序。查
看聚集的效果。
-;新建案引
i>就緒
區(qū)鹿本,的幫助
衰名CD:
、案引名稱⑻:
^x_tname
索引姆兇:
雌
睚一?
素弓i鍵列|
酬除(R)|
上移兇
W(D)
瑕取消幫助
圖5-21
(&1^3-J
圖5-22
1.使用SQL語言定義TC表的(tno,eno)列上的復合索引ix_tc,tno列設(shè)
為升序,eno列設(shè)為降序
先增長cno列,再刪除聚集索引ix_tnameo
createc1usteredindexix—tc
onT(tno,cno)
SQLQuery9.sql-.studb(PC-20160924WFDL\Administrator(52))*
1Ecreateclusteredindexix_tc
2onT(tno.,cng)|
100%一
信消息I_______________________
命令已成功完成。
圖5-23
圖5-24
(四)視圖
在studb數(shù)據(jù)庫中操作。
1.在對象資源管理中建立視圖v_s_c,列出所有學生所選課程的成績:學號,
姓名,班級名,課程號,課程名,成績。
8(SQLServer12.0.5000.0-PC-20160924WFD
2□數(shù)據(jù)庫
a□系統(tǒng)卦據(jù)庫
@□州庫快照
國[JReportServer
田|JReportServerTempDB
BUstudb
田□數(shù)據(jù)庫關(guān)系圖
國立表
一」寇r新建視圖(N)“.
(+)
圖5-25
添加表
圖5-26
PC-20160924WFDLstudb-dbo.View_l*
怖
脩
□為
□F*育
□*
回50g□
二
回El□sal
05口s
口
IEe
口ccrsexcor
CPInborn色
列別名表城出排序類型排序,頓序或.
snoExpr2S團
snameExpr3s
cnamec
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度門衛(wèi)服務(wù)與消防聯(lián)動合同4篇
- 2025年度鮮奶產(chǎn)品溯源與安全監(jiān)管合同3篇
- 二零二五年度體育賽事贊助合作協(xié)議模板4篇
- 2025年度速錄設(shè)備租賃與技術(shù)研發(fā)合作合同3篇
- 2024年中考英語應(yīng)用文寫作萬能模板
- 開鎖公司與業(yè)主委員會協(xié)議書(2篇)
- 工程承包工傷協(xié)議書(2篇)
- 瑞麗防塵施工方案
- 二零二五版門禁系統(tǒng)用戶身份認證與隱私保護協(xié)議4篇
- 建筑安全文明施工方案
- 課題申報書:GenAI賦能新質(zhì)人才培養(yǎng)的生成式學習設(shè)計研究
- 駱駝祥子-(一)-劇本
- 全國醫(yī)院數(shù)量統(tǒng)計
- 經(jīng)濟學的思維方式(第13版)
- 提高保險公司客戶投訴處理能力的整改措施
- 電工(中級工)理論知識練習題(附參考答案)
- 工業(yè)設(shè)計概論試題
- 2024-2030年中國商務(wù)服務(wù)行業(yè)市場現(xiàn)狀調(diào)查及投資前景研判報告
- 高一英語必修一試卷(含答案)(適合測試)
- 中國的世界遺產(chǎn)智慧樹知到期末考試答案2024年
- 中國綠色食品市場調(diào)查與分析報告
評論
0/150
提交評論