版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
實(shí)驗(yàn)五SQL語言
—*、目的與規(guī)定
1.掌握SQL語言的查詢功能;
2.掌握SQL語言的數(shù)據(jù)操作功能;
3.掌握對(duì)象資源管理器建立查詢、索引和視圖的方法;
二、實(shí)驗(yàn)準(zhǔn)備
1.了解SQL語言的查改增刪四大操作的語法;
2.了解查詢、索引和視圖的概念;
3.了解各類常用函數(shù)的含義。
三、實(shí)驗(yàn)內(nèi)容
(-)SQL查詢功能
使用提供的studentdb數(shù)據(jù)庫(kù)文獻(xiàn),先附加到目錄樹中,再完畢下列題
目,SQL命令請(qǐng)保存到腳本文獻(xiàn)中。
1.基本查詢
(1)查詢所有姓王的學(xué)生的姓名、學(xué)號(hào)和性別
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學(xué)生的情況,查詢結(jié)構(gòu)按班級(jí)降序排列,同一班級(jí)再按學(xué)號(hào)升序,
并將結(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)對(duì)S_C_inf。表中選修了“體育”課的學(xué)生的平均成績(jī)生成匯總行和明
細(xì)行。(提醒:用compute匯總計(jì)算)
因2023版本已不支持compute關(guān)鍵字,所以選擇用其他方式。
Seiectc_no,score
Froms_c_info
Wherec_no=29000011
groupbyc_no,score
PC-20160924WFDL...db-dbo.stjnfo對(duì)象資源笞理器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.嵌套查詢
⑴查詢其他班級(jí)中比“材料科學(xué)0601班”的學(xué)生年齡都大的學(xué)生姓名和年
齡
seiectst_name,born_date
fromst_info
wherecl_name!=’材料科學(xué)0601班'andborn_date<(select
min(born_date)
fromst_infowherecl_name=7材料科學(xué)0601班')
SQLQuery4.sql-l...ministrator(59))*XPC-20160924WFDL...db-dbo.stjnfo對(duì)象資源S3器
1臼selectst_name.,born-date
2fromst_info
3wherecl_name?二’材料科學(xué)0601班’andborn_date<(selectmin(born_date)
J4fromst_infowherecl_name二’材料科學(xué)0601班[)
100%一
口結(jié)果消息
st__nameborn_date
:鄧紅艷|1986-07-0300:00:00.000
金萍1984-11-0600:00:00.000
吳中華1985-04-1000:00:00.000
鄭遠(yuǎn)月1986-06-1800:00:00,000
圖5-4
⑵用exists查詢選修了“9710041"課程的學(xué)生姓名
selectstname
fromst_info
whereexists(se1ect*froms_c_infowherec_no=9710041
andst_id=st_info.st_id)
PC-20160924WFDL...db-dbo.stjnfo對(duì)象資源霞器
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”課程的學(xué)生的姓名和所在班級(jí)。
selectst_name,c1_name
fromst_info
wherest_idnotin(selectst_idfroms_c_infowherec
no'97100417)
ISQLQueryG.sql-l...ministrator(52))*XPC-20160924WFDL...db-dbo.stjnfo對(duì)象資源告理器
1-selectst_name.,cl_name
2fromst_info
3wherest_idnotin(selectst_idfroms_c_infowherec_no=r971004T)
100%▼4
□結(jié)果消息
st_namecl_name
1鄧紅艷法學(xué)0501
2金萍法學(xué)0502
3吳中華法學(xué)0503
4楊柳法學(xué)0503
5鄭遠(yuǎn)月法學(xué)0601
6張力明法學(xué)0602
7張好然法學(xué)0603
8李娜法學(xué)0604
9楊平娟口腔(七)0601班
10王小維口腔(七)0601班
11劃小玲口腔(七)0601班
12何邵陽j口腔(七)06。1班
圖5-6
⑷查詢選修了學(xué)號(hào)為的學(xué)生所選所有課程的學(xué)生姓名。
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-對(duì)"源頻器
5wherest-id=>2001050105*andnotexists
國(guó)結(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)查詢每個(gè)學(xué)生所選課程的最高成績(jī),規(guī)定列出學(xué)號(hào),姓名,課程編號(hào)和分?jǐn)?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對(duì)象資源壓器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
⑵查詢所有學(xué)生的總成績(jī),規(guī)定列出學(xué)號(hào)、姓名、總成績(jī),沒有選修課程的
學(xué)生總成績(jī)?yōu)榭铡?/p>
se1ectst_info.st_id,st_name,總成績(jī)
fromst_info
1eftouterjoin(se1ectst_id,sum(score)as總成績(jī)f
roms_c_infogroupby
stid)scinfoonstinfo.stidscinfo.stid
2LQuery9.sql-l...ministrator(52))*XPC-20160924WFDL....db-dbo.stjnfo對(duì)象資源管理器
1Eselectst_info.st_id,st_name,總成績(jī)
2fromst_info
43slet_fitd)osu_tecr_injofionon(ssetl_eicntfos.t_sitd_i,ds=ums_(csc_oinref)o.ast_總id成績(jī)froms_c_infogroupby
100%▼?
□結(jié)果二I消息
st-idst_name總成績(jī)
r1^0603060108I徐文文67
20603060109黃正剛78
30603060110張紅飛52
40603060111曾莉娟99
52001050105鄧紅艷178
62001050106金萍182
72001050107吳中華153
82001050109楊柳NULL
92001060103鄭遠(yuǎn)月NULL
102001060104張力明NULL
112001060105張好然NULL
122001060106李娜HULL
132602060105楊平娟77
142602060106王小維97
152602060107劉小玲92
162602060108何邵陽83
圖5—9
(3)查詢“大學(xué)計(jì)算機(jī)基礎(chǔ)”課程考試成績(jī)前三名的學(xué)生姓名和成績(jī)。
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大學(xué)計(jì)算機(jī)基礎(chǔ)'
SQLQuerylO.sql-...dministrator(52))*X■騏,OT1立庭睦迎”4
⑷將s_c_info中的score列的值轉(zhuǎn)為等級(jí)制輸出,即60分以下顯示為
“不及格及60?69分顯示“及格”,70?79分顯示“中檔”,80~81顯
示“良好”,90?100顯示“優(yōu)秀二規(guī)定輸出學(xué)號(hào)、姓名、課程名、成績(jī)
等級(jí)。(提醒:在seiect字句中使用case...when...end語句)
selectst_info.st_id,st_name,c_name,成績(jī)等級(jí)二
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..成績(jī)等級(jí)二
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成績(jī)等級(jí)
12603項(xiàng)108.徐文文C語言程序設(shè)計(jì)基甜及格
20603060109黃正剛C語言程序設(shè)計(jì)基酬中等
30603060110張紅飛C語言程序設(shè)計(jì)基礎(chǔ)不及格
40603060111曾莉娟C語言程序設(shè)計(jì)基礎(chǔ)優(yōu)秀
52001050105鄧紅艷大學(xué)計(jì)算機(jī)基礎(chǔ)良好
62001050105鄧紅艷大學(xué)計(jì)算機(jī)基礎(chǔ)實(shí)蛉優(yōu)秀
72001050106金第大學(xué)計(jì)算機(jī)基礎(chǔ)良好
82001050106金萍大學(xué)計(jì)算機(jī)基礎(chǔ)實(shí)驗(yàn)優(yōu)秀
92001050107吳中華大學(xué)計(jì)算機(jī)基礎(chǔ)中等
102001050107吳中華大學(xué)計(jì)算機(jī)基礎(chǔ)實(shí)蛉中等
112602060105楊平娟體育中等
122602060106王小維體育優(yōu)秀
132602060107劉小玲體育優(yōu)秀
142602060108何邵陽體育良好
圖5-11
(二)SQL的增刪改功能
在實(shí)驗(yàn)四建立的studb數(shù)據(jù)庫(kù)中,寫SQL語句實(shí)現(xiàn)增刪改功能。
1.在S表中增長(zhǎng)如下記錄:
____|_sno」sname|ssex|bomdate|dname|enscore|address
1|jS3j張明華男1995^)8-2100:00:00,000MA重學(xué)530.0浙江杭州
圖5—12
insertS
values('s3?張明華,,'男',1995/08/2100:00:00.00O','MA_數(shù)學(xué)','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ù)學(xué)‘,'530.O',‘浙江杭州‘,NULL)
圖5—13
PC-20160924WFDLstudb-dbo.SXPC-20160924WFDLstudb-dbo.S
snosnamessexborndateclnameenscoreaddresssfzh
?SI恒男1995-03-200...CS_計(jì)算機(jī)460.0湖南長(zhǎng)沙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ù)庫(kù)”的學(xué)分更改為3。
updateCsetceredit=73'
wherecname='數(shù)據(jù)庫(kù),
SQLQueryG.sql-l...ministrator(52))*XPC-20160924WFDLstudb-dbo.S
1EupdateCsetccredit=,3>
2wherecname二‘?dāng)?shù)據(jù)庫(kù)’
100%一
由肖息
(1行受影響)
圖5-15
PC-20160924WFDL.studb-dbo.C]SQLQuery6.sql-L..ministrator(52))*1
enocnameccreditepno
?Cl高等數(shù)學(xué)7.2NULL
C2數(shù)據(jù)庫(kù)3.0C5
C54.0Cl
?NULLNULLNULLNULL
圖5-16
3.刪除S表中S2的學(xué)生記錄,請(qǐng)問是否能刪除,為什么,要如何操作。
能刪除
de1etefromS
wheresno='S2
SQLQuery7.sql-127.0.0.l.studb(PC-20160924WFDL\Administrator(52))*
1t-deletefromS
2wheresno='S2'
100%
td消息
消息547,級(jí)別16,狀態(tài)。,第1行
DELETE語句與REFERENCE約束"FK_SCS"沖突。該沖突發(fā)生于數(shù)據(jù)庫(kù)“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+算機(jī)460.0湖南長(zhǎng)沙NULL
S10踞女1996-07-100...EN至語472.0NULL
張明華EB1995-08-210...MA費(fèi)學(xué)530.0浙江杭州NULL
NULLNULLNULLNULLNULLNULLNULLNULL
圖5-20
(三)索引
1.在studb數(shù)據(jù)庫(kù)中,分別用對(duì)象資源管理器和SQL語言定義索引
在對(duì)象資源管理器中,在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)列上的復(fù)合索引ix_tc,tno列設(shè)
為升序,eno列設(shè)為降序
先增長(zhǎng)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ù)庫(kù)中操作。
1.在對(duì)象資源管理中建立視圖v_s_c,列出所有學(xué)生所選課程的成績(jī):學(xué)號(hào),
姓名,班級(jí)名,課程號(hào),課程名,成績(jī)。
8(SQLServer12.0.5000.0-PC-20160924WFD
2□數(shù)據(jù)庫(kù)
a□系統(tǒng)卦據(jù)庫(kù)
@□州庫(kù)快照
國(guó)[JReportServer
田|JReportServerTempDB
BUstudb
田□數(shù)據(jù)庫(kù)關(guān)系圖
國(guó)立表
一」寇r新建視圖(N)“.
(+)
圖5-25
添加表
圖5-26
PC-20160924WFDLstudb-dbo.View_l*
怖
脩
□為
□F*育
□*
回50g□
二
回El□sal
05口s
口
IEe
口ccrsexcor
CPInborn色
列別名表城出排序類型排序,頓序或.
snoExpr2S團(tuán)
snameExpr3s
cnamec
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年現(xiàn)代農(nóng)業(yè)園土地流轉(zhuǎn)承包合同3篇
- 藝術(shù)活動(dòng)特色課程設(shè)計(jì)
- 汽車租賃管理課程設(shè)計(jì)
- 湘繡美術(shù)課程設(shè)計(jì)
- 藝術(shù)課創(chuàng)意游戲課程設(shè)計(jì)
- 草藥烘焙課程設(shè)計(jì)
- 紙箱印刷工藝課程設(shè)計(jì)
- 職業(yè)主題運(yùn)動(dòng)課程設(shè)計(jì)
- 育子課程設(shè)計(jì)
- 糕點(diǎn)烘焙培訓(xùn)課程設(shè)計(jì)
- TSG 51-2023 起重機(jī)械安全技術(shù)規(guī)程 含2024年第1號(hào)修改單
- 《正態(tài)分布理論及其應(yīng)用研究》4200字(論文)
- GB/T 45086.1-2024車載定位系統(tǒng)技術(shù)要求及試驗(yàn)方法第1部分:衛(wèi)星定位
- 浙江省杭州市錢塘區(qū)2023-2024學(xué)年四年級(jí)上學(xué)期英語期末試卷
- 1古詩(shī)文理解性默寫(教師卷)
- 2024-2025學(xué)年六上科學(xué)期末綜合檢測(cè)卷(含答案)
- 電力電子技術(shù)(廣東工業(yè)大學(xué))智慧樹知到期末考試答案章節(jié)答案2024年廣東工業(yè)大學(xué)
- 2024年中國(guó)移動(dòng)甘肅公司招聘筆試參考題庫(kù)含答案解析
- 反面典型案例剖析材料范文(通用6篇)
- NB∕T 32004-2018 光伏并網(wǎng)逆變器技術(shù)規(guī)范
- 股權(quán)投資郵箱
評(píng)論
0/150
提交評(píng)論