數(shù)據(jù)庫(kù)系統(tǒng)實(shí)驗(yàn)報(bào)告廣東工業(yè)大學(xué).doc
《數(shù)據(jù)庫(kù)系統(tǒng)實(shí)驗(yàn)報(bào)告廣東工業(yè)大學(xué).doc》由會(huì)員分享,可在線閱讀,更多相關(guān)《數(shù)據(jù)庫(kù)系統(tǒng)實(shí)驗(yàn)報(bào)告廣東工業(yè)大學(xué).doc(39頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
數(shù)據(jù)庫(kù)系統(tǒng)實(shí)驗(yàn)報(bào)告 學(xué) 院 計(jì)算機(jī)學(xué)院 專(zhuān) 業(yè) 計(jì)算機(jī)科學(xué)與技術(shù) 班 級(jí) 級(jí) 班 學(xué) 號(hào) 姓 名 指導(dǎo)教師 ( 2016 年 12 月) 實(shí)驗(yàn)__一__題目 數(shù)據(jù)庫(kù)及基本表的建立 實(shí)驗(yàn)__二__題目 查詢數(shù)據(jù)庫(kù)_ 實(shí)驗(yàn)__三__題目 創(chuàng)建和使用視圖、索引、存儲(chǔ)過(guò)程 實(shí)驗(yàn)__四 _題目 小型數(shù)據(jù)庫(kù)規(guī)劃設(shè)計(jì) 實(shí)驗(yàn)平臺(tái):SQL Sever 2005 實(shí)驗(yàn)題目 實(shí)驗(yàn)一 數(shù)據(jù)庫(kù)及基本表的建立 一、實(shí)驗(yàn)?zāi)康? 1、掌握SQL SERVER的查詢分析器和企業(yè)管理器的使用; 2、掌握創(chuàng)建數(shù)據(jù)庫(kù)和表的操作; 二、實(shí)驗(yàn)內(nèi)容和要求 1、分別使用SQL語(yǔ)句、企業(yè)管理器(Enterprise Manager)創(chuàng)建數(shù)據(jù)庫(kù); 2、使用SQL語(yǔ)句、企業(yè)管理器(Enterprise Manager)創(chuàng)建數(shù)據(jù)庫(kù)表; 三、實(shí)驗(yàn)主要儀器設(shè)備和材料 1.計(jì)算機(jī)及操作系統(tǒng):PC機(jī),Windows 2000/xp; 2.?dāng)?shù)據(jù)庫(kù)管理系統(tǒng):SQL sever 2000/2003/2005; 四、實(shí)驗(yàn)方法、步驟及結(jié)果測(cè)試 創(chuàng)建一個(gè)教學(xué)管理數(shù)據(jù)庫(kù)SC,其描述的信息有:學(xué)生信息、課程信息、教師信息、學(xué)生選課成績(jī)、授課信息、班級(jí)信息、系部信息、專(zhuān)業(yè)信息。 創(chuàng)建:student表(學(xué)生信息表)、course表(課程信息表)、teacher表(教師信息表)、student _course表(學(xué)生選課成績(jī)表)、teacher_course表(教師上課課表)等。 1、創(chuàng)建數(shù)據(jù)庫(kù): 確定數(shù)據(jù)庫(kù)名稱(chēng);數(shù)據(jù)庫(kù)用于學(xué)生管理,命名為SC 確定數(shù)據(jù)庫(kù)的位置;要求:數(shù)據(jù)文件和日志文件分別存儲(chǔ)在E盤(pán)自己的目錄下。 確定數(shù)據(jù)庫(kù)的大?。桓鶕?jù)實(shí)際的數(shù)據(jù)量確定數(shù)據(jù)文件的初始大小為30MB,日志文件的初始大小為3MB。 確定數(shù)據(jù)庫(kù)的增長(zhǎng);根據(jù)實(shí)際情況,確定數(shù)據(jù)文件按20%增長(zhǎng),日志文件按1MB增長(zhǎng)。 (1)、利用查詢分析器(Query Analyzer),使用SQL語(yǔ)句指定參數(shù)創(chuàng)建數(shù)據(jù)庫(kù); 實(shí)現(xiàn)代碼及截圖: SQL語(yǔ)句 CREATE DATABASE SC_3114006159 ON PRIMARY (NAME=SC_3114006159_DATA, FILENAME=E:\3114006159\SC_3114006159.mdf, SIZE=30, FILEGROWTH=20%) LOG ON (NAME=SC_3114006159_LOG, FILENAME=E:\3114006159\SC_3114006159.ldf, SIZE=3, FILEGROWTH=1) 查詢分析器執(zhí)行情況: SQL語(yǔ)句及執(zhí)行結(jié)果截圖顯示 2、創(chuàng)建基本表 利用查詢分析器,使用SQL語(yǔ)句方式創(chuàng)建方式將下面各表建立到教學(xué)管理數(shù)據(jù)庫(kù)中。 (1) 創(chuàng)建student表 字段名 代碼 類(lèi)型 約束 學(xué)號(hào) s_no char(8) 主鍵 姓名 sname char(8) 非空 性別 sex char(2) 出生日期 sbirthday Smalldatetime 學(xué)生所在院系編號(hào) dno char(6) 外鍵 專(zhuān)業(yè)代碼 spno char(8) 外鍵 班級(jí)編碼 class_no char(4) (2)創(chuàng)建Course表 字段名 代碼 類(lèi)型 約束 課程編號(hào) cno char(10) 主鍵 課程名稱(chēng) cname char(20) 非空 專(zhuān)業(yè)代碼 spno char(8) 外鍵 課程類(lèi)型編號(hào) ctno tinyint 理論學(xué)時(shí) lecture tinyint 實(shí)驗(yàn)學(xué)時(shí) experiment tinyint 開(kāi)課學(xué)期 semester tinyint 課程學(xué)分 credit tinyint (3)創(chuàng)建student _course表 字段名 代碼 類(lèi)型 約束 學(xué)號(hào) s_no char(8) 主鍵,與student表中s_no 外鍵關(guān)聯(lián),級(jí)聯(lián)刪除 上課編號(hào) tcid smallint 主鍵 學(xué)生成績(jī) score tinyint (4)創(chuàng)建teacher表 字段名 代碼 類(lèi)型 約束 教師編號(hào) t_no char(8) 主鍵 教師姓名 t_name char(8) 非空 性別 t_sex char(2) 出生日期 t_birthday smalldatetime 教師所在院系編號(hào) dno char(6) 外鍵 職稱(chēng) tech_title char(10) (5)創(chuàng)建系部表(department) 字段名 代碼 類(lèi)型 約束 院系編號(hào) dno char(6) 主鍵 院系名稱(chēng) dept_name char(20) 非空 院系負(fù)責(zé)人 header char(8) (6)創(chuàng)建專(zhuān)業(yè)信息表(speciality) 字段名 代碼 類(lèi)型 約束 專(zhuān)業(yè)代碼 spno char(8) 主鍵 院系編號(hào) dno char(6) 外鍵,非空 專(zhuān)業(yè)名稱(chēng) spname char(20) 非空 (7)創(chuàng)建teacher_course表 字段名 代碼 類(lèi)型 約束 上課編號(hào) tcid smallint 主鍵 教師編號(hào) t_no char(8) 外鍵 專(zhuān)業(yè)代碼 spno char(8) 外鍵 班級(jí)編碼 class_no char(4) 課程編號(hào) cno char(10) 非空,外鍵 學(xué)期 semester Char(6) 學(xué)年 schoolyear Char(10) (8)創(chuàng)建班級(jí)表(class) 字段名 代碼 類(lèi)型 約束 專(zhuān)業(yè)代碼 spno char(8) 主鍵,與 speciality 表中spno 外鍵關(guān)聯(lián), 班級(jí)編碼 class_no char(4) 主鍵, 班負(fù)責(zé)人 header char(8) 3、 查看各數(shù)據(jù)表之間的關(guān)系,生成數(shù)據(jù)庫(kù)關(guān)系圖。 生成數(shù)據(jù)庫(kù)關(guān)系圖截圖顯示 4、創(chuàng)建各表的實(shí)現(xiàn)代碼及截圖: SQL語(yǔ)句 USE SC_3114006159 GO CREATE TABLE student_3114006159 (s_no char(8)PRIMARY KEY, sname char(8) NOT NULL, sex char(2), sbirthday smalldatetime, dno char(6), spno char(8), class_no char(4) ); CREATE TABLE course_3114006159 (cno char(10) PRIMARY KEY, cname char(20) NOT NULL, spno char(8), ctno tinyint, lecture tinyint, experiment tinyint, semester tinyint, credit tinyint ); CREATE TABLE student_course_3114006159 (s_no char(8), tcid smallint, score tinyint, PRIMARY KEY(s_no,tcid) ); CREATE TABLE teacher_3114006159 (t_no char(8) PRIMARY KEY, t_name char(8) NOT NULL, t_sex char(2), t_birthday smalldatetime, dno char(6), tech_title char(10) ); CREATE TABLE deparment_3114006159 (dno char(6) PRIMARY KEY, dept_name char(20) NOT NULL, header char(8) ); CREATE TABLE speciality_3114006159 (spno char(8) PRIMARY KEY, dno char(6) NOT NULL, spname char(20) NOT NULL ); CREATE TABLE teacher_course_3114006159 (tcid smallint PRIMARY KEY, t_no char(8), spno char(8), class_no char(4), cno char(10) NOT NULL, semester char(6), schoolyear char(10) ); CREATE TABLE class_3114006159 (spno char(8), class_no char(4), header char(8), PRIMARY KEY(spno,class_no) ); ALTER TABLE student_3114006159 ADD FOREIGN KEY (dno) REFERENCES deparment_3114006159(dno); ALTER TABLE student_3114006159 ADD FOREIGN KEY (spno) REFERENCES speciality_3114006159(spno); ALTER TABLE course_3114006159 ADD FOREIGN KEY (spno) REFERENCES speciality_3114006159(spno); ALTER TABLE student_course_3114006159 ADD FOREIGN KEY (s_no) REFERENCES student_3114006159(s_no); ALTER TABLE teacher_3114006159 ADD FOREIGN KEY (dno) REFERENCES deparment_3114006159(dno); ALTER TABLE speciality_3114006159 ADD FOREIGN KEY (dno) REFERENCES deparment_3114006159 (dno); ALTER TABLE teacher_course_3114006159 ADD FOREIGN KEY (t_no) REFERENCES teacher_3114006159(t_no); ALTER TABLE teacher_course_3114006159 ADD FOREIGN KEY (spno) REFERENCES speciality_3114006159(spno); ALTER TABLE teacher_course_3114006159 ADD FOREIGN KEY (cno) REFERENCES course_3114006159(cno); ALTER TABLE class_3114006159 ADD FOREIGN KEY (spno) REFERENCES speciality_3114006159(spno); 查詢分析器執(zhí)行情況: SQL語(yǔ)句及執(zhí)行結(jié)果截圖顯示 5、利用查詢分析器修改上述各表。 (1)、用INSERT語(yǔ)句向各個(gè)表中插入數(shù)據(jù)錄入5 條記錄。錄入時(shí)注意體會(huì)外鍵約束。 實(shí)現(xiàn)代碼及截圖: 查詢分析器執(zhí)行情況: SQL語(yǔ)句及執(zhí)行結(jié)果顯示 insert into deparment_3114006159 values(659801,計(jì)算機(jī),周杰倫); insert into deparment_3114006159 values(659802,機(jī)電,陳奕迅); insert into deparment_3114006159 values(659803,外國(guó)語(yǔ),章子怡); insert into deparment_3114006159 values(659804,土木,梁朝偉); insert into deparment_3114006159 values(659805,環(huán)境,張國(guó)榮); insert into teacher_3114006159 values(65980101,劉德華,男,1975-03-25,659801,高級(jí)); insert into teacher_3114006159 values(65980201,周潤(rùn)發(fā),男,1964-09-24,659802,高級(jí)); insert into teacher_3114006159 values(65980301,張學(xué)友,男,1956-06-15,659803,高級(jí)); insert into teacher_3114006159 values(65980401,張曼玉,女,1965-04-21,659804,高級(jí)); insert into teacher_3114006159 values(65980501,陳坤,男,1988-03-02,659805,高級(jí)); insert into speciality_3114006159 values(65980110,659801,計(jì)算機(jī)科學(xué)與技術(shù)); insert into speciality_3114006159 values(65980210,659802,自動(dòng)化); insert into speciality_3114006159 values(65980310,659803,商務(wù)英語(yǔ)); insert into speciality_3114006159 values(65980410,659804,土木工程); insert into speciality_3114006159 values(65980510,659805,環(huán)境工程); insert into class_3114006159 values(65980110,1401,劉德華); insert into class_3114006159 values(65980210,1402,周潤(rùn)發(fā)); insert into class_3114006159 values(65980310,1403,張學(xué)友); insert into class_3114006159 values(65980410,1404,張曼玉); insert into class_3114006159 values(65980510,1405,陳坤); insert into course_3114006159 values(6598011001,數(shù)據(jù)庫(kù),65980110,1,48,12,1,2); insert into course_3114006159 values(6598021001,制圖,65980210,2,56,6,2,2); insert into course_3114006159 values(6598031001,口語(yǔ),65980310,3,48,0,1,4); insert into course_3114006159 values(6598041001,建筑學(xué),65980410,4,48,12,1,2); insert into course_3114006159 values(6598051001,基礎(chǔ)化學(xué),65980510,5,48,12,1,2); insert into teacher_course_3114006159 values(1,65980101,65980110,1401,6598011001,一學(xué)期,第二學(xué)年); insert into teacher_course_3114006159 values(2,65980201,65980210,1402,6598021001,一學(xué)期,第二學(xué)年); insert into teacher_course_3114006159 values(3,65980301,65980310,1403,6598031001,一學(xué)期,第二學(xué)年); insert into teacher_course_3114006159 values(4,65980401,65980410,1404,6598041001,一學(xué)期,第二學(xué)年); insert into teacher_course_3114006159 values(5,65980501,65980510,1405,6598051001,一學(xué)期,第二學(xué)年); insert into student_3114006159 values(31140001,王小波,男,1997-01-03,659801,65980110,1401); insert into student_3114006159 values(31140002,韓寒,男,1992-03-23,659802,65980210,1402); insert into student_3114006159 values(31140003,莫言,男,1997-06-15,659803,65980310,1403); insert into student_3114006159 values(31140004,三毛,女,1994-05-30,659804,65980410,1404); insert into student_3114006159 values(31140005,郭敬明,男,1995-12-03,659805,65980510,1405); insert into student_course_3114006159 values(31140001,1,96); insert into student_course_3114006159 values(31140002,3,67); insert into student_course_3114006159 values(31140003,2,91); insert into student_course_3114006159 values(31140004,4,89); insert into student_course_3114006159 values(31140005,5,96); 實(shí)驗(yàn)結(jié)果截圖顯示(插入數(shù)據(jù)的表格) 共8組(共8個(gè)表) (2)、用UPDATE語(yǔ)句更改student表中數(shù)據(jù); 實(shí)現(xiàn)代碼: use SC_3114006159 update student_3114006159 set sname=村上春樹(shù) where sname=莫言 student表更改前的內(nèi)容截圖顯示查詢分析 student表更改后的內(nèi)容截圖顯示 (3)、用DELETE語(yǔ)句刪除student表中數(shù)據(jù); 實(shí)現(xiàn)代碼: use SC_3114006159 delete from student_course_3114006159 where s_no in (select s_no from student_3114006159 where sname=郭敬明); delete from student_3114006159 where sname=郭敬明 student表更改前的內(nèi)容截圖顯示查詢分析 student表更改后的內(nèi)容截圖顯示 五、實(shí)驗(yàn)中出現(xiàn)的問(wèn)題及解決方案 在插入數(shù)據(jù)時(shí)沒(méi)注意外鍵約束,結(jié)果導(dǎo)致插入失敗,于是根據(jù)數(shù)據(jù)表關(guān)系圖先插入沒(méi)有外鍵約束的表,再根據(jù)外鍵約束關(guān)系按照一定順序插入表。在刪除student的元組時(shí),因?yàn)槠渲麈I被student_course表外鍵所參照,所以無(wú)法刪除,于是先刪除student_course表中的元組,再刪除student中的元組。 六、思考題 1、 說(shuō)明數(shù)據(jù)庫(kù)中的表和數(shù)據(jù)文件的關(guān)系。 答:表存儲(chǔ)于數(shù)據(jù)文件中,一個(gè)數(shù)據(jù)文件可以存儲(chǔ)多個(gè)表。 2、 數(shù)據(jù)庫(kù)中的日志文件能否單獨(dú)修改? 不能,SQL Server數(shù)據(jù)庫(kù)都有l(wèi)og日志文件,log日志文件記錄用戶對(duì)數(shù)據(jù)庫(kù)修改的操作,只有數(shù)據(jù)庫(kù)發(fā)生更改時(shí),日志文件才會(huì)發(fā)生更改,不能單獨(dú)更改。 3、 附加練習(xí)題.(代碼以及運(yùn)行結(jié)果采用截圖顯示) (1) 將計(jì)算機(jī)專(zhuān)業(yè)所有學(xué)生的數(shù)據(jù)庫(kù)原理的成績(jī)?cè)黾?0分 代碼以及運(yùn)行結(jié)果: (2) 刪除計(jì)算機(jī)專(zhuān)業(yè)所有學(xué)生的數(shù)據(jù)庫(kù)原理的選修信息 代碼以及運(yùn)行結(jié)果: (3) 為speciality的spname添加唯一約束 代碼以及運(yùn)行結(jié)果: (4) 為student_course的score設(shè)置檢查約束 代碼以及運(yùn)行結(jié)果: 實(shí)驗(yàn)題目 實(shí)驗(yàn)二 查詢數(shù)據(jù)庫(kù) 一、實(shí)驗(yàn)?zāi)康? 熟悉SQL語(yǔ)句的基本使用方法,學(xué)習(xí)如何編寫(xiě)SQL語(yǔ)句來(lái)實(shí)現(xiàn)查詢 1、掌握基本的SELECT查詢及其相關(guān)子句的使用; 2、掌握復(fù)雜的SELECT查詢,如多表查詢、子查詢、連接查詢和嵌套查詢。 二、實(shí)驗(yàn)內(nèi)容和要求 使用SQL查詢分析器查詢數(shù)據(jù),練習(xí)查詢語(yǔ)句的使用,掌握SELECT 語(yǔ)句的完整結(jié)構(gòu),包括簡(jiǎn)單查詢、嵌套查詢、連接查詢等基本實(shí)現(xiàn)方法,掌握存儲(chǔ)查詢結(jié)果的方法,體會(huì)各種查詢的異同及相互之間的轉(zhuǎn)換,體會(huì)各種查詢的執(zhí)行過(guò)程,為簡(jiǎn)單綜合應(yīng)用打下良好的基礎(chǔ)。 三、實(shí)驗(yàn)主要儀器設(shè)備和材料 1.計(jì)算機(jī)及操作系統(tǒng):PC機(jī),Windows 2000/xp; 2.?dāng)?shù)據(jù)庫(kù)管理系統(tǒng):SQL sever 2000/2003/2005; 四、實(shí)驗(yàn)方法、步驟及結(jié)果測(cè)試 要求用SELECT完成以下查詢, 1、對(duì)實(shí)驗(yàn)一建立的數(shù)據(jù)庫(kù)表進(jìn)行查詢 簡(jiǎn)單查詢: (1)、查詢?nèi)繉W(xué)生的學(xué)號(hào)、姓名、性別和出身年月日。 實(shí)現(xiàn)代碼及查詢結(jié)果截圖:格式如下 查詢分析器執(zhí)行情況: SQL語(yǔ)句及執(zhí)行結(jié)果顯示 use SC_3114006159 select s_no,sname,sex,sbirthday from student_3114006159 查詢結(jié)果截圖顯示 (2)、查詢?nèi)w學(xué)生的學(xué)號(hào)、姓名和年齡 實(shí)現(xiàn)代碼及查詢結(jié)果截圖: use SC_3114006159 select s_no,sname,sex,year(getdate())-year(sbirthday) from student_3114006159 (3)、查詢?cè)合稻幪?hào)為‘510000’(計(jì)算機(jī)學(xué)院)的全部學(xué)生的學(xué)號(hào)、姓名、性別和出身年月日。 實(shí)現(xiàn)代碼及查詢結(jié)果截圖: use SC_3114006159 select s_no,sname,sex,sbirthday from student_3114006159 where dno=659801 (4)、查詢“計(jì)算機(jī)科學(xué)與技術(shù)”專(zhuān)業(yè)(專(zhuān)業(yè)代碼為‘080605’)并且班級(jí)代碼為‘0201’的學(xué)生的學(xué)號(hào)、姓名和出生日期。 實(shí)現(xiàn)代碼及查詢結(jié)果截圖: use SC_3114006159 select s_no,sname,sbirthday from student_3114006159 where spno=65980110 and class_no=1401 (5)、查詢?cè)凇?983/01/10’以后出生的計(jì)算機(jī)學(xué)院(院系編號(hào)為‘510000’)學(xué)生的學(xué)號(hào)、姓名、性別和出身年月日。 實(shí)現(xiàn)代碼及查詢結(jié)果截圖: use SC_3114006159 select s_no,sname,sex,sbirthday from student_3114006159 where dno=659801and sbirthday>1983-01-10 (6)、查詢?nèi)繉W(xué)生的學(xué)號(hào)、姓名、性別和出身日期結(jié)果按照出生日期的升序排列。 實(shí)現(xiàn)代碼及查詢結(jié)果截圖: use SC_3114006159 select s_no,sname,sex,sbirthday from student_3114006159 order by sbirthday 連接查詢: (1)、查詢?nèi)繉W(xué)生的學(xué)號(hào)、姓名、性別、所在院系名稱(chēng)和專(zhuān)業(yè)名稱(chēng) 實(shí)現(xiàn)代碼及查詢結(jié)果截圖: use SC_3114006159 select s_no,sname,sex,dept_name,spname from student_3114006159,deparment_3114006159,speciality_3114006159 where student_3114006159.dno=deparment_3114006159.dno and deparment_3114006159.dno=speciality_3114006159.dno (2)、查詢選修了課程1(上課編號(hào))的學(xué)生的學(xué)號(hào)、姓名、專(zhuān)業(yè)名稱(chēng)和這門(mén)課的成績(jī) 實(shí)現(xiàn)代碼及查詢結(jié)果截圖: use SC_3114006159 select student_3114006159.s_no,sname,spname,score from student_3114006159,student_course_3114006159,speciality_3114006159 where student_3114006159.s_no=student_course_3114006159.s_no and student_3114006159.spno=speciality_3114006159.spno and tcid=1 (3)、查詢學(xué)生不及格的情況列出不及格學(xué)生的學(xué)號(hào)、姓名和不及格的課程名稱(chēng)。 實(shí)現(xiàn)代碼及查詢結(jié)果截圖: use SC_3114006159 select student_3114006159.s_no,sname,cname from student_3114006159,student_course_3114006159,course_3114006159 where student_3114006159.s_no=student_course_3114006159.s_no and student_course_3114006159.tcid=course_3114006159.ctno and score<60 嵌套查詢: (1)、查詢沒(méi)有選修了課程1的學(xué)生,列出學(xué)生的學(xué)號(hào)和姓名。 實(shí)現(xiàn)代碼及查詢結(jié)果截圖: use SC_3114006159 select distinct student_3114006159.s_no,sname from student_3114006159,student_course_3114006159 where student_3114006159.s_no not in( select s_no from student_course_3114006159 where tcid=1) (2)、查詢每門(mén)課都是80分以上的學(xué)生的學(xué)號(hào)與姓名。 實(shí)現(xiàn)代碼及查詢結(jié)果截圖: use SC_3114006159 select distinct student_3114006159.s_no,sname from student_3114006159 where not exists( select * from student_course_3114006159 where student_3114006159.s_no=student_course_3114006159.s_no and score<80) 2、選用Northwind數(shù)據(jù)庫(kù)進(jìn)行查詢 (1)、對(duì)NothWind. Products表進(jìn)行簡(jiǎn)單查詢;在查詢分析器在窗口下用SELECT語(yǔ)句 以下部分查詢結(jié)果截圖由于表格過(guò)長(zhǎng),所以只截取了部分表格內(nèi)容,無(wú)法完整截圖整個(gè)表格。 完成單表查詢: 查詢所有Products的詳細(xì)記錄; 實(shí)現(xiàn)代碼及查詢結(jié)果截圖: use Northwind select * from Products 查詢單價(jià)(UnitPrice)小于20的Products; 實(shí)現(xiàn)代碼及查詢結(jié)果截圖: use Northwind select * from Products where UnitPrice<20 查詢Products中最高單價(jià)(UnitPrice)是多少; 實(shí)現(xiàn)代碼及查詢結(jié)果截圖: use Northwind select max(UnitPrice) from Products (2)、在查詢分析器在窗口下用SELECT語(yǔ)句完成連接(嵌套)查詢: 查詢所有被訂購(gòu)過(guò)得Products的ProductsID和ProductName; 實(shí)現(xiàn)代碼及查詢結(jié)果截圖: use Northwind select distinct Products.ProductID,Products.ProductName from Products,[Order Details] where Products.ProductID=[Order Details].ProductID 查詢所有被CustomerID為AROUT客和訂購(gòu)過(guò)的ProductsID和ProductName; 實(shí)現(xiàn)代碼及查詢結(jié)果截圖: use Northwind select Products.ProductID,Products.ProductName from Products,[Order Details],Orders where Products.ProductID=[Order Details].ProductID and [Order Details].OrderID=Orders.OrderID and CustomerID=AROUT 查詢所有被CustomerID為AROUT客和訂購(gòu)過(guò),且單價(jià)在20 以上的ProductsID 和ProductName; 實(shí)現(xiàn)代碼及查詢結(jié)果截圖: use Northwind select Products.ProductID,Products.ProductName from Products,[Order Details],Orders where Products.ProductID=[Order Details].ProductID and [Order Details].OrderID=Orders.OrderID and CustomerID=AROUT and Products.UnitPrice>20 查詢Products中單價(jià)(UnitPrice)最高的Products的資料; 實(shí)現(xiàn)代碼及查詢結(jié)果截圖: use Northwind select * from Products where UnitPrice>=all (select UnitPrice from Products); 五、實(shí)驗(yàn)中出現(xiàn)的問(wèn)題及解決方案 六、思考題 1、 連接查詢分哪幾類(lèi)?各有什么特點(diǎn)? 答:連接查詢可分為: 1. 等值連接與非等值連接:當(dāng)where子句中的連接運(yùn)算符為=時(shí),稱(chēng)為等值連接,使用其它運(yùn)算符為非等值連接。 2. 自然連接:在等值連接中把目標(biāo)列中重復(fù)的屬性列去掉則為自然連接。 3. 自身連接:一個(gè)表與自身連接,稱(chēng)為表的自身連接。 4. 外連接:兩表連接時(shí)不存在公共屬性上值相等的元組也保存在結(jié)果關(guān)系中,而在其他屬性上填空值(NULL),那么連接就叫外連接。 5. 多表連接:兩個(gè)表以上連接為多表連接。 2、 進(jìn)行連接查詢時(shí)應(yīng)注意哪些問(wèn)題? 答:連接查詢時(shí)應(yīng)注意選擇正確的連接謂詞。 實(shí)驗(yàn)題目 實(shí)驗(yàn)三 創(chuàng)建和使用視圖、索引、存儲(chǔ)過(guò)程 一、實(shí)驗(yàn)?zāi)康? 1、理解視圖、索引、存儲(chǔ)過(guò)程的定義、索引、存儲(chǔ)過(guò)程的優(yōu)點(diǎn)與、索引、存儲(chǔ)過(guò)程的工作原理; 2、掌握在查詢分析器和企業(yè)管理器中創(chuàng)建、修改及刪除視圖、索引、存儲(chǔ)過(guò)程; 3、掌握創(chuàng)建視圖、索引、存儲(chǔ)過(guò)程的SQL語(yǔ)句的用法;并能夠熟練利用視圖向表中插入、刪除和修改數(shù)據(jù)。 4、掌握使用視圖來(lái)查詢數(shù)據(jù)。 二、實(shí)驗(yàn)主要儀器設(shè)備和材料 1.計(jì)算機(jī)及操作系統(tǒng):PC機(jī),Windows; 2.?dāng)?shù)據(jù)庫(kù)管理系統(tǒng):SQL Server 2005; 三、實(shí)驗(yàn)方法、步驟及結(jié)果測(cè)試 (一)、視圖 1、建立“計(jì)算機(jī)學(xué)院”的學(xué)生基本情況視圖ies_student_view,該視圖包括計(jì)算機(jī)學(xué)院所有學(xué)生的學(xué)號(hào)、姓名、性別、出身年月、專(zhuān)業(yè)名稱(chēng)。 2、執(zhí)行ies_student_view視圖并觀察結(jié)果。 3、建立課程1(上課編號(hào))的學(xué)生名冊(cè)的視圖,該名冊(cè)包括學(xué)生的學(xué)號(hào)、姓名、專(zhuān)業(yè)名稱(chēng)和這門(mén)課的成績(jī);并查詢結(jié)果。 4、建立統(tǒng)計(jì)不及格情況的視圖,列出不及格學(xué)生的學(xué)號(hào)、姓名和不及格的課程代碼; 5、執(zhí)行視圖并觀察結(jié)果。 6、修改視圖ies_student_view,使該視圖包括所有學(xué)生的學(xué)號(hào)、姓名、性別、出身年月、學(xué)院名稱(chēng)、專(zhuān)業(yè)名稱(chēng)。 7、執(zhí)行ies_student_view視圖并觀察結(jié)果。 8、刪除視圖ies_student_view。并查詢結(jié)果。 記錄上述實(shí)驗(yàn)過(guò)程并截圖說(shuō)明。 查詢分析器執(zhí)行情況: 創(chuàng)建視圖的SQL語(yǔ)句及執(zhí)行結(jié)果顯示 1 查詢視圖SQL語(yǔ)句及執(zhí)行結(jié)果截圖 2 查詢分析器執(zhí)行情況: 創(chuàng)建視圖的SQL語(yǔ)句及執(zhí)行結(jié)果顯示 3、 4、 查詢視圖SQL語(yǔ)句及執(zhí)行結(jié)果截圖 5、 查詢分析器執(zhí)行情況: 修改視圖的SQL語(yǔ)句及執(zhí)行結(jié)果顯示 6、 查詢視圖SQL語(yǔ)句及執(zhí)行結(jié)果截圖 7、 查詢分析器執(zhí)行情況: 刪除視圖的SQL語(yǔ)句及執(zhí)行結(jié)果顯示 8、 查詢視圖SQL語(yǔ)句及執(zhí)行結(jié)果截圖 (二)、索引 在student_course表(學(xué)生選課表)的學(xué)生學(xué)號(hào)(sno)列上創(chuàng)建索引sc_sno_index 查詢分析器執(zhí)行情況: 創(chuàng)建索引的SQL語(yǔ)句及執(zhí)行結(jié)果顯示 (三)、存儲(chǔ)過(guò)程 題目(1)創(chuàng)建存儲(chǔ)過(guò)程list_student_department,該存儲(chǔ)過(guò)程接收學(xué)院代碼作為輸入?yún)?shù),列出數(shù)據(jù)庫(kù)sc中某個(gè)院系學(xué)生的全部信息。 查詢分析器執(zhí)行情況: SQL語(yǔ)句 CREATE PROCEDURE list_student_department_3114006159 @indno char(6) AS SELECT * FROM student_3114006159 WHERE dno=@indno 執(zhí)行結(jié)果截圖顯示 題目(2)使用SQL語(yǔ)句執(zhí)行存儲(chǔ)過(guò)程list_student_department 查詢分析器執(zhí)行情況: SQL語(yǔ)句 EXEC list_student_department_3114006159 @indno=659801執(zhí)行結(jié)果截圖顯示 題目(3)編寫(xiě)存儲(chǔ)過(guò)程將某班選修某門(mén)課程的所有學(xué)生的學(xué)號(hào)和上課編號(hào)插入到student_course表中 查詢分析器執(zhí)行情況: SQL語(yǔ)句 CREATE PROCEDURE insert_student_course_3114006159 (@cno char(8),@class_no char(4),@tcid integer) AS INSERT INTO student_course_3114006159(tcid,s_no) SELECT @tcid,s_no FROM student_3114006159,course_3114006159 WHERE cno=@cno AND class_no=@class_no AND s_no not IN(SELECT s_no FROM student_course_3114006159 WHERE tcid=@tcid) 執(zhí)行結(jié)果截圖顯示 題目(4)使用SQL語(yǔ)句執(zhí)行(3)創(chuàng)建的存儲(chǔ)過(guò)程 查詢分析器執(zhí)行情況: SQL語(yǔ)句 EXEC insert_student_course_3114006159 @cno=6598011001,@class_no=1401,@tcid=1 執(zhí)行結(jié)果截圖顯示 題目(5)使用SQL語(yǔ)句查看(3)創(chuàng)建的存儲(chǔ)過(guò)程代碼 查詢分析器執(zhí)行情況: SQL語(yǔ)句 EXEC sp_helptext list_student_department_3114006159 執(zhí)行結(jié)果截圖顯示 題目(6)使用SQL語(yǔ)句刪除一個(gè)前面建立的存儲(chǔ)過(guò)程 查詢分析器執(zhí)行情況: SQL語(yǔ)句 DROP PROCEDURE insert_student_course_3114006159 執(zhí)行結(jié)果截圖顯示 四、實(shí)驗(yàn)中出現(xiàn)的問(wèn)題及解決方案 無(wú) 五、思考題 1、視圖更新的優(yōu)點(diǎn) 答:1.視圖可以簡(jiǎn)化用戶的操作。 2.視圖能使用戶能以多種角度看待同一數(shù)據(jù)。 3.視圖對(duì)重構(gòu)數(shù)據(jù)提供了一定程度的邏輯獨(dú)立性。 4.視圖能夠?qū)C(jī)密數(shù)據(jù)提供安全保護(hù)。 5.適當(dāng)利用視圖可以更加清晰的表達(dá)查詢。 2、哪些視圖是可以更新的?哪些視圖是不可以更新的?針對(duì)實(shí)驗(yàn)舉例說(shuō)明。 答:一般的,行列子集視圖時(shí)可更新的,除行列子集視圖外,理論上有些視圖也是可以更新的,但它們的確切特征還是尚待研究的課題。還有其他的視圖從理論上就是不可更新的,比如,視圖的屬性來(lái)自聚集函數(shù)、表達(dá)式,則該視圖肯定是不可更新的。在上述實(shí)驗(yàn)中 ies_student_view_3114006159視圖是可以更新的,其視圖更新既是對(duì)student_3114006159表的更新。 3、什么是存儲(chǔ)過(guò)程,什么是觸發(fā)器,兩者有什么區(qū)別? 答:觸發(fā)器與存儲(chǔ)過(guò)程可以說(shuō)是非常相似,可以說(shuō)是一種變種的存儲(chǔ)過(guò)程,觸發(fā)器和存儲(chǔ)過(guò)程一樣都是SQL語(yǔ)句集,通常通過(guò)創(chuàng)建觸發(fā)器來(lái)強(qiáng)制實(shí)現(xiàn)不同表中的邏輯相關(guān)數(shù)據(jù)的引用完整性和一致性。由于用戶不能繞過(guò)觸發(fā)器,所以可以用它來(lái)強(qiáng)制實(shí)施復(fù)雜的業(yè)務(wù)規(guī)則,以確保數(shù)據(jù)的完整性。觸發(fā)器不同于存儲(chǔ)過(guò)程,觸發(fā)器主要是通過(guò)事件執(zhí)行觸發(fā)而被執(zhí)行的,而存儲(chǔ)過(guò)程可以通過(guò)存儲(chǔ)過(guò)程名稱(chēng)名字而直接調(diào)用 4、teacher_course表中的class_no是否是外碼?請(qǐng)說(shuō)明判斷的理由。 答:不是外碼,因?yàn)閏lass_no并不是其它表的主鍵,也不包含外鍵,所以它不是外碼。 5、teacher_course表中的class_no應(yīng)該與class表中的class_no建立對(duì)應(yīng)關(guān)系,即 第一、當(dāng)向teacher_course表中插入一條元組時(shí),必須保證class_no是class表中的class_no; 第二、當(dāng)刪除或修改class表中的class_no時(shí),teacher_course表中的class_no也應(yīng)該隨之變化或不允許變化。 請(qǐng)用觸發(fā)器完成上述要求。 第一: 第二: 實(shí)驗(yàn)題目 實(shí)驗(yàn)四 小型數(shù)據(jù)庫(kù)規(guī)劃設(shè)計(jì) 一、 實(shí)驗(yàn)?zāi)康? 學(xué)習(xí)數(shù)據(jù)庫(kù)原理及應(yīng)用目的就是能創(chuàng)建和管理一個(gè)真實(shí)的數(shù)據(jù)庫(kù),通過(guò)規(guī)劃設(shè)計(jì)一個(gè)小型數(shù)據(jù)庫(kù)系統(tǒng)。讓學(xué)生掌握數(shù)據(jù)庫(kù)規(guī)劃設(shè)計(jì)的基本技術(shù),熟悉數(shù)據(jù)庫(kù)的設(shè)計(jì)的基本方法和步驟,明白數(shù)據(jù)庫(kù)設(shè)計(jì)各階段的任務(wù),加深對(duì)數(shù)據(jù)庫(kù)系統(tǒng)概念和特點(diǎn)的理解。 二、 實(shí)驗(yàn)內(nèi)容和要求 根據(jù)你熟悉的實(shí)際情況,選一個(gè)小型的數(shù)據(jù)庫(kù)應(yīng)用項(xiàng)目,銷(xiāo)售管理系統(tǒng),進(jìn)行系統(tǒng)分析和數(shù)據(jù)庫(kù)設(shè)計(jì)。 要求: 1、規(guī)劃設(shè)計(jì)一個(gè)小型系統(tǒng)的數(shù)據(jù)庫(kù),按照給定要求,對(duì)各設(shè)計(jì)階段進(jìn)行描述,要求給出數(shù)據(jù)庫(kù)設(shè)計(jì)的E-R圖,并將E-R圖轉(zhuǎn)換成相應(yīng)的模型,編制SQL命令腳本。 2、要求:數(shù)據(jù)庫(kù)結(jié)構(gòu)嚴(yán)謹(jǐn)、基本表及屬性合理、各種約束條件正確。 3、涉及的內(nèi)容或知識(shí)點(diǎn):數(shù)據(jù)庫(kù)設(shè)計(jì)的需求分析、數(shù)據(jù)模型、關(guān)系規(guī)范化理論。 4、采用的方法和手段:設(shè)計(jì)數(shù)據(jù)模型、進(jìn)行關(guān)系規(guī)范化處理和用軟件實(shí)現(xiàn)數(shù)據(jù)庫(kù)的構(gòu)建。 三、 實(shí)驗(yàn)主要儀器設(shè)備和材料 1.計(jì)算機(jī)及操作系統(tǒng):PC機(jī),Windows XP; 2.?dāng)?shù)據(jù)庫(kù)管理系統(tǒng):SQL sever 2000/2003/2005 四、 實(shí)驗(yàn)方法、步驟及結(jié)構(gòu)測(cè)試 (一)、數(shù)據(jù)庫(kù)設(shè)計(jì) 1、銷(xiāo)售管理系統(tǒng)數(shù)據(jù)庫(kù)包括客戶數(shù)據(jù)、商品數(shù)據(jù)和訂單數(shù)據(jù)。 2、確定銷(xiāo)售管理系統(tǒng)中的實(shí)體及其屬性 3、建立銷(xiāo)售管理系統(tǒng)的E-R圖 4、設(shè)計(jì)銷(xiāo)售管理系統(tǒng)數(shù)據(jù)庫(kù) Sales 5、設(shè)計(jì)customer表(客戶表)、supplier表(供應(yīng)商表)、goods表(商品信息表)、orader表里(訂單表)、creditgrade表(信譽(yù)等級(jí)表)和goodstype表(商品類(lèi)型表)的結(jié)構(gòu)。 6、確定以上各表的關(guān)鍵字及字段數(shù)據(jù)類(lèi)型。 (二)、創(chuàng)建數(shù)據(jù)庫(kù)和表 1、創(chuàng)建Sales數(shù)據(jù)庫(kù) 2、創(chuàng)建customer表(客戶表)、supplier表(供應(yīng)商表)、goods表(商品信息表)、orader表里(訂單表)、creditgrade表(信譽(yù)等級(jí)表)和goodstype表(商品類(lèi)型表) 3、分別向以上各表輸入入數(shù)據(jù) (三)、設(shè)計(jì)數(shù)據(jù)完整性 1、定義customer表(客戶表)、supplier表(供應(yīng)商表)、goods表(商品信息表)、order表里(訂單表)、creditgrade表(信譽(yù)等級(jí)表)和goodstype表(商品類(lèi)型表)的主鍵 2、定義以上各表的外鍵約束 3、定義唯一性約束 (四)、創(chuàng)建和使用視圖 1、創(chuàng)建一個(gè)包含廣州客戶信息的視圖customer_guangzhou 2、創(chuàng)建一個(gè)視圖ordersum_goods,其中的內(nèi)容是每種商品的名稱(chēng)和每種商品的訂單金額的總和。 (五)、創(chuàng)建和執(zhí)行存儲(chǔ)過(guò)程 1、創(chuàng)建一個(gè)存儲(chǔ)過(guò)程proc_hub,用來(lái)查看“hub”商品的所有訂貨情況 2、創(chuàng)建一個(gè)帶參數(shù)的存儲(chǔ)過(guò)程proc_gooods,參數(shù)為商品名稱(chēng),通過(guò)該存儲(chǔ)過(guò)程可查看任何指定商品訂單信息。 五、實(shí)驗(yàn)報(bào)告要求 1、 建立系統(tǒng)的E-R圖 2、列出設(shè)計(jì)的數(shù)據(jù)庫(kù)表 customer表: 字段名 代碼 類(lèi)型 約束 姓名 cname char(8) 非空 客戶編號(hào) cno char(6) 主鍵 地區(qū) cregion char(10) 非空 信譽(yù)等級(jí) cgrade int 外鍵 supplier表: 字段名 代碼 類(lèi)型 約束 供應(yīng)商名稱(chēng) sname char(10) 非空 供應(yīng)商編號(hào) sno char(8) 主鍵 goods表: 字段名 代碼 類(lèi)型 約束 商品名稱(chēng) gname char(20) 非空 商品編號(hào) gno char(8) 主鍵 商品類(lèi)型編號(hào) gtype_no char(10) 外鍵 供應(yīng)商編號(hào) sno char(8) 外鍵 價(jià)格 gprice int 大于0 order表: 字段名 代碼 類(lèi)型 約束 訂單號(hào) order_no char(10) 主鍵 客戶編號(hào) cno char(6) 外鍵 order_goods表: 字段名 代碼 類(lèi)型 約束 訂單號(hào) order_no char(10) 主鍵,外鍵 商品編號(hào) gno char(8) 主鍵,外鍵 商品數(shù)量 goods_num int 大于0 總金額 amount int 等于數(shù)量乘單價(jià) creditgrade表: 字段名 代碼 類(lèi)型 約束 等級(jí)名稱(chēng) grade_name char(8) 非空 信譽(yù)等級(jí) cgrade int 主鍵 goodstype表: 字段名 代碼 類(lèi)型 約束 商品類(lèi)型名 gtype_name char(10) 非空 類(lèi)型編號(hào) gtype_no char(10) 主鍵 2、 生成數(shù)據(jù)庫(kù)關(guān)系圖 3、 查詢customer_guangzhou視圖,獲得廣州客戶信息。(截圖顯示) 5、查詢ordersum_goods視圖,獲得每種商品的名稱(chēng)和每種商品的訂單金額的總和。(截圖顯示) 6、執(zhí)行存儲(chǔ)過(guò)程并觀察結(jié)果。(截圖顯示) 7、代碼附錄(列出所有的SQL語(yǔ)句,并標(biāo)注每段代碼的功能,宋體五號(hào)字,分欄打?。? //創(chuàng)建數(shù)據(jù)庫(kù) CREATE DATABASE SALES_3114006159 ON PRIMARY (NAME=- 1.請(qǐng)仔細(xì)閱讀文檔,確保文檔完整性,對(duì)于不預(yù)覽、不比對(duì)內(nèi)容而直接下載帶來(lái)的問(wèn)題本站不予受理。
- 2.下載的文檔,不會(huì)出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請(qǐng)點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
9.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁(yè)顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開(kāi)word文檔。
- 特殊限制:
部分文檔作品中含有的國(guó)旗、國(guó)徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對(duì)作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 數(shù)據(jù)庫(kù) 系統(tǒng) 實(shí)驗(yàn) 報(bào)告 廣東工業(yè)大學(xué)
鏈接地址:http://www.820124.com/p-6491122.html