欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      年整理數(shù)據(jù)庫嵌套查詢實(shí)驗(yàn)報(bào)告[共5篇]

      時(shí)間:2020-10-28 11:41:26下載本文作者:會(huì)員上傳
      簡介:寫寫幫文庫小編為你整理了多篇相關(guān)的《年整理數(shù)據(jù)庫嵌套查詢實(shí)驗(yàn)報(bào)告》,但愿對(duì)你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫還可以找到更多《年整理數(shù)據(jù)庫嵌套查詢實(shí)驗(yàn)報(bào)告》。

      第一篇:年整理數(shù)據(jù)庫嵌套查詢實(shí)驗(yàn)報(bào)告

      實(shí)驗(yàn)三:數(shù)據(jù)庫的嵌套查詢實(shí)驗(yàn)

      實(shí)驗(yàn)?zāi)康?:

      加深對(duì)嵌套查詢語句的理解。

      實(shí)驗(yàn)內(nèi)容:

      使用 IN、比較符、ANY 或 ALL 和 EXISTS 操作符進(jìn)行嵌套查詢操作。

      實(shí)驗(yàn)步驟:

      一.使用帶 N IN 謂詞的子查詢

      1.查詢與’劉晨’在同一個(gè)系學(xué)習(xí)的學(xué)生的信息: 比較 select * from student where sdept in

      (select sdept from student where sname=“劉晨”)與: select * from student where sdept =

      (select sdept from student where sname=“劉晨”)的異同

      比較: select * from student where sdept =

      (select sdept from student where sname=“劉晨”)and sname <> ‘劉晨’ 與: select S1.* from student S1, student S2 where S1.sdept=S2.sdept and S2.sname=“劉晨”的異同

      2.查詢選修了課程名為’信息系統(tǒng)’ 的學(xué)生的學(xué)號(hào)和姓名: 比較 select sno, sname from student where sno in(select sno from sc where cno in

      (select cno from course where cname=“信息系統(tǒng)”))與: select sno, sname from student where sno in

      (select sno from sc, course where sc.cno=course.cno and cname=“信息系統(tǒng)”)

      3.查詢選修了課程’1’和課程’2’的學(xué)生的學(xué)號(hào): select sno from student where sno in(select sno from sc where cno=“1”)and sno in(select sno from sc where cno=“2”)

      比較: 查詢選修了課程’1’或課程’2’的學(xué)生的 sno: select sno from sc where cno=“1” or cno=“2”

      比較連接查詢:

      select A.sno from sc A, sc B where A.sno=B.sno and A.cno=“1” and B.cno=“2”

      二.使用帶比較運(yùn)算的子查詢 4.查詢比’劉晨’年齡小的所有學(xué)生的信息: select * from student where sage<

      (select sage from student where sname=“劉晨”)

      三.使用帶 Any, All 謂詞的子查詢 5.查詢其他系中比信息系(IS)某一學(xué)生年齡小的學(xué)生姓名和年齡;select sname, sage from student where sage

      (select sage from student where sdept=“IS”)and sdept<>“IS”

      6.查詢其他系中比信息系(IS)學(xué)生年齡都小的學(xué)生姓名和年齡: select sname, sage from student where sage “IS”

      7.查詢與計(jì)算機(jī)系(CS)系所有學(xué)生的年齡均不同的學(xué)生學(xué)號(hào), 姓名和年齡: select sno,sname,sage from student where sage<>all(select sage from student where sdept=“CS”)

      四.使用帶 s Exists 謂詞的子查詢和相關(guān)子查詢

      8.查詢與其他所有學(xué)生年齡均不同的學(xué)生學(xué)號(hào), 姓名和年齡: select sno,sname,sage from student A where not exists(select * from student B where A.sage=B.sage and A.sno<>B.sno)

      9.查詢所有選修了 1 號(hào)課程的學(xué)生姓名: select sname from student where exists(select * from sc where sno=student.sno and cno=“1”)

      10.查詢沒有選修了 1 號(hào)課程的學(xué)生姓名: select sname from student where not exists(select * from sc where sno=student.sno and cno=“1”)

      11.查詢選修了全部課程的學(xué)生姓名: SQL Server 中:

      select sname from student where not exists(select * from course where not exists(select * from sc where sno=student.sno and cno=course.cno))

      11.查詢至少選修了學(xué)生 95002 選修的全部課程的學(xué)生的學(xué)號(hào): SQL Server 中: select distinct sno from sc A where not exists

      (select * from sc B where sno=“95002”and not exists(select * from sc C where sno=A.sno and cno=B.cno))

      12.求沒有人選修的課程號(hào) cno 和 cnamecname: select cno,cname from course C where not exists(select * from sc where sc.cno=C.cno)

      13*.查詢滿足條件的(sno,cno)對(duì), 其中該學(xué)號(hào)的學(xué)生沒有選修該課程號(hào) cno的課程 SQL Server 中: select sno,cno from student,course where not exists(select * from sc where cno=course.cno and sno=student.sno)

      14*.查詢每個(gè)學(xué)生的課程成績最高的成績信息(sno,cno,grade): select * from sc A where grade=(select max(grade)from sc where sno=A.sno)

      思考: 如何查詢所有學(xué)生都選修了的課程的課程號(hào) cno? select cno

      from sc

      group by cno

      having count(*)=(select count(*)from student)

      第二篇:實(shí)驗(yàn)5 數(shù)據(jù)庫的嵌套查詢實(shí)驗(yàn)

      實(shí)驗(yàn)五

      數(shù)據(jù)庫的嵌套查詢實(shí)驗(yàn)

      1、實(shí)驗(yàn)?zāi)康?/p>

      本實(shí)驗(yàn)的目的是使學(xué)生進(jìn)一步掌握SQL Server查詢分析器的使用方法,加深SQL語言的嵌套查詢語句的理解

      2、實(shí)驗(yàn)時(shí)數(shù)

      2學(xué)時(shí)

      3、實(shí)驗(yàn)內(nèi)容

      本實(shí)驗(yàn)的主要內(nèi)容是:在SQL Server查詢分析器中使用IN、比較符、ANY或ALL和EXISTS操作符進(jìn)行嵌套查詢操作。

      具體完成以下例題。將它們用SQL語句表示,在學(xué)生數(shù)據(jù)庫中實(shí)現(xiàn)其數(shù)據(jù)嵌套查詢操作。

      1、查詢選修了高等數(shù)學(xué)的學(xué)生學(xué)號(hào)和姓名 select Sno,Sname from Student where Sno in(select Sno from SC,Course where SC.Cno=Course.Cno and Cname='數(shù)學(xué)')

      2、查詢1號(hào)課程的成績高于劉晨的1號(hào)課程成績的學(xué)生學(xué)號(hào)和成績 select SC.Sno,Grade from SC,Student where Cno='1' and SC.Sno=Student.Sno and Grade>all(select Grade from SC,Student where SC.Sno=Student.Sno and Sname='劉晨')

      3、查詢其他系中比cs系某一學(xué)生年齡小的學(xué)生(即年齡小于計(jì)算機(jī)系年齡最大者的學(xué)生)select * from Student where Sdept!='cs' and Sage

      4、查詢其他系中比cs系所有學(xué)生年齡都小的學(xué)生 select * from Student where Sdept!='cs' and Sage

      5、查詢選修了2號(hào)課程的學(xué)生姓名 select Sname from Student where Sno in(select Student.Sno from SC,Student where SC.Sno=Student.Sno and Cno='2')

      6、查詢沒有選修2號(hào)課程的學(xué)生姓名 elect Sname from Student where exists(select SC.Sno from SC,Student where Cno!='2' group by SC.Sno)

      7、查詢選修了全部課程的學(xué)生姓名 Select * from SC where Cno=all(select Cno from Course)

      8、求至少選修了學(xué)號(hào)為“00215122”的學(xué)生所選修全部課程的學(xué)生學(xué)號(hào)和姓名 select Sno,Sname from Student where Sno in(select Student.Sno from Student,SC where Student.Sno=SC.Sno and Cno=any(select Cno from SC where Sno='00215122'))

      4、實(shí)驗(yàn)方法

      將查詢需求用SQL語言表示:在SQL Server查詢分析器的輸入?yún)^(qū)中輸入SQL查詢語句:設(shè)置查詢分析器的結(jié)果區(qū)為Standard Execute(標(biāo)準(zhǔn)執(zhí)行)或Execute to Grid(網(wǎng)格執(zhí)行)方式;發(fā)布執(zhí)行命令,并在結(jié)果區(qū)中查看查詢結(jié)果;如果結(jié)果不正確,要進(jìn)行修改,直到正確為止。

      5、實(shí)驗(yàn)心得體會(huì)

      本次實(shí)驗(yàn)還是進(jìn)行查詢操作,只是在第四次試驗(yàn)的基礎(chǔ)上加入了嵌套,嵌套查詢是在我們以后進(jìn)行軟件開發(fā)涉及數(shù)據(jù)庫常用的查詢操作,通過實(shí)驗(yàn)有助于我們對(duì)嵌套查詢的理解,對(duì)我們熟練的使用SQL查詢語句進(jìn)行查詢操作有很大幫助。

      第三篇:Access數(shù)據(jù)庫應(yīng)用技術(shù)實(shí)驗(yàn)報(bào)告查詢(精選)

      數(shù)據(jù)庫應(yīng)用技術(shù)實(shí)驗(yàn)報(bào)告

      查詢

      名: 學(xué)

      號(hào): 班

      級(jí): 指導(dǎo)教師:

      ****年**月**日1 實(shí)驗(yàn)?zāi)康?/p>

      掌握選擇查詢、參數(shù)查詢、交叉表查詢、操作查詢、SQL查詢的創(chuàng)建。實(shí)驗(yàn)總體要求

      根據(jù)題目選擇合適的方法創(chuàng)建查詢,可以使用查詢向?qū)А⒉樵冊O(shè)計(jì)視圖和SQL命令。實(shí)驗(yàn)步驟可以粘貼查詢設(shè)計(jì)視圖截圖,也可粘貼SQL命令。實(shí)驗(yàn)內(nèi)容

      1、創(chuàng)建查詢CX1,查找有超期圖書的讀者的借書證號(hào)、姓名、圖書編號(hào)、圖書名稱,借閱日期,超期天數(shù)(以當(dāng)前時(shí)間為準(zhǔn),借書時(shí)間超過90天為超期)。

      2、創(chuàng)建查詢CX2,統(tǒng)計(jì)每個(gè)出版社出版的圖書的數(shù)量、圖書的平均定價(jià)。

      3、創(chuàng)建查詢CX3,查找定價(jià)低于圖書平均定價(jià)的圖書的圖書編號(hào)、圖書名稱、作者、出版社、定價(jià)。

      4、創(chuàng)建更新查詢CX4,將“圖書書目表”的“是否借出”字段根據(jù)“借閱登記表”中讀者的借閱情況填入正確的值。

      5、創(chuàng)建生成表查詢CX5,查找從未有讀者借閱的圖書的圖書編號(hào)、圖書名稱、作者、出版社,生成的表名為“未借出過圖書”。

      6、為“借書證表”增加一字段,字段名為性別、文本型、字段大小為1。創(chuàng)建查詢CX6,根據(jù)身份證號(hào)的第17位輸入性別字段的值。(第17位偶數(shù)是女,奇數(shù)為男)

      7、創(chuàng)建交叉表查詢CX7,根據(jù)輸入的出版社參數(shù)值,顯示該出版社每種類別的圖書的數(shù)量。(出版社為行標(biāo)題,類別號(hào)為列標(biāo)題)

      8、創(chuàng)建查詢CX8,查找借出次數(shù)最多的圖書的編號(hào)、圖書名稱、作者、出版社。

      9、創(chuàng)建查詢CX9,將借出次數(shù)最多的圖書的編號(hào)、圖書名稱、作者、出版社追加到“未借出過圖書”表中。實(shí)驗(yàn)步驟

      1、CX1的SQL命令為:

      SELECT 借書證表.借書證號(hào), 借書證表.姓名, 圖書書目表.圖書編號(hào), 圖書書目表.圖書名稱, 借閱登記表.借閱日期, Date()-[借閱日期] AS 超期天數(shù)

      FROM 圖書書目表 INNER JOIN(借書證表 INNER JOIN 借閱登記表 ON 借書證表.借書證號(hào) = 借閱登記表.借書證號(hào))ON 圖書書目表.圖書編號(hào) = 借閱登記表.圖書編號(hào)

      WHERE(((Date()-[借閱日期])>90)AND((借閱登記表.歸還日期)Is Null));

      CX1的查詢結(jié)果為:

      2、CX2的設(shè)計(jì)視圖為:

      CX2的查詢結(jié)果為: SQL:SELECT 圖書書目表.出版社,count(圖書書目表.出版社)as 數(shù)量,avg(圖書書目表.定價(jià))as平均定………………………….roup by 圖書書目表.出版社;

      3、CX3的SQL命令為:

      CX3的查詢結(jié)果為:

      4、CX4的SQL命令為:

      UPDATE 圖書書目表 SET 是否借出 = 1 WHERE………………………….圖書書目表.圖書編號(hào)=借閱登記表.圖書編號(hào) and 借閱登記表.歸還日期 is null);CX4的查詢結(jié)果為:

      5、CX5的SQL命令為:

      SELECT 圖書編號(hào), 圖書名稱, 作者, 出版社 INTO 未借出過圖書

      ………………………….from 借閱登記表 where 圖書書目表.圖書編號(hào)=借閱登記表.圖書編號(hào));CX5的查詢結(jié)果為:

      6、CX6的SQL命令為:

      UPDATE 借書證表 SET 性別 = Mid(身份證號(hào),17,1);CX6的查詢結(jié)果為:

      7、CX7的SQL命令為:

      TRANSFORM Count(圖書書目表.圖書編號(hào))AS 圖書編號(hào)之計(jì)數(shù) SELECT ………………………….目表.圖書編號(hào))AS [總計(jì) 圖書編號(hào)] FROM 圖書書目表

      GROUP BY 圖書書目表.出版社

      PIVOT 圖書書目表.類別號(hào);CX7的查詢結(jié)果為:

      8、CX8的SQL命令為:

      SELECT 圖書編號(hào), 圖書名稱, 作者, 出版社 FROM 圖書書目表 WHERE 圖書編號(hào)=(SELECT TOP 1 圖書編號(hào)

      ………………………….ORDER BY Count(圖書編號(hào))DESC);CX8的查詢結(jié)果為:

      9、CX9的SQL命令為:

      INSERT INTO 未借出過圖書(圖書編號(hào), 圖書名稱, 作者, 出版社)SELECT 圖書編號(hào), 圖書名稱, 作者, 出版社 ………………………….SELECT TOP 1 圖書編號(hào) FROM 借閱登記表

      GROUP BY 借閱登記表.圖書編號(hào) ORDER BY Count(圖書編號(hào))DESC 5);CX9的查詢結(jié)果為:

      5評(píng)語和得分

      第四篇:數(shù)據(jù)庫實(shí)驗(yàn)報(bào)告

      實(shí)驗(yàn)一 PowerDesigner 的 CDM 應(yīng)用

      1:實(shí)驗(yàn)?zāi)康?/p>

      使用PowerDesinger進(jìn)行數(shù)據(jù)庫概念模型設(shè)計(jì),掌握CDM中的實(shí)體、實(shí)體屬性、實(shí)體與實(shí)體之間聯(lián)系的操作方法。2:實(shí)驗(yàn)內(nèi)容

      建立一個(gè)“實(shí)驗(yàn)一練習(xí)”命名的Conceptual Data Model(CDM)文件,其中應(yīng)包括的實(shí)體、實(shí)體的屬性及實(shí)體之間的聯(lián)系。3:實(shí)驗(yàn)結(jié)果

      4.實(shí)驗(yàn)心得

      初次接觸數(shù)據(jù)庫原理實(shí)驗(yàn),相對(duì)來說還是比較陌生,但老師講解還相對(duì)比較清楚,并且實(shí)驗(yàn)報(bào)告寫的十分清楚,只是遇到多建立了一個(gè)實(shí)體而無法刪除的問題,通過同學(xué)的幫助也解決了,相對(duì)來說第一次實(shí)驗(yàn)還是比較順利的。

      實(shí)驗(yàn)二 PowerDesigner 的 PDM 應(yīng)用

      1.實(shí)驗(yàn)?zāi)康?/p>

      用PowerDesinger的工具將CDM生成PDM過程,熟悉PDM工作區(qū),為生成數(shù)據(jù)庫中的物理的表打下基礎(chǔ)。完成這個(gè)實(shí)驗(yàn)后,應(yīng)該能夠了解從CDM到PDM的轉(zhuǎn)換過程,熟悉PowerDesinger的PDM工作區(qū),使用工具選項(xiàng)板進(jìn)行PDM對(duì)象設(shè)計(jì)。

      2.實(shí)驗(yàn)內(nèi)容

      從CDM生成PDM,設(shè)計(jì)結(jié)束后,利用PowerDesigner的“生成數(shù)據(jù)庫”功能,產(chǎn)生數(shù)據(jù)庫中各數(shù)據(jù)對(duì)象的定義,再運(yùn)行MySQL的命令行客戶端軟件,打開test數(shù)據(jù)庫,運(yùn)行crebas.sql,同時(shí)進(jìn)行中英文的轉(zhuǎn)換,最后運(yùn)行show tables命令查看表。

      3.實(shí)驗(yàn)結(jié)果

      4.實(shí)驗(yàn)心得

      經(jīng)過本次實(shí)驗(yàn),學(xué)會(huì)了用PowerDesinger的工具將CDM生成PDM過程,并且利用crebas.sql進(jìn)行中英文的轉(zhuǎn)換,最后利用show tables命令查看表,受益匪淺。

      實(shí)驗(yàn) 三Navicat for MySQL的使用和SQL語言數(shù)據(jù)定義語言DDL 1.實(shí)驗(yàn)?zāi)康?/p>

      了解Navicat for MySQL的啟動(dòng),熟悉如何在Navicat for MySQL下配置數(shù)據(jù)庫聯(lián)接。了解DDL語言的CREATE、DROP、ALTER對(duì)表、索引、視圖的操作,學(xué)會(huì)在Navicat for MySQL中用DDL語言進(jìn)行對(duì)表、索引、視圖的增加、刪除和改動(dòng) 2.實(shí)驗(yàn)內(nèi)容

      1.啟動(dòng)Navicat for MySQL。

      2.在MySQL–新建連接中完成連接參數(shù)配置,并完成連接測試和保存連接參數(shù)。3.查看mysql數(shù)據(jù)庫的help_category表的定義、表中數(shù)據(jù)與索引、完整性約束等。4.查看mysql數(shù)據(jù)庫的其它數(shù)據(jù)庫對(duì)象,如視圖、索引、存儲(chǔ)過程、函數(shù)、觸發(fā)器。5.在Navicat for MySQL中打開查詢,新建查詢,運(yùn)行簡單的SQL語句,如select * from help_keyword where help_keyword_id<=3;觀察下結(jié)果。3.實(shí)驗(yàn)結(jié)果

      4.實(shí)驗(yàn)心得

      使用navicat for MySQL連接數(shù)據(jù)庫的時(shí)候,不能正常連接到數(shù)據(jù)庫,出現(xiàn)“access denied for user’root@’localhost”的錯(cuò)誤提示,經(jīng)過查找發(fā)現(xiàn)是MySQL沒有正確安裝,重裝之后就可以正常的訪問數(shù)據(jù)庫,在本次實(shí)驗(yàn)中也學(xué)會(huì)了Navicat for MySQL的基礎(chǔ)的查詢使用以及簡單的SQL語句的運(yùn)行。

      實(shí)驗(yàn) 四 SQL語言數(shù)據(jù)定義語言DDL 1:實(shí)驗(yàn)?zāi)康?/p>

      本次實(shí)驗(yàn)了解SQL語言中DDL語言的CREATE、DROP、ALTER對(duì)表、索引、視圖的操作,掌握在Navicat for MySQL中用DDL語言進(jìn)行對(duì)表、索引、視圖的增加、刪除和改動(dòng)。掌握使用SQL語句增加或刪除約束,加深對(duì)完整性概念的理解,達(dá)到靈活應(yīng)用的目的。掌握使用SQL語句定義和刪除同義詞。2:實(shí)驗(yàn)原理

      在 Navicat for MySQL 中使用 CREATE 命令完成對(duì)表、索引、視圖、同義詞 的創(chuàng)建,使用 DROP 命令完成對(duì)表、索引、視圖、同義詞的刪除,使用 ALTER 命 令對(duì)表結(jié)構(gòu)進(jìn)行修改及完整性約束的增加、刪除。

      3:實(shí)驗(yàn)代碼及結(jié)果 相應(yīng)SQL語句為:

      CREATE TABLE NewTable(studentid varchar(10)NOT NULL , name varchar(20)NOT NULL , sex varchar(2)NOT NULL , age integer NOT NULL , Fee decimal(10,2)NULL , address varchar(50)NULL , memo varchar(300)NULL , PRIMARY KEY(studentid));

      截圖如下:

      3.用Create Table語句建表CourseAa,相應(yīng)的SQL語句為: CREATE TABLE CourseAa(Aa1 Varchar(20), Aa2 INTEGER, Aa3 decimal(10)); 截圖如下:

      5.用Create Table語句建表ChooseBb 相應(yīng)的SQL語句如下: CREATE TABLE ChooseBb(Bb1 VARCHAR(30), Bb2 INTEGER, Bb3 DECIMAL(6));

      6.用Drop Table語句刪除表CourseAa,相應(yīng)的SQL語句如下: Drop table CourdeAa;

      7.用Alter Table語句更新表ChooseBb,添加一個(gè)屬性名Bb4,類型Varchar,長度20,完整性約束設(shè)為非空值,缺省值設(shè)為字符“系統(tǒng)測試值”,相應(yīng)的SQL語句如下: ALTER TABLE choosebb ADD Bb4 VARCHAR(30)NOT NULL;

      8.用Alter Table語句更新表ChooseBb,添加一個(gè)屬性名Bb5,類型Varchar, 長度10,完整性約束設(shè)為主碼。完成后,表ChooseBb的設(shè)計(jì)如下所示。相應(yīng)的SQL語句如下:

      ALTER TABLE choosebb ADD Bb5 VARCHAR(30)PRIMARY KEY;

      9.用Create View語句建立一個(gè)視圖View_Choosebb,生成的視圖屬性名(View_bb1,View_bb2,view_bb3), 其中View_bb1對(duì)應(yīng)于基表ChooseBb的Bb1、View_bb2對(duì)應(yīng)于基表ChooseBb的Bb4、view_bb3對(duì)應(yīng)于基表ChooseBb的Bb5。完成后,視圖View_Choosebb的設(shè)計(jì)如下所示。

      相應(yīng)的SQL語句如下:

      CREATE VIEW View_Choosebb AS SELECT Bb4 AS View_bb1,View_bb2 FROM chooseBb;CREATE VIEW View_Choosebb AS SELECT Bb5 AS View_bb3 FROM chooseBb;10.用Drop View語句刪除視圖View_Choosebb。相應(yīng)的SQL語句如下: DROP VIEW View_choosebb;11.用Create Index語句對(duì)表ChooseBb的Bb2屬性建立一個(gè)升序索引,索引名Index_bb2。用Create Index語句對(duì)表ChooseBb的Bb4屬性建立一個(gè)降序索引,索引名Index_bb4。相應(yīng)的SQL語句如下:

      CREATE INDEX Index_bb2 ON ChooseBb(Bb4 DESC);12.用Drop Index語句刪除索引Index_bb2。相應(yīng)的SQL語句如下:

      DROP INDEX Index_bb2 ON ChooseBb;

      4:實(shí)驗(yàn)中遇到的問題及心得體會(huì)

      1、用Drop Table語句刪除表CourseAa的時(shí)候,在SQL瀏覽框中輸入語句并運(yùn)行,發(fā)現(xiàn)左邊項(xiàng)目欄中還是有CourseAa表的存在,但是確打不開CourseAa表,弄了很長時(shí)間,也不知道是什么情況,最后嘗試刷新頁面之后,發(fā)現(xiàn)語句運(yùn)行正確,CourseAa表成功刪除。

      2、由于理論課時(shí)查詢語言之學(xué)到了表的查詢,到后面實(shí)驗(yàn)中涉及視圖的建立及查詢,也不清楚是怎么回事,而且由于對(duì)查詢語句的不熟悉,實(shí)驗(yàn)過程中進(jìn)行緩慢,視圖的部分是課下看書慢慢寫的,沒有截圖。

      通過這次實(shí)驗(yàn),初步了解了SQL語言中DDL語言的CREATE、DROP、ALTER對(duì)表、索引、視圖的操作,掌握在Navicat for MySQL中用DDL語言進(jìn)行對(duì)表、索引、視圖的增加、刪除和改動(dòng)。掌握使用SQL語句增加或刪除約束。因?yàn)閷?shí)驗(yàn)過程中對(duì)這些語句的不熟悉耽誤課很長時(shí)間,還需課下多下工夫多看、多寫。

      實(shí)驗(yàn)五

      SQL語言數(shù)據(jù)操縱語言DML

      1:實(shí)驗(yàn)?zāi)康?/p>

      SQL 語言的數(shù)據(jù)操縱功能通過 DML(數(shù)據(jù)維護(hù)語言)實(shí)現(xiàn)。DML 包括數(shù)據(jù)查詢 和數(shù)據(jù)更新兩種數(shù)據(jù)操縱語句。其中,數(shù)據(jù)查詢指對(duì)數(shù)據(jù)庫中的數(shù)據(jù)查詢、統(tǒng)計(jì)、分組、排序等操作;數(shù)據(jù)更新指數(shù)據(jù)的插入、更新和刪除等數(shù)據(jù)維護(hù)操作。

      本次實(shí)驗(yàn)了解 DML 語言的 INSERT、UPDATE、DELETE 等數(shù)據(jù)維護(hù)語言,掌握 在 Navicat for MySQL 中用 DML 語言的 INSERT、UPDATE、DELETE 對(duì)表進(jìn)行數(shù)據(jù) 插入、更新和刪除。

      2實(shí)驗(yàn)內(nèi)容

      在 Navicat for MySQL 中使用 INSERT 語句向表中插入數(shù)據(jù)。使用 UPDATE 語句更新(修改)表中已有數(shù)據(jù)。使用 DELETE 語句刪除表中數(shù)據(jù)。

      3:實(shí)驗(yàn)代碼及結(jié)果

      1、用Create Table語句建立test表,其語句和截圖如下所示; CREATE TABLE `NewTable`(`Name` varchar(20)NOT NULL , `Age` integer NULL , `Score` numeric(10,2)NOT NULL , `Address` varchar(60)NULL);

      2、繼續(xù)用Create Table語句建立test_temp表,其語句同1。

      3、用INSERT語句對(duì)表test_temp,插入如實(shí)驗(yàn)報(bào)告中的三條記錄,其插入語句和截圖如下: INSERT INTO test_temp

      VALUES('鄭七',21,'490.50','重郵宿舍11-2-1');INSERT INTO test_temp

      VALUES('張八',20,'560.00','南福苑3-3-3');INSERT INTO test_temp

      VALUES('王九',10,'515.00','學(xué)生新區(qū)19-7-1');

      4、用INSERT INTO…SELECT…FROM語句,將test_temp表中的數(shù)據(jù),插入到test中,其語句及其截圖如下: INSERT INTO test

      SELECT * FROM test_temp;

      5、用UPDATE語句將test表中年齡小于20的數(shù)據(jù),將其成績更新為原來的成績加5分,其語句和截圖如下:

      UPDATE test SET Score=Score+5 WHERE Age<=20;

      6用UPDATE語句將test表中居住在南福苑所有的學(xué)生年齡減少1歲,其語句和截圖如下:、UPDATE test SET Age=Age-1 WHERE Address Like '南福苑%';

      7、用DELETE語句將test表中年齡大于等于21 并且成績大于等于500的學(xué)生數(shù)據(jù)刪除,其語句和截圖如下: DELETE FROM test

      WHERE Score<=500 AND Age>=21;

      8、用DELETE語句將test表中成績小于550并且居住在重郵宿舍的學(xué)生數(shù)據(jù)刪除,其語句和截圖如下:

      DELETE FROM test WHERE Score<=550 AND Address LIke'重郵宿舍%';

      4實(shí)驗(yàn)心得

      這次實(shí)驗(yàn)從實(shí)驗(yàn)原理還是實(shí)驗(yàn)操作來說還是相對(duì)簡單的,但越是對(duì)簡單的是就越容易犯迷糊,這次件表命名給了我很多啟示,以后對(duì)細(xì)節(jié)還是要十分注意的。

      實(shí)驗(yàn)六 SQL語言數(shù)據(jù)查詢語言DQL

      1:實(shí)驗(yàn)?zāi)康?/p>

      本次實(shí)驗(yàn)了解 SQL 語言的 SELECT 語句對(duì)數(shù)據(jù)的查詢,學(xué)會(huì)在 Navicat for MySQL 中用 SELECT 語句對(duì)表中的數(shù)據(jù)進(jìn)行簡單查詢、連接查詢、嵌套查詢和組 合查詢。2:實(shí)驗(yàn)原理

      在 Navicat for MySQL 中使用 SELECT 語句從表中查詢數(shù)據(jù)、統(tǒng)計(jì)數(shù)據(jù)及對(duì) 數(shù)據(jù)進(jìn)行分組和排序等操作。3:實(shí)驗(yàn)代碼及結(jié)果

      1.用 Create Table 建立 Student 表:

      2.用 Create Table 建立 Course 表:

      3.用 Create Table 建立 Choose 表:

      4.用 INSERT 語句向 Student 表中插入 3 個(gè)元組:

      5.用 INSERT 語句向 Course 表中插入 3 個(gè)元組:

      6.用 INSERT 語句向 Choose 表中插入 7 個(gè)元組:

      7.用 SELECT 語句,查詢計(jì)算機(jī)學(xué)院學(xué)生的學(xué)號(hào)和姓名。

      8.用 SELECT 語句的 between?and?表示查詢條件,查詢年齡在 20~23 歲的學(xué) 生信息。

      9.用 SELECT 語句的 COUNT()聚集函數(shù),統(tǒng)計(jì) Student 表中學(xué)生總?cè)藬?shù)。

      10.分別用 SELECT 語句的 max()、min()、sum()、avg()四個(gè)聚集函數(shù),計(jì)算 Choose 表中 C1 課程的最高分、最低分、總分、平均分。max():

      Min():

      Sum();

      avg():

      11.用 SELECT 語句對(duì)空值(NULL)的判斷條件,查詢 Course 表中先修課稱編號(hào)為 空值的課程編號(hào)和課程名稱。

      12.用 SELECT 語句的連接查詢,查詢學(xué)生的學(xué)號(hào)、姓名、選修的課程名及成績。

      13.用 SELECT 的存在量詞 EXISTS,查詢與“張三”在同一個(gè)學(xué)院學(xué)習(xí)的學(xué)生信 息。

      14.用 SELECT 語句的嵌套查詢,查詢選修 C1 課程的成績低于“張三”的學(xué)生的 學(xué)號(hào)和成績。

      15.用 SELECT 語句的組合查詢(UNION),查詢選修了 C1 課程或者選修了 C3 課程 的學(xué)生學(xué)號(hào)。

      16.用 SELECT 語句的組合查詢(UNION)與 DISTINCT 短語,查詢選修了 C1 課程或 者選修了 C3 課程的學(xué)生學(xué)號(hào),并取消重復(fù)的數(shù)據(jù)。

      4.實(shí)驗(yàn)心得

      本次實(shí)驗(yàn)室相對(duì)于前幾次來說比較困難的一次,因?yàn)檎Z句剛學(xué)過,下去也沒有及時(shí)去練習(xí),對(duì)于很多還是比較困難,在本次實(shí)驗(yàn)中通過練習(xí),讓我了解 SQL 語言的 SELECT 語句對(duì)數(shù)據(jù)的查詢,學(xué)會(huì)在 Navicat forMySQL 中用 SELECT 語句對(duì)表中的數(shù)據(jù)進(jìn)行簡單查詢、連接查詢、嵌套查詢和組合查詢。課下時(shí)間也會(huì)多多練習(xí)SQl語句。

      實(shí)驗(yàn)七

      MYSQL應(yīng)用開發(fā)環(huán)境的建立

      1:實(shí)驗(yàn)?zāi)康?/p>

      通過在Windows平臺(tái)下,搭建Apache Httpd Web服務(wù)器,PHP腳本支持,訪問MySQL數(shù)據(jù)庫等,學(xué)習(xí)了解MySQL應(yīng)用開發(fā)環(huán)境的建立過程。本次實(shí)驗(yàn)通過安裝Apache HTTD Server 2.2、PHP 5.3.28,配置httpd.conf和PHP.ini文件,完成MySQL的PHP應(yīng)用開發(fā)環(huán)境的建立。2:實(shí)驗(yàn)內(nèi)容

      1、按照實(shí)驗(yàn)指導(dǎo)安裝Apache http Server。成功后,截圖如下:

      2、配置Apache服務(wù)器支持PHP文件解析,截圖如下:

      3、實(shí)驗(yàn)測試成功,截圖如下:

      3:遇到的問題及解決 配置PHP擴(kuò)展支持MySQL數(shù)據(jù)庫。用記事本打開php5.3.28之下的php.ini文件,把;extension=php_mysql.dll去掉。只是去掉了extension=php_mysql.dll,而,而沒有其前面的分號(hào)去掉就保存了文件。

      4:實(shí)驗(yàn)心得

      通過在 Windows平臺(tái)下,搭建 Apache Httpd Web 服務(wù)器,PHP 腳本支持,訪問 MySQL 數(shù)據(jù)庫等,我學(xué)習(xí)了解 了MySQL 應(yīng)用開發(fā)環(huán)境的建立過程。學(xué)會(huì)了安裝 Apache HTTD Server 2.2、PHP 5.3.28,配置 httpd.conf和 PHP.ini 文件,完成 MySQL 的 PHP 應(yīng)用開發(fā)環(huán)境的建立。

      實(shí)驗(yàn)八 MySQL的存儲(chǔ)過程

      1:實(shí)驗(yàn)?zāi)康?/p>

      存儲(chǔ)過程分為兩類:1.系統(tǒng)提供的存儲(chǔ)過程;2.用戶自定義存儲(chǔ)過程。

      存儲(chǔ)過程具有的優(yōu)點(diǎn):1.存儲(chǔ)過程允許標(biāo)準(zhǔn)組件式編程;2.存儲(chǔ)過程能夠?qū)?現(xiàn)較快的執(zhí)行速度;3.存儲(chǔ)過程能夠減少網(wǎng)絡(luò)流量;4.存儲(chǔ)過程可被作為一種安 全機(jī)制來充分利用。存儲(chǔ)過程是可復(fù)用的組件!想象一下如果你改變了主機(jī)的語 言,這對(duì)存儲(chǔ)過程不會(huì)產(chǎn)生影響,因?yàn)樗菙?shù)據(jù)庫邏輯而不是應(yīng)用程序。存儲(chǔ)過 程是可以移植的!

      本次實(shí)驗(yàn)了解 MySQL 存儲(chǔ)過程的創(chuàng)建、修改和刪除的方法和步驟,掌握在 Navicat for MySQL中對(duì)存儲(chǔ)過程的進(jìn)行創(chuàng)建、修改和刪除,掌握在MySQL Command Line Client 中調(diào)用帶參數(shù)和不帶參數(shù)的存儲(chǔ)過程。

      2:實(shí)驗(yàn)內(nèi)容

      1、MySQL Command Line Client中創(chuàng)建存儲(chǔ)過程,按照實(shí)驗(yàn)指導(dǎo)書創(chuàng)建第一、第二個(gè)存儲(chǔ)過程及其調(diào)用。

      2、調(diào)用第三、第四個(gè)傳出參數(shù)的存儲(chǔ)過程:

      3、創(chuàng)建存儲(chǔ)過程third_p(),顯示表cqupt中的數(shù)據(jù),并對(duì)其進(jìn)行調(diào)用測試。

      4、創(chuàng)建存儲(chǔ)過程simpleproc2(),對(duì)傳入?yún)?shù)進(jìn)行乘以10的處理,變量定義@x,并對(duì)其進(jìn)行調(diào)用測試。5.用Drop Procedure語句刪除存儲(chǔ)過程first_p。

      3:實(shí)驗(yàn)結(jié)果

      4:心得體會(huì)

      通過此次實(shí)驗(yàn),學(xué)會(huì)了在MySQL Command Line Client中創(chuàng)建存儲(chǔ)過程及其調(diào)用,并傳遞參數(shù)對(duì)其進(jìn)行調(diào)用測試.實(shí)驗(yàn)九MySQL的觸發(fā)器和SQL語言數(shù)據(jù)控制語言DCL 1:實(shí)驗(yàn)?zāi)康?/p>

      觸發(fā)器是特定事件出現(xiàn)的時(shí)候,自動(dòng)執(zhí)行的代碼塊,類似于存儲(chǔ)過程。觸發(fā)器與存儲(chǔ)過程的區(qū)別在于:存儲(chǔ)過程是由用戶或應(yīng)用程序顯式調(diào)用的,而觸發(fā)器是不能被直接調(diào)用的,由DBMS自動(dòng)執(zhí)行。觸發(fā)器具有這些功能:

      1、允許/限制對(duì)表的修改;

      2、自動(dòng)生成派生列,比如自增字段;

      3、強(qiáng)制數(shù)據(jù)一致性;

      4、提供審計(jì)和日志記錄;

      5、防止無效的事務(wù)處理;

      6、啟用復(fù)雜的業(yè)務(wù)邏輯。

      本次實(shí)驗(yàn)了解MySQL觸發(fā)器的創(chuàng)建、修改和刪除的方法和步驟,掌握在Navicat for MySQL中對(duì)觸發(fā)器的進(jìn)行創(chuàng)建、修改和刪除,掌握觸發(fā)器觸發(fā)測試的方法。2:實(shí)驗(yàn)內(nèi)容

      1、創(chuàng)建觸發(fā)器audit_student,該觸發(fā)器對(duì)修改student表的時(shí)間、用戶名記錄到日志表中。

      2.執(zhí)行

      五、教學(xué)過程中

      (三)實(shí)驗(yàn)內(nèi)容的第二部分改造簡單觸發(fā)器,增加觸發(fā)類型判斷功能,驗(yàn)證觸發(fā)器的改造和改造后的觸發(fā)器觸發(fā)測試。3.自行編寫student表的觸發(fā)器aduit_student_update,在對(duì)student表進(jìn)行更新操作前觸發(fā),觸發(fā)時(shí),向student_log表寫入觸發(fā)用戶、觸發(fā)時(shí)間和觸發(fā)類型。并對(duì)該新建進(jìn)行觸發(fā)測試。

      4.自行編寫student表的觸發(fā)器aduit_student_delete,在對(duì)student表進(jìn)行刪除操作后觸發(fā),觸發(fā)時(shí),向student_log表寫入觸發(fā)用戶、觸發(fā)時(shí)間和觸發(fā)類型。并對(duì)該新建進(jìn)行觸發(fā)測試。

      3:實(shí)驗(yàn)結(jié)果

      ①輸入如下語句,建立實(shí)驗(yàn)表student,如圖所示: create table student(SNO varchar(10),SNAME varchar(30),Sage Int);

      ②輸入如下語句,建立日志表student_log,并查看日志表是否為空,如圖所示:

      create table student_log(who varchar(30),whattimeTIMESTAMP);

      select * from student_log;

      ③輸入如下語句,在student表上語句觸發(fā)器,如圖所示: use test;

      Create trigger audit_student Beforeinsert On student For each row Begin Insert into student_log(Who,whattime)Values(current_user,current_timestamp);End;

      建立④輸入如下語句對(duì)觸發(fā)器進(jìn)行INSERT觸發(fā)測試,如圖所示: 對(duì)student表做一個(gè)INSERT操作:

      Insert into student values('1992150033','吳思遠(yuǎn)',40);

      輸入如下語句查看表student_log,檢查觸發(fā)器工作結(jié)果,表student_log中數(shù)據(jù)如圖所示:

      select * from student_log;

      ①輸入如下語句,修改日志表結(jié)構(gòu),增加一個(gè)屬性存放觸發(fā)語句類型。如圖所示: alter table student_log add(action varchar(20));

      ②修改觸發(fā)器,記錄觸發(fā)語句類型。選中student表,單擊右鍵,選擇設(shè)計(jì)表,點(diǎn)擊觸發(fā)器選項(xiàng)卡,在定義中對(duì)INSERT進(jìn)行編輯,如圖所示:

      select * from student_log

      4:實(shí)驗(yàn)心得

      本次實(shí)驗(yàn)讓我了解 MySQL 觸發(fā)器的創(chuàng)建、修改和刪除的方法和步驟,掌握在

      Navicat for MySQL 中對(duì)觸發(fā)器進(jìn)行創(chuàng)建、修改和刪除的步驟,掌握了觸發(fā)器觸發(fā)測試的方法。

      實(shí)驗(yàn)十SQL的數(shù)據(jù)控制通過DCL(數(shù)據(jù)控制語言)實(shí)現(xiàn)

      1:實(shí)驗(yàn)?zāi)康?/p>

      DCL 通過對(duì)數(shù)據(jù)庫用戶的授 權(quán)和權(quán)限回收命令來實(shí)現(xiàn)有關(guān)數(shù)據(jù)的存取控制,以保證數(shù)據(jù)庫的安全性

      本次實(shí)驗(yàn)了解 DCL 語言的 GRANT 和 REVOKE 語句對(duì)數(shù)據(jù)庫存取權(quán)限的控制,學(xué)會(huì)在Navicat for MySQL中用GRANT、REVOKE語句對(duì)數(shù)據(jù)庫存取權(quán)限進(jìn)行設(shè)定。

      2:實(shí)驗(yàn)內(nèi)容

      1.登錄mysql,創(chuàng)建用戶jason,密碼為abc123,并授權(quán)該用戶完整訪問數(shù)據(jù)庫test。即執(zhí)行如下DCL語句:GRANT ALL ON test.* TO jason@“%”IDENTIFIED BY “abc123”;2.啟動(dòng)另外一個(gè)Navicat for MySQL,在MySQL –新建連接中完成jason連接參數(shù)配置

      3.對(duì)user表進(jìn)行授予權(quán)限操作,并用select insert 進(jìn)行測試 4.對(duì)user表進(jìn)行收回權(quán)限操作,用select insert語句進(jìn)行測試 3:實(shí)驗(yàn)結(jié)果

      GRANT ALL ON test.* TO jason@“%” IDENTIFIED BY “abc123”;GRANT SELECT on mysql.host to jason;

      2、將數(shù)據(jù)庫 mysql 中表 host 的查詢權(quán)限從用戶 jason 回收

      3.創(chuàng)建用戶jason,密碼為abc123,并授權(quán)該用戶完整訪問數(shù)據(jù)庫test。GRANT ALL ON test.* TO jason@“%” IDENTIFIED BY “abc123”;

      4.啟動(dòng)另外一個(gè)Navicat for MySQL,在MySQL –新建連接中完成jason連接參數(shù)配置。為了能查詢到相應(yīng)的數(shù)據(jù),我們必須進(jìn)行授權(quán)操作。語句如下: Grant select on mysql.user to jason;

      授權(quán)后,現(xiàn)在切換到Navicat for MySQL,執(zhí)行之前窗口中的查詢語句:

      5、接下來,切換到MySQL的命令行客戶端,創(chuàng)建一個(gè)簡單的表,切換到Navicat for MySQL,新建一個(gè)查詢:

      insert into mysql.dcltest(id,name)values(1,'張三豐');

      6、切換到MySQL的命令行客戶端,執(zhí)行如下授權(quán)語句,進(jìn)行INSERT權(quán)限的授予: Grant insert on mysql.user to jason;

      輸入如下查詢語句:

      Select * from mysql.dcltest;

      權(quán)限授予后,root(數(shù)據(jù)庫超級(jí)用戶)可以進(jìn)行權(quán)限的回收。

      7、切換到Navicat for MySQL,新建一個(gè)查詢,執(zhí)行如下插入語句: insert into mysql.dcltest(id,name)values(2,'掃地僧');執(zhí)行如下權(quán)限回收語句:

      Revoke insert on mysql.dcltest from jason;

      新建一個(gè)查詢,執(zhí)行如下查詢語句: select * from mysql.dcltest;

      Revoke select on mysql.dcltest from jason;

      4:實(shí)驗(yàn)心得

      通過本次實(shí)驗(yàn),我了解DCL語言的GRANT和REVOKE語句對(duì)數(shù)據(jù)庫存取權(quán)限的控制,學(xué)會(huì)在Navicat for MySQL中用GRANT、REVOKE語句對(duì)數(shù)據(jù)庫存取權(quán)限進(jìn)行設(shè)定。

      實(shí)驗(yàn)十一MySQL的事務(wù)與鎖

      1:實(shí)驗(yàn)?zāi)康?/p>

      事務(wù)(Transaction)是MySQL數(shù)據(jù)庫系統(tǒng)中的一個(gè)邏輯工作單元,是完成一組數(shù)據(jù)庫操作的程序執(zhí)行單元;鎖(Lock)是MySQL數(shù)據(jù)庫系統(tǒng)中并發(fā)控制的常用方法.本次實(shí)驗(yàn)了解MySQL事務(wù)的設(shè)置、提交和回退的方法和步驟,掌握MySQL Command Line Client中如何進(jìn)行相關(guān)操作。了解MySQL的表鎖定與鎖定解除,掌握MySQL Command Line Client中如何進(jìn)行相關(guān)操作。2:實(shí)驗(yàn)內(nèi)容

      啟動(dòng)MySQL的命令行客戶端,輸入密碼mysql(小寫);執(zhí)行

      五、教學(xué)過程中

      (三)實(shí)驗(yàn)內(nèi)容的1部分,學(xué)習(xí)和驗(yàn)證MySQL的事務(wù);在實(shí)驗(yàn)步驟2的基礎(chǔ)上,在數(shù)據(jù)bankrecord的表record中,添加一個(gè)元組id為3的張六,初始余額2萬;自己寫事務(wù)完成如下操作:李四向張六轉(zhuǎn)賬5千,然后取消該轉(zhuǎn)賬;王五向李四轉(zhuǎn)賬1萬5,然后確認(rèn)轉(zhuǎn)賬;執(zhí)行

      五、教學(xué)過程中

      (三)實(shí)驗(yàn)內(nèi)容的2部分,學(xué)習(xí)和驗(yàn)證MySQL的鎖;在步驟4的基礎(chǔ)上,在數(shù)據(jù)庫bookrecord的表sellrecord中,添加一個(gè)元組id為2000的書籍Oracle數(shù)據(jù)庫實(shí)用教程庫,存為2本;在當(dāng)前MySQL命令行客戶端里面模擬李四購書,另外啟動(dòng)一個(gè)MySQL命令行客戶端,模擬王五購書;要求使用寫鎖先鎖定后,再修改,因?yàn)閹齑嬗袃杀?,所以李四和王五都能買到,庫存為0,并且兩人的名字都出現(xiàn)在buyername 3:實(shí)驗(yàn)結(jié)果

      create database bankrecord character set utf8 collate utf8_general_ci;use bankrecord;

      create table record(id int,name varchar(20),jine decimal(8,2));

      set names gbk;

      insert into record values(1, '李四',20000);insert into record values(2, '王五',20000);start transaction;

      update record set jine=jine-10000 where name='李四';select * from record;rollback;

      select * from record;

      1、查看數(shù)據(jù)庫自動(dòng)提交模式是否打開:

      2,按照實(shí)驗(yàn)指導(dǎo)先建立數(shù)據(jù)庫、表和向表中插入初始賬戶記錄:

      3、完成開始事務(wù),從李四賬戶轉(zhuǎn)出 1 萬元,向王五賬戶中轉(zhuǎn)入 1 萬元,提交確認(rèn)轉(zhuǎn)賬:

      4、安實(shí)驗(yàn)指導(dǎo)執(zhí)行語句先建立數(shù)據(jù)庫、表和向表中插入初始書籍記錄:

      5、在數(shù)據(jù)庫 bankrecord 的表 record 中,添加一個(gè)元組id 為 3 的張六,初始余額 2 萬,李四向張六轉(zhuǎn)賬 5 千,然后取消該轉(zhuǎn)賬;王五向李四轉(zhuǎn)賬 1 萬 5,然后確認(rèn)轉(zhuǎn)賬(語句在圖中顯示):

      6、在數(shù)據(jù)庫 bookrecord 的表 sellrecord 中,添加一個(gè)元組id 為 2000 的書籍 Oracle 數(shù)據(jù)庫實(shí)用教程庫,存為 2 本(相關(guān)語句在圖中顯示):

      7、在當(dāng)前 MySQL 命令行客戶端里面模擬李四購書,另外啟動(dòng)一個(gè) MySQL 命令行客戶 端,模擬王五購書(語句在圖中顯示)。

      4:實(shí)驗(yàn)心得

      本次實(shí)驗(yàn)了解 MySQL 事務(wù)的設(shè)置、提交和回退的方法和步驟,掌握 MySQL Command Line Client 中如何進(jìn)行相關(guān)操作。了解 MySQL 的表鎖定與鎖定解除,掌握 MySQL Command Line Client 中如何進(jìn)行相關(guān)操作。

      實(shí)驗(yàn)十二MySQL的常用函數(shù)MySQL 1:實(shí)驗(yàn)?zāi)康?/p>

      本次實(shí)驗(yàn)了解 MySQL 常用字符串、日期和時(shí)間函數(shù)等的使用,掌握 MySQL Command Line Client 中如何進(jìn)行相關(guān)操作。常用函數(shù)包括常用字符串、日期和時(shí)間函數(shù)等各類函數(shù)。2:實(shí)驗(yàn)內(nèi)容

      啟動(dòng) MySQL 的命令行客戶端,輸入密碼 mysql(小寫);執(zhí)行

      五、教學(xué)過程中

      (三)實(shí)驗(yàn)內(nèi)容的 1 部分,學(xué)習(xí)和驗(yàn)證 MySQL 的字符串函數(shù);在實(shí)驗(yàn)步驟 2 的基礎(chǔ)上,學(xué)習(xí)如下兩個(gè)函數(shù)并完成題目:定位和位置函數(shù) LOCATE(substr,str),返回字符串 str 中子字符串 substr 的第一次出現(xiàn)位置,如果 str 中不包含 substr,返回 0。

      請(qǐng)使用LOCATE函數(shù)計(jì)算needle在haystackneedlehaystack第一次出現(xiàn)的位置;子字符串函數(shù) SUBSTRING(str,pos,len),從字符串 str 返回一個(gè)長度同 len 字符相同的子字符串,起始于位置 pos;請(qǐng)使用 SUBSTRING 函數(shù)計(jì)算 backspace,從第 2 個(gè)字符起,長度為 5 的子字符串;字符串函數(shù)的解答腳本和結(jié)果請(qǐng)保存,老師會(huì)檢查;執(zhí)行

      五、教學(xué)過程中

      (三)實(shí)驗(yàn)內(nèi)容的 2 部分,學(xué)習(xí)和驗(yàn)證 MySQL 的日期和時(shí)間函數(shù);在步驟 4 的基礎(chǔ)上,學(xué)習(xí)如下一個(gè)函數(shù)并完成題目:周函數(shù) WEEK(date),返回 date 時(shí)間包含的星期數(shù);請(qǐng)使用 WEEK 函數(shù)計(jì)算當(dāng)前日期包含的星期數(shù)。3:實(shí)驗(yàn)結(jié)果

      4:實(shí)驗(yàn)心得

      通過本次實(shí)驗(yàn)掌握了MySQL 常用函數(shù)包括常用字符串、日期和時(shí)間函數(shù)等各類函數(shù),并且學(xué)會(huì)了MySQL Command Line Client 中如何進(jìn)行相關(guān)操作。

      第五篇:數(shù)據(jù)庫實(shí)驗(yàn)報(bào)告

      實(shí)驗(yàn)7 索引和數(shù)據(jù)完整性的使用

      1、目的與要求

      (1)掌握索引的使用方法;

      (2)掌握數(shù)據(jù)完整性的實(shí)現(xiàn)方法;

      2、實(shí)驗(yàn)準(zhǔn)備

      (1)了解索引的作用與分類;(2)掌握索引的創(chuàng)建方法;

      (3)理解數(shù)據(jù)的完整性的概念與分類;(4)掌握各種數(shù)據(jù)完整性的實(shí)現(xiàn)方法。

      3、實(shí)驗(yàn)內(nèi)容

      (1)建立索引

      ①使用CREATE INDEX語句創(chuàng)建索引。

      對(duì)YGGL數(shù)據(jù)庫的Employees表中的DepartmentID列建立索引。在查詢分析器中輸入如下程序并執(zhí)行: USE YGGL GO CREATE INDEX depart_ind

      ON Employees(DepartmentID)GO 在Employees表的Name列和Address列上建立復(fù)合索引。CREATE INDEX Ad_ind

      ON Employees(Name,Address)對(duì)Departments表上的DepartmentName列建立唯一非聚集索引。CREATE UNIQUE INEDX Dep_ind ON Departments(DepartmentName)【思考與練習(xí)】

      a.索引創(chuàng)建完后在對(duì)象資源管理器中查看表中的索引。b.了解索引的分類情況

      c.使用CREATE INDEX語句能創(chuàng)建主題嗎? d.在什么情況下可以看到建立索引的好處?

      ②使用界面方式創(chuàng)建索引。

      使用界面方式在Employees表的PhoneNumber列上創(chuàng)建索引。

      啟動(dòng)SQL Server Management Studio,在對(duì)象資源管理器中展開數(shù)據(jù)庫YGGL,展開表Employees,右擊“索引,選擇“新建索引”選項(xiàng)。在新建索引的窗口中填寫索引的名稱和類型,單擊“添加”按鈕,在列表框中選擇要?jiǎng)?chuàng)建的索引的列,選擇完單擊“確定”按鈕即完成創(chuàng)建工作?!舅伎寂c練習(xí)】

      a.使用界面方式創(chuàng)建一個(gè)復(fù)合索引。

      b.在Employees表的表設(shè)計(jì)窗口選擇Address列,右擊選擇“索引/鍵”菜單項(xiàng),在新窗口中的Address列創(chuàng)建一個(gè)唯一的索引。

      c.創(chuàng)建一個(gè)數(shù)據(jù)量很大的新表,查看使用索引和不使用索引的區(qū)別。

      (2)重建索引。

      重建表Employees中的所有索引。USE YGGL GO ALTER INDEX ALL

      ON Employ REBUILD 【思考與練習(xí)】重建表Employees中EmployeeID列上的索引。

      (3)刪除索引。

      使用DROP INDEX語句刪除表Employees上的索引Depart_ind,計(jì)劃使用如下SQL語句:

      DROP INDEX Depart_ind ON Employees 【思考與練習(xí)】

      a.使用QROP INDEX一次刪除Employees表上的多個(gè)索引 b使用界面方式刪除Department表上的索引。

      (4)數(shù)據(jù)完整性。

      ①創(chuàng)建一個(gè)表Employees5,只含EmployeesID,Name,Sex和Education列。將Name,設(shè)為主鍵,作為列Name的約束。對(duì)EmployeesID列進(jìn)行UNIQUE約束,并作為表的約束。

      CREATE TABLE Employees5(EmployeesID char(6)NOT NULL PRIMARY KEY, Sex tinyint Education char(4), CONSTRAINT UK_id UNIQUE(EmployeesID))

      ②刪除上例中創(chuàng)建的UNIQUE約束。ALTER TABLE Employees5 DROPCONSTRAINT UK_id GO 【思考與練習(xí)】

      a.使用T-SQL命令創(chuàng)建一個(gè)新表,使用一個(gè)復(fù)合列作為主鍵,作為表的約束,并為其命名。b.使用語句為表ALTER TABLEEmployees5添加一個(gè)新列Address,并為該列定義UNIQUE約束,并了解如何使用圖形向?qū)Х绞絼h除主鍵和UNIOQUE約束。

      ③創(chuàng)建新表student,只考慮“號(hào)碼”和“性別”兩列,性別只能包含男或女。CREATE TABLE student(號(hào)碼char(6)NOT NULL 性別char(2)Employees

      CHECK(性別 IN(“男”,“女”))

      【思考與練習(xí)】 向該表插入數(shù)據(jù),“性別”列插入“男”和“女”以外的字符,查看會(huì)發(fā)生什么情況。

      ④創(chuàng)建新表Salary2,結(jié)構(gòu)與Salary相同,但Salary2表不可以O(shè)utCome列大于Income列。

      CREATE TABLE Salary2(EmployeesID char(6)NOT NULL Income Float NOT NULL, OUTCOME FLOAT NOT NULL, CHECK(INCOME>=OUTCOME))【思考與練習(xí)】

      a.向表中插入數(shù)據(jù),查看OUTCOME值比INCOME值大是會(huì)有什么情況。b.創(chuàng)建一個(gè)表Employees6,只考慮“學(xué)號(hào)”和“出生日期”兩列,出生日期必須晚于1980年1月1日。

      ⑤對(duì)YGGL數(shù)據(jù)庫中的Employees表進(jìn)行修改,為其增加“DepartmentID”字段的CHECK約束。

      use YGGL go alter table Employees add constraint depart check(DepartmentID>=1 and DepartmentID<=5)【思考與練習(xí)】測試CHECK約束的有效性。

      ⑥創(chuàng)建一個(gè)規(guī)則對(duì)象,用以限制輸入到該規(guī)則所綁定的列中的值只能是該規(guī)則中列出的值。

      create rule list_rule as @list in('財(cái)務(wù)部','研發(fā)部','人力資源部','銷售部')go exec sp_bindrule 'list_rule','Departments.DepartmentName' go 【思考與練習(xí)】創(chuàng)建一個(gè)規(guī)則對(duì)象,限制在0~20之間。然后把他綁定知道Employees表的WorkYear字段上。

      刪除上述建立的規(guī)則對(duì)象。

      ⑦創(chuàng)建一個(gè)表Salary3,要求所有Salary3表上EmployeeID列的值都要出現(xiàn)在Salary表中,利用參照完整性約束實(shí)現(xiàn),要求當(dāng)刪除或修改Salary表上的EmployeeID列時(shí),Salary3表中的EmployeeID值也會(huì)隨之變化

      create table Salary3(EmployeeID char(6)not null primary key, InCome float not null, OutCome float(8)not null, foreign key(EmployeeID)references Salary(EmployeeID)on update cascade

      on delete cascade)

      4、實(shí)驗(yàn)結(jié)果

      (1)建立索引 ①【思考與練習(xí)】

      a.索引創(chuàng)建完后在對(duì)象資源管理器中查看表中的索引。

      b.了解索引的分類情況

      答:索引分為兩類:分別是聚集索引和非聚集索引,其中有唯一索引和復(fù)合索引。每一個(gè)表中只可以有一個(gè)聚集索引,但可以有多個(gè)非聚集索引。c.使用CREATE INDEX語句能創(chuàng)建主題嗎? 不可以

      d.在什么情況下可以看到建立索引的好處? 當(dāng)要在龐大的數(shù)據(jù)庫中尋找自己想要的數(shù)據(jù)的時(shí)候,建立索引是很有好處的,優(yōu)點(diǎn)如下:

      第一:通過創(chuàng)建唯一性索引,可以保證數(shù)據(jù)庫表中每一行數(shù)據(jù)的唯一性。

      第二:可以大大加快數(shù)據(jù)的檢索速度,這也是創(chuàng)建索引的最主要的原因。第三:可以加速表和表之間的連接,特別是在實(shí)現(xiàn)數(shù)據(jù)的參考完整性方面特別有意義。

      第四:在使用分組和排序子句進(jìn)行數(shù)據(jù)檢索時(shí),同樣可以顯著減少查詢中分組和排序的時(shí)間。第五,通過使用索引,可以在查詢的過程中,使用優(yōu)化隱藏器,提高系統(tǒng)的性能。

      ②【思考與練習(xí)】

      a.使用界面方式創(chuàng)建一個(gè)復(fù)合索引。

      b.在Employees表的表設(shè)計(jì)窗口選擇Address列,右擊選擇“索引/鍵”菜單項(xiàng),在新窗口中的Address列創(chuàng)建一個(gè)唯一的索引。

      c.創(chuàng)建一個(gè)數(shù)據(jù)量很大的新表,查看使用索引和不使用索引的區(qū)別。

      (2)重建索引。

      【思考與練習(xí)】重建表Employees中EmployeeID列上的索引。USE YGGL GO create index employid_ind ON Employees(EmployeeID)GO ALTER INDEX employid_ind ON Employees REBUILD GO

      (3)刪除索引。

      【思考與練習(xí)】

      a.使用QROP INDEX一次刪除Employees表上的多個(gè)索引

      USE YGGL GO DROP INDEX Employees.depart_ind,Employees.Employ_ind GO

      b使用界面方式刪除Department表上的索引。

      (4)數(shù)據(jù)完整性。

      ②【思考與練習(xí)】

      a.使用T-SQL命令創(chuàng)建一個(gè)新表,使用一個(gè)復(fù)合列作為主鍵,作為表的約束,并為其命名。

      USE YGGL GO CREATE TABLE Employ(EmployeeID char(8)NOT NULL, Name char(10)NOT NULL, Sex bit NOT NULL, Education char(5), CONSTRAINT UK_id PRIMARY KEY(EmployeeID,Name,Sex))

      b.使用語句為表ALTER TABLEEmployees5添加一個(gè)新列Address,并為該列定義UNIQUE 約束。

      USE YGGL GO ALTER TABLE Employees5 ADD Address varchar(40)NULL CONSTRAINT USK_id UNIQUE GO

      C.使用界面方式為一個(gè)新表定義主鍵和UNIQUE約束,并了解如何使用圖形向?qū)Х绞絼h除主鍵和UNIQUE約束。

      ③【思考與練習(xí)】

      向該表插入數(shù)據(jù),“性別”列插入“男”和“女”以外的字符,查看會(huì)發(fā)生什么情況。

      ④【思考與練習(xí)】

      a.向表中插入數(shù)據(jù),查看OUTCOME值比INCOME值大是會(huì)有什么情況。

      INSERT 語句與CHECK 約束“CK__Salary2__1A14E395”沖突。該沖突發(fā)生于數(shù)據(jù)庫“YGGL”,表“dbo.Salary2”。

      語句已終止。

      b.創(chuàng)建一個(gè)表Employees6,只考慮“學(xué)號(hào)”和“出生日期”兩列,出生日期必須晚于1980年1月1日。USE YGGL

      GO CREATE TABLE Employees6(學(xué)號(hào) char(6)NOT NULL,出生日期

      varchar(20)NOT NULL

      CHECK(出生日期>'1980-1-1'))

      ⑤【思考與練習(xí)】測試CHECK約束的有效性。

      insert into Employees6 values('001','1980-1-0')

      INSERT 語句與CHECK 約束“CK__Employees6__出生日期__1BFD2C07”沖突。該沖突發(fā)生于數(shù)據(jù)庫“YGGL”,表

      “dbo.Employees6”, column '出生日期'。語句已終止。結(jié)果是:上面的記錄添加不進(jìn)去.表現(xiàn)出了check的有效性.⑥【思考與練習(xí)】創(chuàng)建一個(gè)規(guī)則對(duì)象,限制在0~20之間。然后把他綁定知道Employees表的WorkYear字段上。USE YGGL

      GO CREATE RULE Emp_rule

      AS @Emp like'[0-20]' GO EXEC sp_bindrule 'Emp_rule','Employees.WorkYear' GO

      刪除上述建立的規(guī)則對(duì)象。USE YGGL

      GO EXEC sp_unbindrule 'Employees.WorkYear' DROP RULE Emp_rule GO

      ⑦a.創(chuàng)建完Salary3表后,初始化該標(biāo)的數(shù)據(jù)與salary表相同。刪除salary表中一行數(shù)據(jù),在查看salary3表的內(nèi)容,看看會(huì)發(fā)生什么情況。

      B.使用ALTER TABLE語句向salary表中的EmployeeID列上添加一個(gè)外鍵,要求EmployeeIs表中要?jiǎng)h除或修改與EmployeeID值有關(guān)的行時(shí),檢查Salary表中有沒有與該EployeeID值相關(guān)的記錄,如果存在則拒絕更新Emloyees表。C.在對(duì)象資源管理器中建立Departments、Employees和Salary三個(gè)表之間的參照關(guān)系。

      下載年整理數(shù)據(jù)庫嵌套查詢實(shí)驗(yàn)報(bào)告[共5篇]word格式文檔
      下載年整理數(shù)據(jù)庫嵌套查詢實(shí)驗(yàn)報(bào)告[共5篇].doc
      將本文檔下載到自己電腦,方便修改和收藏,請(qǐng)勿使用迅雷等下載。
      點(diǎn)此處下載文檔

      文檔為doc格式


      聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進(jìn)行舉報(bào),并提供相關(guān)證據(jù),工作人員會(huì)在5個(gè)工作日內(nèi)聯(lián)系你,一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

      相關(guān)范文推薦

        數(shù)據(jù)庫實(shí)驗(yàn)報(bào)告

        數(shù)據(jù)庫系統(tǒng)原理課程設(shè)計(jì) 總結(jié)報(bào)告 學(xué)院: 軟件學(xué)院 專業(yè): 軟件工程 年級(jí): 2009 學(xué)號(hào): 20092647 姓名: 李野 1、開發(fā)環(huán)境 Windows7系統(tǒng) 2、DBMS系統(tǒng)架構(gòu) 采用向量的存儲(chǔ)結(jié)構(gòu)存儲(chǔ)數(shù)......

        數(shù)據(jù)庫實(shí)驗(yàn)報(bào)告

        10包三 李雅 100910306 實(shí)驗(yàn)報(bào)告 一、 實(shí)驗(yàn)題目: 數(shù)據(jù)庫基本操作實(shí)驗(yàn) 二、 實(shí)驗(yàn)?zāi)康模?掌握數(shù)據(jù)庫的建立、表的設(shè)計(jì)基本方法,通過實(shí)際操作熟練掌握數(shù)據(jù)庫的基本操作——數(shù)據(jù)的輸......

        數(shù)據(jù)庫實(shí)驗(yàn)報(bào)告

        課 程 實(shí) 驗(yàn) 報(bào) 告 課程名稱: 數(shù)據(jù)庫系統(tǒng)概論專業(yè)班級(jí):計(jì)科1207班學(xué)號(hào): U201215002 姓名: 李文勇 指導(dǎo)教師:江勝報(bào)告日期: 2015年6月8日計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院 目 錄 1 實(shí)驗(yàn)一 基......

        數(shù)據(jù)庫實(shí)驗(yàn)報(bào)告

        數(shù)據(jù)庫實(shí)驗(yàn)報(bào)告 一、題目要求 某銀行準(zhǔn)備開發(fā)一個(gè)銀行業(yè)務(wù)管理系統(tǒng),通過調(diào)查,得到以下的主要需求: 銀行有多個(gè)支行。各個(gè)支行位于某個(gè)城市,每個(gè)支行有唯一的名字。銀行要監(jiān)控每......

        數(shù)據(jù)庫實(shí)驗(yàn)報(bào)告

        實(shí)驗(yàn)4SQL高級(jí)應(yīng)用 【實(shí)驗(yàn)?zāi)康摹?1、掌握在SQL SERVER 2005下進(jìn)行數(shù)據(jù)還原的方法。 2、掌握SQL語句的查詢統(tǒng)計(jì)功能和數(shù)據(jù)更改功能。 【實(shí)驗(yàn)內(nèi)容】 1. 還原factory數(shù)據(jù)庫。 2......

        數(shù)據(jù)庫實(shí)驗(yàn)報(bào)告

        南華大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院 實(shí)驗(yàn)報(bào)告 ( 2013 ~2014 學(xué)年度 第二學(xué)期 ) 課程名稱 實(shí)驗(yàn)名稱 數(shù)據(jù)庫原理與技術(shù) 姓名 張濤 學(xué)號(hào) 20124350230 專業(yè) 軟件工程 班級(jí) 02班 地點(diǎn)......

        數(shù)據(jù)庫實(shí)驗(yàn)報(bào)告(共五則范文)

        《數(shù)據(jù)庫原理》實(shí)驗(yàn)報(bào)告一 學(xué)號(hào):E01114193 姓名:劉雪平年級(jí):計(jì)科三班 成績: 實(shí)驗(yàn)名稱:管理數(shù)據(jù)庫 實(shí)驗(yàn)日期:2013年4月11日 實(shí)驗(yàn)?zāi)康模?(1)熟練掌握在企業(yè)管理器中創(chuàng)建數(shù)據(jù)庫的方法。......

        數(shù)據(jù)庫原理實(shí)驗(yàn)報(bào)告

        南 京 曉 莊 學(xué) 院 《數(shù)據(jù)庫原理與應(yīng)用》 課程實(shí)驗(yàn)報(bào)告 實(shí)驗(yàn)一 SQL Server 2005常用服務(wù)與實(shí)用工具實(shí)驗(yàn) 所在院(系): 數(shù)學(xué)與信息技術(shù)學(xué)院 班級(jí): 學(xué)號(hào): 姓名: 1.實(shí)驗(yàn)?zāi)康?(1......