數(shù)據(jù)庫原理實(shí)驗(yàn)報告_第1頁
數(shù)據(jù)庫原理實(shí)驗(yàn)報告_第2頁
數(shù)據(jù)庫原理實(shí)驗(yàn)報告_第3頁
數(shù)據(jù)庫原理實(shí)驗(yàn)報告_第4頁
數(shù)據(jù)庫原理實(shí)驗(yàn)報告_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、2013級數(shù)據(jù)庫原理實(shí)驗(yàn)報告專業(yè):_計算機(jī)_班級:_學(xué)號:_ 姓名:_2015年5月實(shí)驗(yàn)一 SQL Server 2005基本操作一、實(shí)驗(yàn)?zāi)康牧私釹QL Server 2005組件;了解SQL Server數(shù)據(jù)庫組成;掌握SQL Server 2005界面基本操作。二、實(shí)驗(yàn)內(nèi)容(1)開始-程序-Microsoft SQL Server 2005- SQL Server Management Studio,打開后進(jìn)入到SQL Server 2005主體界面(2)點(diǎn)擊“數(shù)據(jù)庫”前面的“+”,可以展開查看數(shù)據(jù)庫,并且可以繼續(xù)展開下級目錄,查看數(shù)據(jù)庫中的表、視圖等。(3)了解SQL Server 20

2、05菜單欄的一些主要工具的使用。 (4)學(xué)生動手操作SQL Server 2005,打開數(shù)據(jù)庫,打開表,打開查詢界面;查看數(shù)據(jù)庫的屬性、表的屬性等。三、實(shí)驗(yàn)總結(jié)進(jìn)行這次實(shí)驗(yàn)有遇到什么問題?怎么解決的?答:此次實(shí)驗(yàn)我們一步一步按照實(shí)驗(yàn)內(nèi)容操作的,基本上沒有遇到問題。實(shí)驗(yàn)二 數(shù)據(jù)定義一、實(shí)驗(yàn)?zāi)康恼莆誗QL Server 2005的數(shù)據(jù)庫創(chuàng)建;掌握SQL Server數(shù)據(jù)定義語言;掌握SQL Server 2005數(shù)據(jù)定義的SQL語言定義與管理器定義兩種方式。二、實(shí)驗(yàn)內(nèi)容(1)創(chuàng)建、修改、刪除數(shù)據(jù)庫。創(chuàng)建要求:數(shù)據(jù)庫Employee中包含一個數(shù)據(jù)庫文件Empdat1.mdf和一個日志文件Emplog

3、.ldf。其中,數(shù)據(jù)文件大小為10MB,最大為50MB,以5MB速度增長;日志文件大小為5MB,最大為25MB,以5%速度增長。修改要求:增加第二個數(shù)據(jù)庫文件Empdat2.ndf,其中,數(shù)據(jù)文件大小為5MB,最大為25MB,以2MB速度增長。(2)利用SQL創(chuàng)建人員表person、月薪表salary及部門表dept。見上頁圖要求:按表2-1、表2-2及表2-3中的字段說明創(chuàng)建。表2-1person表結(jié)構(gòu)字段名數(shù)據(jù)類型字段長度允許空否字段說明P_noChar6Not Null工號,主鍵SexChar2Not Null性別BirthDateDatetimeNull出生日期ProfVarchar1

4、0Null職稱DeptnoChar4Not Null部門代碼,外鍵(參照dept表)表2-2 Salary表結(jié)構(gòu)字段名數(shù)據(jù)類型字段長度允許空否字段說明P_noChar6Not Null工號,主鍵,外鍵(參照person表)BaseDec5Null基本工資BonusDec5Null獎金,要求50Fact實(shí)發(fā)工資=基本工資+獎金MonthIntNot Null月份表2-3 dept表結(jié)構(gòu)字段名數(shù)據(jù)類型字段長度允許空否字段說明DeptnoChar4Not Null部門代碼,主鍵DnameVarchar10Not Null部門名稱create table dept(Deptno Char(4) Not

5、 Null,primary key(Deptno),Dname Varchar(10) Not Null,)create table person(P_no Char(6) Not Null,primary key(P_no),P_name Varchar(10) Not Null,Sex Char(2) Not Null,BirthDate Datetime Null,Prof Varchar(10) Null,Deptno Char(4) Not Null,foreign key(Deptno) references dept(Deptno),)create table Salary (P

6、_no Char(6) Not Null,foreign key(P_no) references person(P_no),Base Dec(5) Null,Bonus Dec(5) Null,Fact as Base+Bonus,Month Int Not Null,check (Bonus50),)(3)利用SQL語句創(chuàng)建視圖。要求:在基表person上創(chuàng)建員工視圖PersonView,其中包含工號、姓名、性別、職稱和部門代碼等字段。create view PersonView (P_no,P_name,Sex,Prof,Deptno)asselect P_n,P_name,Sex,Pr

7、of,Deptnofrom person(4)創(chuàng)建索引。要求: 在人員表的姓名列上創(chuàng)建一個單列索引name_sortcreate index name_sorton person(P_name);在人員表的出生日期列和姓名列上創(chuàng)建一個組合索引birth_namecreate clustered index birth_nameon person(BirthDate,P_name);在人員表的姓名列上創(chuàng)建一個唯一索引u_name_sortcreate unique index u_name_sorton person(P_name);創(chuàng)建月薪表上基于fact的索引fact_idxcreate i

8、ndex fact_idxon salary(fact); (5)刪除索引。要求:刪除月薪表上的索引fact_idx drop index salary.fact_idx;三、實(shí)驗(yàn)總結(jié)1在表的創(chuàng)建的時候要注意什么問題?答:完整性約束語的應(yīng)用語法, 表間關(guān)系,和建立順序。2自己在這次實(shí)驗(yàn)中遇到什么問題?怎么解決的?答:視圖和索引的標(biāo)點(diǎn)要不要加的問題。多嘗試找到正確的。 實(shí)驗(yàn)三 數(shù)據(jù)操作一、實(shí)驗(yàn)?zāi)康恼莆誗QL Server的數(shù)據(jù)操作語言;掌握SQL Server數(shù)據(jù)操作的管理器處理方式;掌握SQL Server 2005定義視圖語言。二、實(shí)驗(yàn)內(nèi)容(1)利用SQL語句向表person、salary和

9、dept中插入數(shù)據(jù)。要求:按表3-1、表3-2及表3-3中的數(shù)據(jù)插入。表3-1表person中的數(shù)據(jù)P_noP_nameSexBirthDateProfDeptno000001王云男1973-4-7中級0001000002謝志文男1975-2-14中級0001000003李浩然男1970-8-25高級0002000004廖小玲女1979-8-6初級0002000005梁玉瓊女1970-8-25中級0003000006羅向東男1979-5-11初級0003000007肖家慶男1963-7-14高級0003000008胡溧陽男1979-6-15中級0001000009肖麗麗女1968-8-19中級

10、0002000010黃劍祥男1965-9-19高級0003表3-2表salary中的數(shù)據(jù)P_noBaseBonusFactMonth00000121003001000002180030010000032800280100000425002501000005230027510000061750130100000724002101000008290020010000092700210100001023002101表2-3表dept中的數(shù)據(jù)DeptnoDname0001人事部0002財務(wù)部0003市場部insertinto dept (Deptno,Dname)values (0001,人事部)in

11、sertinto person (P_no,P_name,Sex,BirthDate,Prof,Deptno)values (000001,王云,男,1973-4-7,中級,0001)insertinto salary (P_no,Base,Bonus,Month)values (000001,2100,300,1)(2)用SQL語句修改表中的數(shù)據(jù)。要求:將salary表中工號為000006的員工工資增加為1800,獎金增加為160。update salaryset Base=1800,Bonus=160where P_no=000006(3)用SQL語句刪除表中的數(shù)據(jù)。要求:刪除person

12、表中工號為000010的員工數(shù)據(jù)deletefrom salarywhere P_no=0000010deletefrom personwhere P_no=0000010(4)更新視圖。要求:將員工視圖PersonView中姓名為王云的員工職稱改為高級。update PersonViewset Prof=高級where P_name=王云(5)向視圖插入數(shù)據(jù)。要求:向視圖PersonView中插入一行數(shù)據(jù)(000011,劉美萍,女,中級,0002)。insertinto PersonView (P_no,P_name,Sex,Prof,Deptno)values (000011,劉美萍,女,

13、中級,0002)(6)刪除視圖。要求:將視圖PersonView刪除。drop View PersonView;三、實(shí)驗(yàn)總結(jié)1在刪除員工工號為“000010”的員工數(shù)據(jù)時遇到了什么問題?必須怎么處理?答:Person表 被salary表引用,所以不能執(zhí)行該命令。必須先將salary表中的員工工號為“000010”的員工數(shù)據(jù)刪除,才能刪除Person表中員工工號為“000010”的員工數(shù)據(jù)。2對于三個表來說,插入數(shù)據(jù)的順序應(yīng)該是怎樣的?答:先插入表dept,再插入Person表,最后插入salary表。實(shí)驗(yàn)四 數(shù)據(jù)查詢一、實(shí)驗(yàn)?zāi)康恼莆誗QL Server的數(shù)據(jù)查詢語言;掌握SQL語言在不同情況下

14、的靈活應(yīng)用。二、實(shí)驗(yàn)內(nèi)容(1) 利用SQL語句查詢person表中的所有數(shù)據(jù)。select *from person;(2) 條件查詢。要求:查詢person表中所有不重復(fù)的職稱select distinct Proffrom person 查詢person表中職稱為中級的所有員工數(shù)據(jù)select *from personwhere Prof=中級 查詢person表中具有高級職稱的男員工信息select *from personwhere prof=高級 and Sex=男; 查詢person表中姓名為王云、謝志文或羅向東的員工數(shù)據(jù)select *from personwhere P_nam

15、e=王云 or P_name=謝志文 or P_name=羅向東 (3) 使用ORDER BY排序要求:利用SQL語句將工號在000003和000008之間的員工的月收入按實(shí)發(fā)工資升序排列。select Factfrom Salarywhere P_no between 000003and000008order by Fact asc(4) 查詢工號為000002的員工的基本工資改為原來的2倍,獎金改為原來的1.5倍后的實(shí)際收入。/先執(zhí)行修改update再查詢/直接在select中用表達(dá)式fact= Base*2+ Bonus*1.5select Fact=Base*2+1.5*Bonusfr

16、om Salarywhere P_no=000002 (5) 利用SQL語句查詢各部門的實(shí)發(fā)工資總數(shù)。select Dname,sum(Fact)實(shí)發(fā)工資總數(shù)from person,salary,deptwhere person.P_no=salary.P_noand person.Deptno=dept.Deptnogroup by Dname(6) 利用SQL語句查詢1月份發(fā)放獎金平均數(shù)大于200元的部門,并從低到高排序。select Dname,avg (Bonus) sslfrom dept,salary,personwhere Salary.P_no=person.P_noand d

17、ept.Deptno=person.Deptnoand Month=1group by Dname having avg (Bonus)200order by ssl /*avg (Bonus)*/ asc(7) 查詢?nèi)耸虏克袉T工信息。select *from person,Salary,deptwhere Salary.P_no=person.P_noand dept.Deptno=person.Deptnoand Dname=人事部(8) 查詢person表中職稱為中級的員工信息。select *from personwhere Prof=中級(9) 查詢每個員工1月份的工資和獎金。se

18、lect Base , Bonusfrom Salarywhere Month=1(10) 查詢比工號為000005的員工實(shí)發(fā)工資高的所有員工信息。select *from person,dept,Salarywhere Salary.P_no=person.P_noand dept.Deptno=person.Deptnoand Fact(select Factfrom Salary,person,deptwhere Salary.P_no=person.P_noand dept.Deptno=person.Deptnoand person.P_no=000005)(11) 查詢比部門000

19、3所有員工實(shí)發(fā)工資都高的員工。select P_namefrom person,dept,Salarywhere Salary.P_no=person.P_noand dept.Deptno=person.Deptnoand Fact(select max(Fact)from Salary,person,deptwhere Salary.P_no=person.P_noand dept.Deptno=person.Deptnoand dept.Deptno=0003)(12) 查詢實(shí)發(fā)工資比平均實(shí)發(fā)工資高的員工工號及實(shí)發(fā)。select person.P_no,Fact from Salary,

20、person,deptwhere Salary.P_no=person.P_noand dept.Deptno=person.Deptnoand Fact(select avg (Fact) maxlfrom Salary,person,deptwhere Salary.P_no=person.P_noand dept.Deptno=person.Deptno/*group by Dname/* having avg (Fact)*/*/)(13) 使用UNION查詢。要求:利用SQL語句分別查詢具有高、中級職稱的職工姓名,合并輸出。select P_namefrom personwhere

21、Prof=中級unionselect P_namefrom personwhere Prof=高級三、實(shí)驗(yàn)總結(jié)1在查詢的語句中,如果涉及到的屬性列多個表都有,那應(yīng)該怎么處理?答:用表名.屬性列名來指定用哪個列的數(shù)據(jù)來完成操作。2 如果查詢的數(shù)據(jù)列沒有列名,為了明白查詢的數(shù)據(jù)是什么含義,可以怎樣處理? 答:可以用數(shù)據(jù)列數(shù)據(jù) 數(shù)據(jù)列名的方式給數(shù)據(jù)列附上列名。3. 寫出SQL語言完整的查詢語句,并標(biāo)出DBMS執(zhí)行的先后順序。答:先執(zhí)行from語句,再執(zhí)行where語句的執(zhí)行條件,有g(shù)roup by的執(zhí)行分組操作和having語句里的表達(dá)式,最后輸出select里有的數(shù)據(jù)列里的數(shù)據(jù)。實(shí)驗(yàn)五 數(shù)據(jù)完整性

22、與管理一、實(shí)驗(yàn)?zāi)康睦斫鈹?shù)據(jù)完整性的意義;掌握數(shù)據(jù)備份方法;掌握數(shù)據(jù)庫恢復(fù)方法。二、實(shí)驗(yàn)內(nèi)容(1)學(xué)生實(shí)踐創(chuàng)建規(guī)則的語言使用;CREATE RULE sex_rule AS sex IN(男,女)-游離規(guī)則。Sp_bindrule sex_rule,person.sex-綁定規(guī)則-已將規(guī)則綁定到表的列。Sp_unbindrule person.sex-解除綁定。DROP RULE sex_rule-刪除規(guī)則。(2)對數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行更新、刪除操作,測試是否會成功;如果不成功,分析數(shù)據(jù)庫操作失敗的原因;A. 測試對主表進(jìn)行插入、更新及刪除操作時的影響。要求: 表dept中插入一行數(shù)據(jù)(0004,

23、研發(fā)部),測試是否影響從表。insertinto dept (Deptno,Dname)values (0004,研發(fā)部)/不影響,插入成功,因?yàn)槭切虏迦氲囊恍袛?shù)據(jù),所以對從表不受影響 表dept中的部門號0003改為0006,測試是否影響從表。update deptset Deptno=0006where Deptno=0003/影響,不成功,person表中有部門號這個屬性,所以會受到牽制,需先改變dept表中的數(shù)據(jù)。顯示:UPDATE 語句與REFERENCE 約束FK_person_Deptno_7F60ED59沖突。該沖突發(fā)生于數(shù)據(jù)庫Employee,表dbo.person, col

24、umn Deptno。語句已終止。刪除表dept中部門號為0001的員工數(shù)據(jù),測試是否影響從表。deletefrom deptwhere Deptno=0001/影響,不成功,person表中有部門號這個屬性,所以會受到牽制,需先改變dept表中的數(shù)據(jù)。顯示:DELETE 語句與REFERENCE 約束FK_person_Deptno_7F60ED59沖突。該沖突發(fā)生于數(shù)據(jù)庫Employee,表dbo.person, column Deptno。語句已終止。B. 測試對從表進(jìn)行插入、更新及刪除操作時的影響。要求: 表person中插入一行數(shù)據(jù)(000012,宋全禮,男,1980-7-17,初級

25、,0005),測試是否違背參照完整性。insertinto person (P_no,P_name,Sex,BirthDate,Prof,Deptno)values (000012,宋全禮,男,1980-7-17,初級,0005)/影響,不成功,dept表中有部門號這個屬性,為外碼,所以會受到牽制,需先處理dept表顯示:INSERT 語句與FOREIGN KEY 約束FK_person_Deptno_7F60ED59沖突。該沖突發(fā)生于數(shù)據(jù)庫Employee,表dbo.dept, column Deptno。語句已終止。將表person中工號為000002的員工所在部門更新為0005,測試是否

26、違背參照完整性。update personset Deptno=0005where P_no=000002/影響,不成功,dept表中有部門號這個屬性,為外碼,所以會受到牽制,需先處理dept表顯示:UPDATE 語句與FOREIGN KEY 約束FK_person_Deptno_7F60ED59沖突。該沖突發(fā)生于數(shù)據(jù)庫Employee,表dbo.dept, column Deptno。語句已終止。刪除表person中工號為000005的員工數(shù)據(jù),測試是否違背參照完整性。deletefrom personwhere P_no=000005/影響,不成功,dept表中有部門號這個屬性,為外碼,所以會受到牽制,需先處理dept表顯示:DELETE 語句與REFERENCE 約束FK_Salary_P_no_014935CB沖突。該沖突發(fā)生于數(shù)據(jù)庫Employee,表dbo.Salary, column P_no。語句已終止。(3) 數(shù)據(jù)備份和恢復(fù)操作。三、實(shí)驗(yàn)總結(jié)1數(shù)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論