《數(shù)據(jù)庫原理與應用》實驗報告.doc
《《數(shù)據(jù)庫原理與應用》實驗報告.doc》由會員分享,可在線閱讀,更多相關《《數(shù)據(jù)庫原理與應用》實驗報告.doc(22頁珍藏版)》請在裝配圖網(wǎng)上搜索。
河南財經(jīng)政法大學 實驗報告 計算機與信息工程學院 2013—2014學年第2學期 專 業(yè): 信息管理與信息系統(tǒng) 課程名稱: 數(shù)據(jù)庫原理與應用 班 級: 120705 姓 名: 學號: 指導教師: 趙靜玉 實驗一:熟悉SQL Server數(shù)據(jù)庫管理系統(tǒng) 實驗目的 1. 了解SQL Server系統(tǒng); 2. 熟悉SQL Server服務的啟動和停止; 3. 熟悉SQL Server管理器/企業(yè)管理器的使用。 實驗內容 1. 啟動SQL Server服務; 2. 啟動SQL Server管理器/企業(yè)管理器,熟悉其界面環(huán)境; 3. 停止SQL Server服務。 實驗數(shù)據(jù)記錄及分析(或程序及運行結果) 思考: 1. 啟動SQL Server服務的方法有哪幾種?怎樣實現(xiàn)該服務的自動啟動? 2. 假如你是一個SQL Server數(shù)據(jù)庫的管理員,為了釋放一部分存儲空間,你可以刪除哪些數(shù)據(jù)庫?為什么? 評語: 日期: 年 月 日 實驗二:數(shù)據(jù)庫操作 實驗目的 1. 了解數(shù)據(jù)庫的結構; 2. 學會使用圖形化的方法創(chuàng)建、修改、刪除數(shù)據(jù)庫; 3. 學會使用T-SQL命令創(chuàng)建、修改、刪除數(shù)據(jù)庫。 實驗內容 1. 啟動SQL Server 服務; 2. 啟動SQL Server管理器/企業(yè)管理器,利用圖形化的方法創(chuàng)建數(shù)據(jù)庫student(如下表所示); 3. 利用圖形化的方法修改數(shù)據(jù)庫student,增加一個數(shù)據(jù)文件到新建的文件組stufile中,其中:邏輯文件名為student_data1,物理文件名為D:\DATA\student_data1.ndf,初始大小為50MB,以30%的速度增長,最大文件大小為200MB; 4. 利用圖形化的方法刪除數(shù)據(jù)庫student; 5. 利用T-SQL命令重復上述工作。 選項 參數(shù) 數(shù)據(jù)庫名稱 student 數(shù) 據(jù) 文 件 邏輯文件名 student_data 物理文件名 C:\DATA\student_data.mdf 文件組 PRIMARY 初始大小 3MB 最大文件大小 不受限制 增量 1MB 日 志 文 件 邏輯文件名 student_log 物理文件名 C:\DATA\student_log.ldf 初始大小 1MB 最大文件大小 20MB 增量 10% 實驗數(shù)據(jù)記錄及分析(或程序及運行結果) 思考: 1. 你的老板要求你創(chuàng)建一個初始大小為20G的數(shù)據(jù)庫,但是你現(xiàn)在的硬盤上沒有一個這么大容量的分區(qū),只有幾個大小為8G的分區(qū),請問,你該如何完成這個任務? 2. 你想創(chuàng)建一個初始大小為2MB的數(shù)據(jù)庫,但是你卻發(fā)現(xiàn)你創(chuàng)建的數(shù)據(jù)庫的初始大小是5MB,而且不能小于這個值,請問是什么原因? 評語: 日期: 年 月 日 實驗三:數(shù)據(jù)表操作 實驗目的 1. 了解表的結構和SQL Server的基本數(shù)據(jù)類型; 2. 學會使用圖形化的方法創(chuàng)建、修改、刪除數(shù)據(jù)表; 3. 學會使用T-SQL命令創(chuàng)建、修改、刪除數(shù)據(jù)表; 4. 學會創(chuàng)建各種約束。 實驗內容 1. 啟動SQL Server服務; 2. 啟動SQL Server管理器/企業(yè)管理器,利用圖形化的方法在數(shù)據(jù)庫student中創(chuàng)建學生信息表stu_info、課程信息表course_info和學生成績表stu_grade,其結構如下表所示; 3. 利用圖形化的方法對數(shù)據(jù)表進行如下修改: l 在表stu_info中,增加備注字段,字段名memo,字段類型nvarchar,字段長度200; l 在表course_info中,對于字段course_name設置UNIQUE約束; l 在表stu_grade中,對于字段grade設置CHECK約束,其取值在0到100之間; l 在表stu_grade中,對于字段stu_id設置FOREIGN KEY約束,其取值參考表stu_info中stu_id字段的取值; 4. 利用圖形化的方法刪除表stu_info、course_info、stu_grade; 5. 利用CREATE TABLE命令在數(shù)據(jù)庫student中創(chuàng)建學生信息表stu_info、課程信息表course_info和學生成績表stu_grade,其結構如下表所示; 6. 利用ALTER TABLE命令對表進行如下修改: l 在表stu_info中,增加身份證號碼字段,字段名code,字段類型char,字段長度18,不允許為空; l 在表stu_info中,對于字段code設置UNIQUE約束; l 在表stu_info中,刪除身份證號碼字段code; l 在表stu_info中,對于字段sex設置CHECK約束,其取值僅為“男”或 “女”; l 在表course_info中,增加先行課字段,字段名pre_course_id,其取值參考course_id字段的取值; 7. 利用DROP TABLE命令刪除表stu_info; 8. 利用圖形化的方法向以上表中輸入一些數(shù)據(jù),體會約束的作用。 學生信息表(stu_info) 列名 數(shù)據(jù)類型 大小 小數(shù)位 是否為空 默認值 約束 含義 stu_id char 10 否 主鍵 學號 name nvarchar 20 否 姓名 birthday date 生日 sex nchar 2 男 性別 address nvarchar 20 籍貫 mark int 入學成績 major nvarchar 20 專業(yè) sdept nvarchar 20 院系 課程信息表(stu_info) 列名 數(shù)據(jù)類型 大小 小數(shù)位 是否為空 默認值 約束 含義 course_id char 3 否 主鍵 課程編號 course_name nvarchar 20 否 課程名 course_type nvarchar 20 考試 課程類型 course_mark int 課程學分 學生成績表(stu_grade) 列名 數(shù)據(jù)類型 大小 小數(shù)位 是否為空 默認值 約束 含義 stu_id char 10 否 主鍵 學號 course_id char 3 否 主鍵外鍵 課程編號 grade int 成績 實驗數(shù)據(jù)記錄及分析(或程序及運行結果) 思考: 1. 創(chuàng)建和刪除表stu_info、course_info和stu_grade在順序上分別有什么樣的要求? 2. 如何為表增加不允許為空的字段? 3. 什么樣的字段不允許刪除?如何才能刪除之? 評語: 日期: 年 月 日 實驗四:數(shù)據(jù)的插入、修改和刪除 實驗目的 1. 學會使用圖形化的方法對表中數(shù)據(jù)進行插入、修改和刪除; 2. 學會使用T-SQL命令對對表中數(shù)據(jù)進行插入、修改和刪除; 3. 了解數(shù)據(jù)在插入、修改和刪除時要注意數(shù)據(jù)的完整性。 實驗內容 1. 啟動SQL Server服務; 2. 啟動SQL Server管理器/企業(yè)管理器,利用圖形化的方法向學生信息表stu_info、課程信息表course_info和學生成績表stu_grade中添加數(shù)據(jù),其數(shù)據(jù)內容參考下表。 3. 利用圖形化的方法對表數(shù)據(jù)進行如下修改: l 在表stu_info中,將學號(stu_id)為“2007070101”同學的籍貫(address)改為“河南洛陽”; l 在表stu_grade中,將成績(grade)小于60分的所有同學成績增加10%; 4. 利用圖形化的方法刪除數(shù)據(jù)表stu_grade中成績(grade)小于60分的選課記錄; 5. 利用INSERT INTO命令向學生信息表stu_info、課程信息表course_info和學生成績表stu_grade中添加數(shù)據(jù),其數(shù)據(jù)內容參考下表; 6. 利用UPDATE命令修改表數(shù)據(jù): l 在表stu_info中,將學號(stu_id)為“2007070102”同學的院系(sdept)改為“會計學院”; l 在數(shù)據(jù)表stu_grade中,將信息學院成績(grade)小于60分的所有同學成績置空; 7. 利用DELETE命令刪除表數(shù)據(jù): l 在表stu_info中,刪除所有籍貫(address)為“河南洛陽”的同學信息; l 在表stu_grade中,刪除“張元選修操作系統(tǒng)”這一選課信息; 8. 假設有表“借閱(借書證號,書名,借閱日期,是否到期) ”,修改表中各記錄在字段“是否到期”上的值,用借閱日期與當前日期比較,當差值大于規(guī)定期限(60天)時,將字段“是否到期”的值由“否”改為“是”。 學生信息表(stu_info) stu_id name birthday sex address mark major sdept 2007070101 張元 1985-10-09 男 河南鄭州 576 計算機科學與技術 信息學院 2007070102 張紅 1985-01-14 女 河南開封 565 計算機科學與技術 信息學院 2007070103 王明 1986-07-08 男 河南洛陽 570 計算機科學與技術 信息學院 2007070104 李偉 1986-03-11 男 河南鄭州 564 計算機科學與技術 信息學院 2007070201 鄭瀾 1985-12-01 女 河南平頂山 567 電子商務 信息學院 2007070202 趙恒 1986-02-03 男 河南周口 566 電子商務 信息學院 2007070203 張?zhí)m 1986-04-06 女 河南許昌 571 電子商務 信息學院 2007080101 李偉 1985-09-12 男 河南鄭州 578 會計學 會計學院 2007080102 錢麗 1985-11-23 女 河南安陽 573 會計學 會計學院 2007080201 孫楠 1986-11-19 男 河南南陽 578 財務管理 會計學院 課程信息表(stu_info) course_id course_name course_type course_mark course_time 701 計算機基礎 考試 3 50 702 操作系統(tǒng) 考試 4 50 703 計算機網(wǎng)絡 考試 4 50 704 數(shù)據(jù)庫原理 考查 3 50 706 Java 考查 3 40 801 宏觀經(jīng)濟學 考試 4 50 802 初級會計 考試 4 50 803 財政學 考試 3 50 804 會計電算化 考查 3 學生成績表(stu_grade) stu_id course_id grade stu_id course_id grade 2007070101 701 89 2007070104 702 88 2007070101 702 81 2007080101 701 2007070101 703 96 2007080101 802 91 2007070102 701 85 2007080102 801 87 2007070102 702 74 2007080102 802 50 2007070102 703 55 2007080201 803 75 2007070104 701 35 2007080201 804 82 實驗數(shù)據(jù)記錄及分析(或程序及運行結果) 6 update stu_info set sedpt =會計學院 where stu_id=2007070102 update stu_grade set grade =null where grade<60 7 delete from stu_info where address=河南洛陽 delete from stu_grade where stu_id in ( select stu_grade.stu_id from stu_info ,course_info,stu_grade where stu_info.stu_id =stu_grade.stu_id and name =張元 ) and course_id in ( select stu_grade.course_id from course_info,stu_grade where stu_grade.course_id =course_info.course_id and course_name =操作系統(tǒng) ) 8 update 借閱 set 是否到期=是 where DATEDIFF (DAY,借閱日期,GETDATE())>60 評語: 日期: 年 月 日 實驗五:數(shù)據(jù)查詢 實驗目的 1. 掌握SELECT語句的基本語法; 2. 掌握模糊查詢的用法; 3. 掌握連接查詢的用法; 4. 掌握子查詢的用法。 實驗內容 針對數(shù)據(jù)庫student中的數(shù)據(jù)表,完成下列查詢: 1. SELECT基本使用 l 查詢每位同學的所有信息; l 查詢學號為“2007070103”的同學的姓名、性別、籍貫和院系信息; l 查詢每位女同學的學號、姓名和院系信息,并將結果中各列的標題指定為學號、姓名和院系; l 查詢每位同學的年齡信息; l 查詢所有其籍貫含有“陽”字的同學的姓名、性別和籍貫信息; l 查詢選修了“701”號課程且成績在70~80之間的同學的學號; 2. 嵌套查詢 l 查詢選修“計算機基礎”號課程的同學的學號、姓名和院系信息; l 查詢沒有選修“701”號課程的同學的學號、姓名和院系信息; l 查詢比會計學院所有入學成績都高的同學的學號、姓名、專業(yè)和院系信息; 3. 連接查詢 l 查詢每位同學的學號、姓名、課程名和成績信息; l 查詢入學成績大于575分的同學的學號、姓名、課程名和成績信息; l 查詢成績在90分以上的同學的學號、姓名、課程名和成績信息; 4. 數(shù)據(jù)匯總 l 查詢信息學院同學的入學平均分; l 查詢全體同學的入學最高分和最低分; l 查詢會計學院同學的總人數(shù); l 查詢所有其籍貫含有“陽”字的同學人數(shù); l 查詢學號為“2007070101”的同學的選課門數(shù)、平均分和總分; 5. GROUP BY l 查詢每個院系的總人數(shù); l 查詢每位同學的選課門數(shù)和平均分; l 查詢平均分在80分以上的同學的學號、姓名、選課門數(shù)和平均分; l 查詢專業(yè)人數(shù)在3人以上的專業(yè)名稱及其所在院系信息; 6. ORDER BY l 將信息學院同學的信息按入學成績由高到低排列輸出; l 查詢選修“計算機基礎”課程的每位同學的學號、姓名和成績信息,并按成績由低到高排列輸出。 實驗數(shù)據(jù)記錄及分析(或程序及運行結果) 1 select * from stu_info select name ,sex,address ,sedpt from stu_info where stu_id =2007070103 select stu_id 學號 ,name 姓名,sedpt 院系 from stu_info where sex =女 select 2014-YEAR(birthday) 年齡 from stu_info select name ,sex,address from stu_info where address like %陽% select stu_id from stu_grade where course_id=701 and grade>80 and grade <90 2 select stu_info.stu_id,name,address from stu_info ,course_info ,stu_grade where stu_info.stu_id =stu_grade.stu_id and stu_grade.course_id =course_info.course_id and course_name =計算機基礎 select stu_id ,name,sedpt from stu_info where stu_id not in ( select stu_id from stu_grade where course_id =701 ) select stu_id ,name,major,sedpt from stu_info where mark > ( select MAX(mark) from stu_info where sedpt =信息學院 ) 3 select stu_grade.stu_id ,name,course_name,grade from stu_info,course_info ,stu_grade where stu_grade.stu_id =stu_info.stu_id and stu_grade.course_id =course_info.course_id select stu_grade.stu_id ,name,course_name,grade from stu_info,course_info ,stu_grade where stu_grade.stu_id =stu_info.stu_id and stu_grade.course_id =course_info.course_id and mark >575 select stu_grade.stu_id ,name,course_name,grade from stu_info,course_info ,stu_grade where stu_grade.stu_id =stu_info.stu_id and stu_grade.course_id =course_info.course_id and grade >90 4 select AVG(mark) 信息學院平均入學成績 from stu_info where sedpt =信息學院 select max(mark) 最高分,MIN (mark) 最低分 from stu_info select COUNT (*) 會計學院人數(shù) from stu_info where sedpt =會計學院 select COUNT (*)籍貫含有陽的個數(shù) from stu_info where address like %陽% select COUNT(course_id) 選課總數(shù),AVG (grade)平均成績,SUM (grade)總成績 from stu_grade where stu_id =2007070101 5 select COUNT(sedpt) from stu_info group by sedpt select COUNT (stu_id ),AVG (grade) from stu_grade group by stu_id select stu_grade.stu_id,name, COUNT(stu_grade.stu_id ),AVG(grade) from stu_grade,stu_info where stu_grade.stu_id =stu_info.stu_id group by stu_grade.stu_id ,name having AVG (grade)>80 select major,sedpt from stu_info group by sedpt ,major having count(major)>3 6 select * from stu_info where sedpt =信息學院 order by mark desc select stu_grade.stu_id ,name,grade from stu_info,stu_grade ,course_info where stu_grade.stu_id =stu_info.stu_id and stu_grade.course_id=course_info.course_id and course_name =計算機基礎 order by grade 評語: 日期: 年 月 日 實驗六:索引 實驗目的 1. 掌握索引的概念; 2. 掌握利用管理器/企業(yè)管理器圖形化的方法創(chuàng)建、刪除索引; 3. 掌握使用T-SQL命令創(chuàng)建、刪除索引; 4. 掌握索引分析的方法。 實驗內容 1. 啟動SQL Server服務; 2. 啟動SQL Server管理器/企業(yè)管理器,利用圖形化的方法創(chuàng)建下列索引: l 對學生信息表stu_info中的name列創(chuàng)建非聚集唯一索引idx_name; l 對學生信息表stu_info中的sex列創(chuàng)建聚集索引idx_sex; create clustered index indexsex l on stu_info (sex) l 對學生成績表stu_grade中的stu_id、course_id列創(chuàng)建復合索引idx_stu_course_id; 3. 利用圖形化的方法刪除索引idx_stu_course_id; 4. 利用T-SQL命令重復以上工作; 5. 分析索引建立前后對查詢效率的影響,寫出分析結果。 實驗數(shù)據(jù)記錄及分析(或程序及運行結果) 評語: 日期: 年 月 日 實驗七:視圖 實驗目的 1. 理解視圖的重要性; 2. 掌握視圖的建立; 3. 掌握視圖的使用。 實驗內容 1. 啟動SQL Server服務; 2. 啟動SQL Server管理器/企業(yè)管理器,利用圖形化的方法創(chuàng)建下列視圖: l 視圖view_male,包含學生信息表中所有男生信息; l 視圖view_stu_grade,包含每個同學的學號、姓名、課程名和成績信息; l 視圖view_avg,包含每個同學的學號、姓名、平均成績信息; 3. 利用圖形化的方法查詢視圖view_male中的信息; 4. 利用圖形化的方法刪除視圖view_male; 5. 利用CREATE VIEW命令創(chuàng)建下列視圖: l 視圖view_female,包含學生信息表中所有女生信息; l 視圖view_count,包含每個院系的名稱和學生人數(shù)信息; l 視圖view_sum,包含每個同學的學號、姓名、課程總成績信息; 6. 利用DROP VIEW命令刪除視圖view_female; 7. 通過視圖,查詢下列信息: l 查詢“信息學院”的學生人數(shù); l 查詢學號“2007070101”同學的課程總成績。 實驗數(shù)據(jù)記錄及分析(或程序及運行結果) 2 create view view_male as select distinct* from stu_info where sex=男 create view view_stu_grade(stu_id,name,course_name,grade) as Select stu_grade.stu_id,name,course_name,grade from stu_info, course_info ,stu_grade where stu_grade.stu_id =stu_info.stu_id and course_info.course_id =stu_grade.course_id create view view_avg(stu_id,name,grade) as select distinct stu_grade.stu_id,name,avg(grade) from stu_info,stu_grade where stu_grade.stu_id =stu_info.stu_id group by name,stu_grade.stu_id 5 create view view_female as select * from stu_info where sex=女 create view view_count(sedpt,stu_count) as select sedpt ,COUNT (stu_id) from stu_info group by sedpt create view view_sum(stu_id,name,sum_grade) as select stu_grade.stu_id,name,sum(grade) from stu_grade ,stu_info where stu_grade.stu_id =stu_info.stu_id group by stu_grade.stu_id,name 6 drop view view_female 7 create view view_count(sedpt,stu_count) as select sedpt ,COUNT (stu_id) from stu_info group by sedpt select sum_grade from view_sum where stu_id=2007070101 評語: 日期: 年 月 日 實驗八:數(shù)據(jù)庫安全 實驗目的 1. 掌握數(shù)據(jù)庫的安全性能; 2. 掌握使用用戶實現(xiàn)數(shù)據(jù)庫安全性的方法; 3. 掌握使用角色實現(xiàn)數(shù)據(jù)庫安全性的方法; 4. 掌握權限分配的方法。 實驗內容 1. 以你的學號創(chuàng)建一個登錄帳號; 2. 在數(shù)據(jù)庫student中為剛創(chuàng)建的登錄帳號創(chuàng)建用戶User1; 3. 給用戶User1授予對學生信息表進行插入、修改和刪除記錄的權利; 4. 在數(shù)據(jù)庫student中創(chuàng)建角色Role1; 5. 給角色Role1授予對學生信息表進行查詢和插入記錄的權利,禁止對學生信息表進行刪除記錄的權利; 6. 將用戶User1加入到角色Role1中; 7. 你最后具有什么樣的權限?試驗證之。 實驗數(shù)據(jù)記錄及分析(或程序及運行結果) 評語: 日期: 年 月 日 實驗九:數(shù)據(jù)庫維護 實驗目的 1. 掌握導入/導出的使用方法; 2. 掌握備份/恢復(還原)的使用方法。 實驗內容 1. 將數(shù)據(jù)庫student中的學生信息表導出到excel文件xsxx.xls中; 2. 將excel文件xsxx.xls中的數(shù)據(jù)導入到數(shù)據(jù)庫student中; 3. 對數(shù)據(jù)庫student進行完整備份; 4. 恢復數(shù)據(jù)庫student。 實驗數(shù)據(jù)記錄及分析(或程序及運行結果) 評語: 日期: 年 月 日- 配套講稿:
如PPT文件的首頁顯示word圖標,表示該PPT已包含配套word講稿。雙擊word圖標可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設計者僅對作品中獨創(chuàng)性部分享有著作權。
- 關 鍵 詞:
- 數(shù)據(jù)庫原理與應用 數(shù)據(jù)庫 原理 應用 實驗 報告
裝配圖網(wǎng)所有資源均是用戶自行上傳分享,僅供網(wǎng)友學習交流,未經(jīng)上傳用戶書面授權,請勿作他用。
相關資源
更多
正為您匹配相似的精品文檔
相關搜索
鏈接地址:http://m.italysoccerbets.com/p-9590894.html