




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
實驗項目列表序號實驗項目名稱指導教師1實驗一數(shù)據(jù)庫的定義實驗(驗證性)2實驗二數(shù)據(jù)庫的建立和維護實驗(驗證性)3實驗三數(shù)據(jù)庫的杳詢實驗(驗證性)4實驗四數(shù)據(jù)庫的視圖操作實驗(驗證性)5實驗五觸發(fā)器、存儲過程操作實驗(綜合性)實驗一:數(shù)據(jù)庫的定義實驗一、實驗目的:1、理解MySQLServer6.0服務器的安裝過程和方法;2、要求學生熟練掌握和使用SQL、T-SQL、SQLServerEnterpriserManagerServer創(chuàng)建數(shù)據(jù)庫、表、索引和修改表結(jié)構(gòu),并學會使用SQLServerQueryAnalyzer,接收T—SQL語句和進行結(jié)果分析。二、實驗環(huán)境:硬件:PC機軟件:Windows操作系統(tǒng)、MySQLServer6.0和NavicatforMySQL9.0三、 實驗內(nèi)容和原理:1、 安裝MySQL以及相應的GUI工具2、 用SQL命令,建立學生-課程數(shù)據(jù)庫基本表:學生Student(學號Sno,姓名Sname,年齡Sage,性別Ssex,所在系Sdept);課程Course(課程號Cno,課程名Cname,先行課Cpno,學分Ccredit);選課SC(學號Sno,課程號Cno,成績Grade);要求:1) 用SQL命令建庫、建表和建立表間聯(lián)系。2) 選擇合適的數(shù)據(jù)類型。3) 定義必要的索引、列級約束和表級約束.四、 實驗步驟:1、 運行NavicatforMySQL,然后進行數(shù)據(jù)庫連接,進入到GUI界面;2、 利用圖形界面建立基礎表:student表的信息:字段名類型長度約束條件Snovarchar9非空、主鍵Snamevarchar20Ssexvarchar2
Sagesmallint6Sdeptvarchar20course表的信息:字段名類型長度約束條件Cnovarchar4非空、主鍵Cnamevarchar40Cpnovarchar4與course表中Cno關(guān)聯(lián)Ccreditsmallint6sc表的信息:字段名類型長度約束條件Snovarchar9非空、主鍵、與student表中Sno外鍵關(guān)聯(lián),級聯(lián)刪除Cnovarchar4非空、主鍵、與course表中Cno外鍵關(guān)聯(lián)Gradesmallint6(1)、連接數(shù)據(jù)庫,在localhost中點擊鼠標右鍵(如圖1所示),點擊“新建數(shù)據(jù)庫”在彈出的窗口中輸入數(shù)據(jù)庫名稱(如圖2所示),然后單擊“確定”,就完成了數(shù)據(jù)庫的建立。
圖1新建數(shù)據(jù)庫 圖2(2)、進入新建的數(shù)據(jù)庫,在表的位置單擊鼠標右擊(如圖3所示),點擊“新建表”分別在“欄位”中輸入上表所示的字段名、類型及長度中的數(shù)據(jù)(如圖4、5、6所示),在“外鍵”中輸入對應表的約束條件(如圖)。圖3新建表圖4圖3新建表圖4student表圖5course表圖6sc表圖5course表圖6sc表圖7course的約束條件圖8sc的約束條件3、利用命令方式建表:、單擊“查詢”然后點擊“新建查詢”,在彈出的新建查詢窗口中輸入"CREATEDATABASEhuangqiangwe”命令,建立一個名為zhz的數(shù)據(jù)庫;、通過“usehuangqiangwei”命令進入到huangqiangwei數(shù)據(jù)庫中;、在查詢編輯器窗口中分別輸入命令:建立student表:CREATETABLEstudent(Snovarchar(10)PRIMARYKEY,Snamevarchar(20)UNIQUE,Ssexvarchar(2),SageSMALLINT,Sdeptvarchar(20))建立course表:CREATETABLEcourse(Cnovarchar(4)PRIMARYKEY,Cnamevarchar(40),Cpnovarchar(4),CcreditSMALLINT,FOREIGNKEY(Cpno)REFERENCEScourse(Cno))建立sc表:CREATETABLEsc(Snovarchar(10),Cnovarchar(4),
GradeSMALLINT,PRIMARYKEY(Sno,Cno),FOREIGNKEY(Sno)REFERENCESstudent(Sno)ONDELETECASCADEONUPDATECASCADE,FOREIGNKEY(Cno)REFERENCEScourse(Cno)ONDELETENOACTIONONUPDATECASCADE)、向student表中添加“Sentrance"列:ALTERTABLEstudentADDSentranceDATE、將student表中“Sentrance"的類型改為varcharALTERTABLEstudentMODIFYCOLUMNSentrancevarchar(4);(6、、刪除student表中的“Sentrance"列:ALTERTABLEstudentDROPSentrance;五、實驗結(jié)果1、student表:Bstudent?huangqiangwei(mysql)-麥文杵輛亙看 窗匚 幫助'尋人冃導 尋口口尋r艇向?qū)網(wǎng)梧童看H申童看SnoSnameSageSdeptK〔Null)CNull)(Null)CNull)2、course表:Bcourse@hLianciqiangwe-i(my5ql)-表文件 耦 童看 疫匚 轄助…尋人冃導B尋口冃導篩遠向?qū)W(wǎng)rw13護魏Cno Cname Cpno Ccredit卜:Null]3、sc表:Bsc@hu3ngqiangwuei(mysql)-表文件 幕垢 ? 奇匚 幫助二尋八冃尋B尋口冃尋 髓逛冃尋 H朋梧童看B甜辰fineCnoGrade-(Null}CNull)〔Null〕4、向student表中添加Sentrance列:丈件鐳匠裔匚幫助■■導人向?qū)た谙驅(qū)?;策選向?qū)網(wǎng)艇看B護奪看Sno■■導人向?qū)た谙驅(qū)?;策選向?qū)網(wǎng)艇看B護奪看Sno(NuinSnarne(Null)Ssex(Null]SageSdept(Null]CNull)Sentrance(Null]5、student表的基本信息:國student@huangq^angwei(rnysglj-表口新崖H尿存心另存迦'甬漓b]欄桂弓括入欄磁西刪除欄住必蘭強書上貉#住欄僅逝 溺|SQL就名卿涇度允許空值【kSnovarchar100□aSnamevarchar200SseKvarchar20Sisgesmallint60Sdeptvarchar200*6、將Sentrance的數(shù)據(jù)類型改為varchar:六、總結(jié):通過這次實驗,要求掌握了數(shù)據(jù)庫的定義以及基本表的建立,熟悉MySQL圖形界面和SQL命令去創(chuàng)建、修改、刪除基本表及設定表級完整性約束,鞏固了SQL的一些常用的命令語句,為接下來的實驗奠定基礎。
實驗二:數(shù)據(jù)庫的建立和維護實驗一、實驗目的和要求熟練掌握使用SQL、Transact-SQL和SQLServer企業(yè)管理器向數(shù)據(jù)庫輸入數(shù)據(jù)、修改數(shù)據(jù)和刪除數(shù)據(jù)的操作。二、 實驗內(nèi)容和原理1、基本操作實驗通過MySQL的GUI工具Navicat,在學生-課程數(shù)據(jù)庫的student、course和sc3個表中各輸入若干條記錄。要求記錄不僅滿足數(shù)據(jù)約束要求,還要有表間關(guān)聯(lián)的記錄。通過MySQL的GUI工具Navicat實現(xiàn)對學生-課程數(shù)據(jù)庫的student、course和sc3個表中數(shù)據(jù)的插入、刪除和修改操作。2、提高操作實驗通過查詢編輯器用SQL命令實現(xiàn)對學生-課程庫的數(shù)據(jù)增加、數(shù)據(jù)刪除和數(shù)據(jù)修改操作。三、 實驗環(huán)境硬件:PC機軟件:Windows操作系統(tǒng)、MySQLServer6.0和NavicatforMySQL9.0四、 算法描述及實驗步驟1、基本操作實驗運行“Navicat”雙擊“student"表,將學生的信息輸入對應位置(如圖1所示);雙擊“course"表,將課程信息輸入對應位置(如圖2所示);雙擊“sc”表,將選課信息輸入對應位置(如圖3所示);需要數(shù)據(jù)插入時,就在最后一條記錄后輸入一條記錄。當鼠標點擊其他行時,輸入的記錄會自動保存在表中。需要修改記錄時,直接對表中已有記錄的數(shù)據(jù)進行改動,用新值替換原有的值。需要刪除記錄時,先用鼠標單擊要刪除行的左邊灰色方塊,使該記錄成為當前行,然后按〈Delete>鍵。為了防止誤操作,MySQL會彈出一個警告框,要求用戶確認刪除操作,單擊“確認”按鈕即可刪除記錄。也可通過先選中一行或多行記錄,然后再按〈Delete>鍵的方法一次刪除多條記錄。Bstudent?huangqiangwei(mys-qb-表文件歸每W茴匚幫助尋人冃尋r3尋曲尋.満選向?qū)W(wǎng)慣看二表遺看£noSnsmeSsexS-age"ept311600S042羅靖20C£3116003043里22IS3116003&44鄭智化勇20MA3116003047男21MA311&003045李殊立20留圖1student表的數(shù)據(jù)rEcourse@huangqiangwei[mysql]-丟文祥械 嶺 裔匚 耕助'尋入向?qū)搶た谙驅(qū)?篇遠向辱 H網(wǎng)解看£磊昏CnoCname■CpnoCcredit卜1加庫52數(shù)學(Null)2信息報1576猜言(Null)7PASCAL6圖2course表的數(shù)據(jù)Bsc?huarigqiangwei(mysql)-表文件 腿 匠 裔匚 幫助U尋入向?qū)Э趯Э谙驅(qū)?篇選向?qū)noCnoGrade卜3116OO3M21&23116OO3M2292311&OO3O423833116003043231160030433SO3116003044239圖3sc表的數(shù)據(jù)圖4警告圖標2、提高操作實驗在查詢編輯器中輸入以下代碼,實現(xiàn)相應的功能。將(學號:3116003034;姓名潢學輝;性別;男;所在系:IS;年齡:20)的學生信息插入到student表中,實現(xiàn)的代碼如下:INSERTINTOstudent(Sno,Sname,Ssex,Sdept,Sage)VALUES('3116003034',黃學輝','男','IS',20);將student表中學號為3116003042的學生的所在系改為MA,實現(xiàn)代碼如下:UPDATEstudentSETSdept='MA'WHERESno='3116003042'刪除姓名為“陳會娟”的學生記錄,實現(xiàn)代碼如下:DELETEFROMstudentWHERESname='陳會娟’五、調(diào)試過程cjlO童詢編輯器UFDkTEstadent.SET5dept=MAWHERESno=31160030424信皂鮭[SQL]UPDATEstudentSETSdept=MAWHERE£-no-=3116003042[Err]LO54-Unknown<olumn'MA1in'fieldli&i1提示操作失敗,應將SETSdept=MA和WHERESno=3116003042改為:SETSdept='MA'和WHERESno='3116003042',然后再運行,提示修改成功,如下圖:查詢創(chuàng)建工具童詢騙輯器JPDATE3fJde^tSET5dept=,MA,WHERE5rLO=F5LL600J042F4信息[SQL]UPDATEstudentSET£dept='MA'WHERE£no='3116003W證響的行;1時間:0.004ms六、實驗結(jié)果1、向student表插入數(shù)據(jù):_student@huangqiangv/ei(mys-ql)-恚 曹 ?huangqiangwe...曹 ?huangqiangwe...5-tudent?huangqiangwe...X—尋人冃尋Q尋口冃尋 篩逛向?qū)?H網(wǎng)梧童看S長芝匪S-noSnameSageSdeprt3116003034苗學揮20IS311600304220CS3116003043黑航男22CS3116003944鄭智化男20MA3116003045立20IS3116003047董疆偉21MA311600304&^51女一21IS2、修改數(shù)據(jù):SnoSnameSaexSageSd&pt3116003034堇學輝男20IS3116003042男20MA3116003043舅22CS-3116003044鄭智化20MA311&003045李站女20IS311500304721MA311600304S龕娟21IS3、刪除數(shù)據(jù):SnoSnameSag?S-d&pt卜3116003024鑿學輝男20IS3116003042舅20MA3116003043舅22匚&3116003044鄭智化20MA3115003045李站女20IS311&OO304721MA七、總結(jié)通過這次實驗,掌握了數(shù)據(jù)庫的建立和維護的基本知識以及約束條件的作用,掌握使用MySQL圖形界面和SQL命令對建立的基本表進行添加數(shù)據(jù)、修改數(shù)據(jù)、刪除數(shù)據(jù)的操作,同時也鞏固了SQL命令中的添加、修改、刪除語句,為以后做數(shù)據(jù)庫的維護奠定基礎。實驗三:數(shù)據(jù)庫的查詢實驗一、實驗目的和要求1、 掌握select語句的基本語法;2、 掌握子查詢、連接查詢的表示;3、 掌握select語句的GROUPBY、ORDERBY、LIMIT的作用和使用方法。二、 實驗內(nèi)容和原理1、 select語句的基本使用:查詢student表中每個學生的所有數(shù)據(jù);查詢course和sc表的所有記錄;查詢年齡在20?21歲之間的學生的姓名及年齡;統(tǒng)計學生總?cè)藬?shù);查詢信息系(IS)學生的姓名和性別;查詢所有姓“黃”的學生的信息。2、 子查詢的使用:查詢與“羅靖”在同一個系的學生查詢其他系中比CS系所有學生年齡都小的學生的姓名和年齡。3、 連接查詢的使用:查詢選修了3號課程且成績在85分以上的學生的學號、姓名。查詢所有學生的選課情況。4、 GROUPBY、ORDERBY和LIMIT子句的使用:查找student中男生和女生的人數(shù);查找選修了2號課程的學生的學號及其成績,查詢結(jié)果按成績降序排列;返回student表中的前3為同學的信息。三、 實驗環(huán)境硬件:PC機軟件:Windows操作系統(tǒng)、MySQLServer6.0和NavicatforMySQL9.0四、算法描述及實驗步驟1、select語句的基本使用:(1)查詢student表中每個學生的所有數(shù)據(jù):SELECT*FROMstudent查詢年齡在20?21歲之間的學生的姓名及年齡:SELECTSname,SageFROMstudentWHERESageBETWEEN20AND21統(tǒng)計學生總?cè)藬?shù):SELECTCOUNT(*)FROMstudent查詢信息系(MA)學生的姓名和性別:SELECTSname,SsexFROMstudentWHERESdeptIN('MA')查詢所有姓“黃”的學生的信息。SELECT*FROMstudentWHERESnameLIKE'黃%'2、 子查詢的使用:查詢與“羅靖”在同一個系的學生的姓名和所在系:SELECTSname,SdeptFROMstudentWHERESdeptIN(SELECTSdeptFROMstudentWHERESname=羅靖')查詢其他系中比IS系所有學生年齡都小的學生的姓名和年齡SELECTSname,SageFROMstudentWHERESage<ALL(SELECTSageFROMstudentWHERESdept='IS')3、 連接查詢的使用:(1)查詢選修了3號課程且成績在85分以上的學生的學號、姓名SELECTSno,SnameFROMstudentWHERESnoIN(SELECTSnoFROMscWHERECno='3')(2)查詢有選課的學生的基本情況。SELECTstudent.Sno,student.Sname,course.Cno,course.CnameFROMstudent,sc,courseWHEREstudent.Sno=sc.SnoANDsc.Cno=course.Cno4、GROUPBY、ORDERBY和LIMIT子句的使用:查找student中男生和女生的人數(shù):SELECTSsex,COUNT(Ssex)FROMstudentGROUPBYSsex查找選修了2號課程的學生的學號及其成績,查詢結(jié)果按成績降序排列:SELECTSno,GradeFROMscWHERECno=2ORDERBYGradeDESC返回student表中的前3為同學的信息。SELECT*FROMstudentLIMIT3五、實驗結(jié)果1、select語句的基本使用:(1)塔息 結(jié)果1範兄 聰SnoSnarneSsexSageS-depik311&003034螢學繹20IS3116003042羅靖男20MA311&003043昊鼬 男22C&311&003044鄭智化男20MA31L&003045 李立婷 女 20E31L&003047 苗強偉 舅 21MA
信息結(jié)果1叛兄SnameSag?M■學輝2020鄭智化202021(4)信息結(jié)免1術(shù)呪|般COUNTS卜6信息結(jié)果i卜羅靖(4)信息結(jié)免1術(shù)呪|般COUNTS卜6信息結(jié)果i卜羅靖牆化畀畀(5)盲息涪果1範兄&no-S-nameGsex£age=&dept3116003034堇學輝20IS311600304721MA2、子查詢的使用:(1)UB 結(jié)果1転兄Sname£deptMA鄭智化MAMA(2)3、連接查詢的使用:(1)信息結(jié)臬1SnameSno?311600304231160030423、連接查詢的使用:(1)信息結(jié)臬1SnameSno?31160030423116003042羅靖(2)£n&&nameCnarne?311&OO3O4SMfin;2數(shù)學311&0030433信息訣311&OO3D42羅站 1舞庫31150030422數(shù)學3115003042冴靖3信息裁言息結(jié)果]豔兄唸4、GROUPBY、ORDERBY和LIMIT子句的使用:(1)(2)UBI結(jié)果1W爍SsexOOUNT0詞1男5信息結(jié)杲1珮鬆SnoGrade3115OO3W923116OO3W503116003044B9(3)WB結(jié)果]闕鬆Sno-S-nameSageSd-ept3U&OT3O34黃學輝男201呂3116003042羅靖20MA311600304322C£六、總結(jié)
通過這次實驗,掌握了select語句的基本使用方法,對數(shù)據(jù)庫中的數(shù)據(jù)進行查詢方法有了進一步的了解,鞏固了子查詢和連接查詢的使用以及GROUPBY、ORDERBY和LIMIT子句的使用,為以后做數(shù)據(jù)庫數(shù)據(jù)的查詢奠定基礎。區(qū)MySQL5.6CGrrnnidiidLineClie-nl-Unkixdtinsertintocoursevalues(."11pLieryOK,1rahaffected[0u07sec)mysql>select*fromcourse;ICno|CnameICpna|Ccredit|O1ICno|CnameICpna|Ccredit|O111123456-7'統(tǒng)統(tǒng)枸営庫UT說總黑結(jié)ital捱呷ft孝息作提拒SC級露整讒醫(yī)paNULLNULLNULL16NULL64I6I
禺I2dII42I4I9rawsinsetCO-00sec.;rnysql>irnysql>insertinta匚oursevalues( 12□s*anull323)a(B13a/pragram'a12\9);CjLieryOK^2ro^saffected!(0.06secjRecords:2Duplicates:0Warnings:GNULLNULL6NULLNULL12NULL11iprsinget(0.00sec)mysql>select*fromcourse;I { NULLNULL6NULLNULL12NULL11iprsinget(0.00sec)mysql>select*fromcourse;I { |r 1 4ICno||Crame |CprtoICcipeditI,p『agramCS|MySQL5.C匚LineClient-Unicc-dewsqI%mysql>inse『tintocoursevaiuesi'123'as7rnj11,23J?ucryW;h2「ow#affected(0.06see)RecardE!2E<jp11cates:0Warninqs:0說明:可以一次插入多條記錄實驗四:數(shù)據(jù)庫的視圖操作實驗一、實驗目的和要求1、熟悉視圖的概念和作用;2、掌握視圖的創(chuàng)建方法;3、掌握如何查詢和修改視圖。二、實驗內(nèi)容和原理1、創(chuàng)建視圖:(1) 創(chuàng)建zhz數(shù)據(jù)庫上的視圖student_view,視圖包含學號、姓名、系;(2) 創(chuàng)建zhz數(shù)據(jù)庫上的視圖sc_view,視圖包含sc表的全部列。2、 查詢視圖:(1) 從視圖sc_view中查看選修了3號課程的學生的學號;(2) 從視圖student_view中查詢姓名為“李立婷”的學生所在的系。3、 更新視圖:(1) 向視圖sc_view中插入一行數(shù)據(jù):3116003045,5,87;(2) 將視圖student_view中學號=3116003043的學生的系改為MA;(3) 刪除視圖student_view中學號=3116003042的學生的信息。4、 刪除視圖:(1)刪除視圖sc_view;5、 在界面工具中操作視圖三、實驗環(huán)境硬件:PC機軟件:Windows操作系統(tǒng)、MySQLServer6.0和NavicatforMySQL9.0四、算法描述及實驗步驟1、創(chuàng)建視圖:(1)創(chuàng)建zhz數(shù)據(jù)庫上的視圖student_view,視圖包含學號、姓名、系:CREATEVIEWstudent_viewASSELECTSno,Sname,SdeptFROMstudent(2)創(chuàng)建zhz數(shù)據(jù)庫上的視圖sc_view,視圖包含sc表的全部列:CREATEVIEWsc_viewASSELECT*FROMsc2、 查詢視圖:從視圖sc_view中查看選修了3號課程的學生的學號:SELECTSnoFROMsc_viewWHERECno='3'從視圖student_view中查詢姓名為“李立婷”的學生所在的系:SELECTSname,SdeptFROMstudent_viewWHERESname='王敏'3、 更新視圖:向視圖sc_view中插入一行數(shù)據(jù):3116003045,5,87;INSERTINTOsc_viewVALUES('3116003045','5','87')將視圖student_view中學號=3116003043的學生的系改為MA;UPDATEstudent_viewSETSdept='MA'WHERESno='3116003043'刪除視圖student_view中學號=3116003042的學生的信息;DELETEFROMstudent_viewWHERESno='3116003042'4、 刪除視圖:刪除視圖sc_view;DROPVIEWsc_view5、 在界面工具中操作視圖(1)創(chuàng)建視圖:選擇zhz數(shù)據(jù)庫,單擊“視圖”圖標,單擊“新建視圖”,單擊“視圖創(chuàng)建工具”雙擊“student"表,選擇“Sno,Sname,Sdept”然后單擊“保存”輸入視圖名“student_view”單擊“確定"按鈕。F]|:LaEarrii-Lianichvih?F]|:LaEarrii-Lianichvih? furIfSQL丈伴⑴MW收BE義電)LflUi旨口?JffflbW件誼衰憐??…孚査粧備T:3£標題@dhi3E(luualJhnst)+立件?瀰②格式①査若⑨stif止L3SSA口尿存0另茬為|鋰預寛屯神W巴乩逢二貝越驗皿珈=Etwit|-X:-E.--08Sno-rHema屬Sn?itqjiJifcrfailnn_3rkenaID弘afil哄卩圈Sdcpt-&<a=t視圖名輜入初圖名Etudent_view確走 取消(2) 查詢視圖:雙擊視圖名,可直接查看視圖中的數(shù)據(jù)(3) 刪除視圖:在視圖窗體中,選擇要刪除的視圖,點擊鼠標右鍵,選擇“刪除視圖”然后單擊“刪除”.■NavicatforMySQL文件迥亙壽QO蝕決⑥_具1工1商匚世)SAfcfH)曹y—EHE—■、迄搭 言迢用戶去 1視詡匕港 笙扛開視園斧礎-視囹繩新埶囹鋰曲陰視囹耐導出卩4-4^lOMhost-■(::iniormation_Echems…也.maragemyrnanage“-眉rnysqlEltestJ-zhztE表t--ffdi視囹\-h畫數(shù)[…密判牛i-a杳向;■■-撐矛L?屈m汩scviev/student_vie^iA打幵巫囹鈴浚計唄圖y18陰呱曰**尋出問導豈就幵視囹快捷方弍”吊一新五、實驗結(jié)果1、創(chuàng)建視圖:(1)百£tudent_yiew?liuangqisngwei[m/sql)-規(guī)囹
?huangqiangwe,,,X處studen-t_vi&w@hu
文件鐫登春裔匚幫助鐘尋㈡伺尋,命選向?qū)?B網(wǎng)音3尹宣看SnoSnameSdept?3116003034黃學揮IS3116003042MA3116003043CS3116003044鄭智化MA3116003045李站苗3116003047MA(2)Esc@huangqidngweifnnysql)-表文樣 堀輯 嘩 窗匚 誓勘4尋"導宙尋口向?qū)?;鑄選向?qū)?曲網(wǎng)ww目三SnoCnoGrade卜31160030421311&0030422311&O03O42388.311&O03O432恥311&O03O43330311&003044239-2、查詢視圖:cj23信息 結(jié)売1咼呪I嵯S-name&dept1£3、更新視圖:(1)插入_sc@huangqi^ngwei(mysql}-表品student_view?huangqi...X二h?huangqiangwei(tny...x文禪第垢W窗匚幫助■“尋入向?qū)А?尋口口導-髓逛自導 曲網(wǎng)梧童看匡洋童看£noCnoGrade?311&003042192311600304229231160030423SB3116003043290311&00304338031160030442的31160030455S7修改studentOhuangqiangwei[mys-qI)-麥文件編雋直看 裔匚 秤朋二尋人向?qū)А鯛幎g尋 鑄選向?qū)劸W(wǎng)梧童音13券童看SnoSnameSsexS-ageSdept卜2115003024螢學輝男20IS311600304220MA311&OO3O4322MA3115003044鄭智化20MA3115003045女20IS3116003047董強祎畀21MA刪除
尋口向?qū)?腎遠向?qū)の募鑿?奇匚 幫助尋口向?qū)?腎遠向?qū)ncS-name£-5ex&age-Sdept?31L&O03O34螢學輝20IS31L&O03O43畀22MA31L&003044鄭智化畀20MA31L&OT3O4520IS31L&O03O47畀21MA—導入耳導網(wǎng)格章看5、在界面工具中操作視圖N5tudent_view@hjangqiangwei(mysql)-視廚文件第揖童看奇匚幫助館導口冃尋 篩謹向?qū)?H網(wǎng)梧匠S題£noSnarrie&dept?31L&003034螢學揮IS311&003043WA311&003D44鄭智化WA311&003-045IS311&003-047MA六、總結(jié)通過這次實驗,掌握了視圖的創(chuàng)建、查詢、修改以及刪除等基本操作;了解了視圖與基本表的區(qū)別,視圖是一個虛表,數(shù)據(jù)庫中只存放視圖的定義,而不存放視圖對應的數(shù)據(jù),這些數(shù)據(jù)仍存放在原來的基本表中;鞏固了視圖的基本概念及其作用。實驗五:觸發(fā)器、存儲過程操作實驗一、實驗目的和要求1、掌握存儲過程創(chuàng)建和調(diào)用的方法;2、 掌握MySQL中程序片段的組成;3、 掌握觸發(fā)器的使用方法。二、實驗內(nèi)容和原理1、 存儲過程:創(chuàng)建存儲過程,使用student表中的學生人數(shù)來初始化一個局部變量,并調(diào)用這個存儲過程;創(chuàng)建存儲過程,比較兩學生的年齡,若前者比后者大就輸出0,否則輸出1。2、 觸發(fā)器:創(chuàng)建觸發(fā)器,在student表中刪除學生信息的同時將sc表中該學生的選課信息刪除,以確保數(shù)據(jù)的完整性;假設coursel表和course表的結(jié)構(gòu)和內(nèi)容都相同,在course上創(chuàng)建一個觸發(fā)器,如果添加一門新的選修課程,該課程也會被添加到course1表中。定義一個BEFORE行級觸發(fā)器,為teacher表定義完整性規(guī)則,“向teacher插入教授的信息時,工資不得低于4000元,如果低于4000元,則自動將其更改為4000元”。刪除teacher表上的觸發(fā)器teacher_Income。三、實驗環(huán)境硬件:PC機軟件:Windows操作系統(tǒng)、MySQLServer6.0和NavicatforMySQL9.0四、算法描述及實驗步驟1、存儲過程:(1)創(chuàng)建存儲過程,使用student表中的學生人數(shù)來初始化一個局部變量,并調(diào)用這個存儲過程:delimiter$$CREATEPROCEDURETEST(OUTnumber1INTEGER)BEGINDECLAREnumber2INTEGER;SETnumber2=(SELECTCOUNT(*)FROMstudent);SETnumber1=number2;END$$Delimiter;調(diào)用該存儲過程:CALLTEST(@number)查看結(jié)果:SELECT@number(2)創(chuàng)建存儲過程,比較兩學生的年齡,若前者比后者大就輸出0,否則輸出1:delimiter$$CREATEPROCEDURECOMPA(INSno1varchar(10),INSno2varchar(9),OUTBJINTEGER)BEGINDECLARESR1,SR2FLOAT(10);SELECTSageINTOSR1FROMstudentWHERESno=Sno1;SELECTSageINTOSR2FROMstudentWHERESno=Sno2;IFSno1>Sno2THENSETBJ=0;ELSESETBJ=1;ENDIF;END$$Delimiter;調(diào)用該存儲過程:CALLCOMPA('3116003044','3116003045',@BJ);查看結(jié)果:SELECT@BJ2、觸發(fā)器:(1)創(chuàng)建觸發(fā)器,在student表中刪除學生信息的同時將sc表中該學生的選課信息刪除,以確保數(shù)據(jù)的完整性:CREATETRIGGERDELETE_SMAFTERDELETEONstudentFOREACHROWDELETEFROMscWHERESno=OLD.Sno刪除student表中的一行數(shù)據(jù),然后查看sc表的變化:DELETEFROMstudentWHERESno='3116003043'觀察sc表的變化;(2)假設student1表和student表的結(jié)構(gòu)和內(nèi)容都相同,在student上創(chuàng)建一個觸發(fā)器,如果添加一個學生的信息,該信息也會被添加到student1表中:delimiter$$CREATETRIGGERstudent_InsAFTERINSERTONstudentFOREACHROWBEGININSERTINTOstudent1VALUES(new.Sno,new.Sname,new.Ssex,new.Sage,new.Sdept);END$$Delimiter;向student表中添加一條新信息('2008006','楊過','男',19,'IS'):INSERTINTOstudentVALUES('2008006',楊過','男',19,'IS');觀察student1表的變化;(3) 定義一個BEFORE行級觸發(fā)器,為teacher表定義完整性規(guī)則“插入教授的信息時,工資不得低于4000元,如果低于4000元,則自動改為4000元”:CREATETRIGGERteacher_IncomeBEFOREINSERTONteacherFOREACHROWBEGINIF(new.Job=教授')AND(new.Incomev4000)THENSetnew.Income=4000;ENDIF;END;向teacher表中添加一條新信息('3116003037','鄭靜美','女','教授',3500):INSERTINTOteacherVALUES('10006',林濤','男','教授',3500)觀察teacher表的結(jié)果;(4) 刪除teacher表上的觸發(fā)器teacher_Income。DROPTRIGGERteacher_Income;五、調(diào)試過程1、[SQL]CREATETRIGGERteacherjncorn曰REFOREINSERTONteacherFOREACHROWBEGINIFfnew.Job= AND.:new.Income<4000]THENnevx.Incom曰=4000;ENDIF;END;[Err]1064-Youhaveanerrorinyour£QLsyntaxjcheckthe-manualthatcorrespondstoyourMySQL&ervErversionfortherightsyntaxtousenear'.Income=4000;ENPJF;END'atlineb提示出現(xiàn)語法錯誤,應在“new.Income=4000;”前添加SET,然后再運行:信息桶兄嶺證廂的行:0▲時0.056ms2、提示出現(xiàn)語法錯誤,應在“DROPTRIGGERteacher_IncomeONteacher”中的“ONteacher”刪除,然后再運行:信息那兄鮭[SQL]DROPTRIGGER,teacherJncome?罷艮咆的齊:0時間0.007ms六、實驗結(jié)果實驗前:
SnoSnameSageS-deptk3116003034羽學輝男20l£3116003042號靖男20MA3116003043舅22C&311
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 出租果樹合同范本
- 企業(yè)長期聘用合同范本
- 農(nóng)作物種子訂購合同范例
- 北京 家政 合同范本
- 辦學承包合同范本
- 分級基金合同范本
- 醫(yī)院進駐商鋪合同范本
- 包清合同范本
- 單位維修施工合同范本
- 個人轉(zhuǎn)讓定金合同范本
- 《火力發(fā)電廠水處理技術(shù)概述》課件
- 春節(jié)后復工安全培訓課件
- 全國電子工業(yè)版初中信息技術(shù)第二冊第2單元2.1活動3《使用云盤備份數(shù)據(jù)》教學設計
- 3.1產(chǎn)業(yè)轉(zhuǎn)移對區(qū)域發(fā)展的影響(第1課時) 【知識精研】高二地理課件(湘教版2019選擇性必修2)
- 2025年醫(yī)院實習協(xié)議書樣本
- 2025年湖南工程職業(yè)技術(shù)學院高職單招職業(yè)技能測試近5年??及鎱⒖碱}庫含答案解析
- 招標代理服務投標方案(技術(shù)標)
- 2024年云南中煙工業(yè)有限責任公司招聘筆試真題
- 2024年山東輕工職業(yè)學院高職單招語文歷年參考題庫含答案解析
- 2022新教材蘇教版科學5五年級下冊全冊教學設計
- 2024-2025學年全國中學生天文知識競賽考試題庫(含答案)
評論
0/150
提交評論