版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、2013級(jí)數(shù)據(jù)庫(kù)原理實(shí)驗(yàn)報(bào)告專(zhuān)業(yè):_計(jì)算機(jī)_班級(jí):_學(xué)號(hào):_ 姓名:_2015年5月實(shí)驗(yàn)一 SQL Server 2005基本操作一、實(shí)驗(yàn)?zāi)康牧私釹QL Server 2005組件;了解SQL Server數(shù)據(jù)庫(kù)組成;掌握SQL Server 2005界面基本操作。二、實(shí)驗(yàn)內(nèi)容(1)開(kāi)始-程序-Microsoft SQL Server 2005- SQL Server Management Studio,打開(kāi)后進(jìn)入到SQL Server 2005主體界面(2)點(diǎn)擊“數(shù)據(jù)庫(kù)”前面的“+”,可以展開(kāi)查看數(shù)據(jù)庫(kù),并且可以繼續(xù)展開(kāi)下級(jí)目錄,查看數(shù)據(jù)庫(kù)中的表、視圖等。(3)了解SQL Server 20
2、05菜單欄的一些主要工具的使用。 (4)學(xué)生動(dòng)手操作SQL Server 2005,打開(kāi)數(shù)據(jù)庫(kù),打開(kāi)表,打開(kāi)查詢(xún)界面;查看數(shù)據(jù)庫(kù)的屬性、表的屬性等。三、實(shí)驗(yàn)總結(jié)進(jìn)行這次實(shí)驗(yàn)有遇到什么問(wèn)題?怎么解決的?答:此次實(shí)驗(yàn)我們一步一步按照實(shí)驗(yàn)內(nèi)容操作的,基本上沒(méi)有遇到問(wèn)題。實(shí)驗(yàn)二 數(shù)據(jù)定義一、實(shí)驗(yàn)?zāi)康恼莆誗QL Server 2005的數(shù)據(jù)庫(kù)創(chuàng)建;掌握SQL Server數(shù)據(jù)定義語(yǔ)言;掌握SQL Server 2005數(shù)據(jù)定義的SQL語(yǔ)言定義與管理器定義兩種方式。二、實(shí)驗(yàn)內(nèi)容(1)創(chuàng)建、修改、刪除數(shù)據(jù)庫(kù)。創(chuàng)建要求:數(shù)據(jù)庫(kù)Employee中包含一個(gè)數(shù)據(jù)庫(kù)文件Empdat1.mdf和一個(gè)日志文件Emplog
3、.ldf。其中,數(shù)據(jù)文件大小為10MB,最大為50MB,以5MB速度增長(zhǎng);日志文件大小為5MB,最大為25MB,以5%速度增長(zhǎng)。修改要求:增加第二個(gè)數(shù)據(jù)庫(kù)文件Empdat2.ndf,其中,數(shù)據(jù)文件大小為5MB,最大為25MB,以2MB速度增長(zhǎng)。(2)利用SQL創(chuàng)建人員表person、月薪表salary及部門(mén)表dept。見(jiàn)上頁(yè)圖要求:按表2-1、表2-2及表2-3中的字段說(shuō)明創(chuàng)建。表2-1person表結(jié)構(gòu)字段名數(shù)據(jù)類(lèi)型字段長(zhǎng)度允許空否字段說(shuō)明P_noChar6Not Null工號(hào),主鍵SexChar2Not Null性別BirthDateDatetimeNull出生日期ProfVarchar1
4、0Null職稱(chēng)DeptnoChar4Not Null部門(mén)代碼,外鍵(參照dept表)表2-2 Salary表結(jié)構(gòu)字段名數(shù)據(jù)類(lèi)型字段長(zhǎng)度允許空否字段說(shuō)明P_noChar6Not Null工號(hào),主鍵,外鍵(參照person表)BaseDec5Null基本工資BonusDec5Null獎(jiǎng)金,要求50Fact實(shí)發(fā)工資=基本工資+獎(jiǎng)金MonthIntNot Null月份表2-3 dept表結(jié)構(gòu)字段名數(shù)據(jù)類(lèi)型字段長(zhǎng)度允許空否字段說(shuō)明DeptnoChar4Not Null部門(mén)代碼,主鍵DnameVarchar10Not Null部門(mén)名稱(chēng)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語(yǔ)句創(chuàng)建視圖。要求:在基表person上創(chuàng)建員工視圖PersonView,其中包含工號(hào)、姓名、性別、職稱(chēng)和部門(mén)代碼等字段。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)建一個(gè)單列索引name_sortcreate index name_sorton person(P_name);在人員表的出生日期列和姓名列上創(chuàng)建一個(gè)組合索引birth_namecreate clustered index birth_nameon person(BirthDate,P_name);在人員表的姓名列上創(chuàng)建一個(gè)唯一索引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)建的時(shí)候要注意什么問(wèn)題?答:完整性約束語(yǔ)的應(yīng)用語(yǔ)法, 表間關(guān)系,和建立順序。2自己在這次實(shí)驗(yàn)中遇到什么問(wèn)題?怎么解決的?答:視圖和索引的標(biāo)點(diǎn)要不要加的問(wèn)題。多嘗試找到正確的。 實(shí)驗(yàn)三 數(shù)據(jù)操作一、實(shí)驗(yàn)?zāi)康恼莆誗QL Server的數(shù)據(jù)操作語(yǔ)言;掌握SQL Server數(shù)據(jù)操作的管理器處理方式;掌握SQL Server 2005定義視圖語(yǔ)言。二、實(shí)驗(yàn)內(nèi)容(1)利用SQL語(yǔ)句向表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中級(jí)0001000002謝志文男1975-2-14中級(jí)0001000003李浩然男1970-8-25高級(jí)0002000004廖小玲女1979-8-6初級(jí)0002000005梁玉瓊女1970-8-25中級(jí)0003000006羅向東男1979-5-11初級(jí)0003000007肖家慶男1963-7-14高級(jí)0003000008胡溧陽(yáng)男1979-6-15中級(jí)0001000009肖麗麗女1968-8-19中級(jí)
10、0002000010黃劍祥男1965-9-19高級(jí)0003表3-2表salary中的數(shù)據(jù)P_noBaseBonusFactMonth00000121003001000002180030010000032800280100000425002501000005230027510000061750130100000724002101000008290020010000092700210100001023002101表2-3表dept中的數(shù)據(jù)DeptnoDname0001人事部0002財(cái)務(wù)部0003市場(chǎng)部insertinto dept (Deptno,Dname)values (0001,人事部)in
11、sertinto person (P_no,P_name,Sex,BirthDate,Prof,Deptno)values (000001,王云,男,1973-4-7,中級(jí),0001)insertinto salary (P_no,Base,Bonus,Month)values (000001,2100,300,1)(2)用SQL語(yǔ)句修改表中的數(shù)據(jù)。要求:將salary表中工號(hào)為000006的員工工資增加為1800,獎(jiǎng)金增加為160。update salaryset Base=1800,Bonus=160where P_no=000006(3)用SQL語(yǔ)句刪除表中的數(shù)據(jù)。要求:刪除person
12、表中工號(hào)為000010的員工數(shù)據(jù)deletefrom salarywhere P_no=0000010deletefrom personwhere P_no=0000010(4)更新視圖。要求:將員工視圖PersonView中姓名為王云的員工職稱(chēng)改為高級(jí)。update PersonViewset Prof=高級(jí)where P_name=王云(5)向視圖插入數(shù)據(jù)。要求:向視圖PersonView中插入一行數(shù)據(jù)(000011,劉美萍,女,中級(jí),0002)。insertinto PersonView (P_no,P_name,Sex,Prof,Deptno)values (000011,劉美萍,女,
13、中級(jí),0002)(6)刪除視圖。要求:將視圖PersonView刪除。drop View PersonView;三、實(shí)驗(yàn)總結(jié)1在刪除員工工號(hào)為“000010”的員工數(shù)據(jù)時(shí)遇到了什么問(wèn)題?必須怎么處理?答:Person表 被salary表引用,所以不能執(zhí)行該命令。必須先將salary表中的員工工號(hào)為“000010”的員工數(shù)據(jù)刪除,才能刪除Person表中員工工號(hào)為“000010”的員工數(shù)據(jù)。2對(duì)于三個(gè)表來(lái)說(shuō),插入數(shù)據(jù)的順序應(yīng)該是怎樣的?答:先插入表dept,再插入Person表,最后插入salary表。實(shí)驗(yàn)四 數(shù)據(jù)查詢(xún)一、實(shí)驗(yàn)?zāi)康恼莆誗QL Server的數(shù)據(jù)查詢(xún)語(yǔ)言;掌握SQL語(yǔ)言在不同情況下
14、的靈活應(yīng)用。二、實(shí)驗(yàn)內(nèi)容(1) 利用SQL語(yǔ)句查詢(xún)person表中的所有數(shù)據(jù)。select *from person;(2) 條件查詢(xún)。要求:查詢(xún)person表中所有不重復(fù)的職稱(chēng)select distinct Proffrom person 查詢(xún)person表中職稱(chēng)為中級(jí)的所有員工數(shù)據(jù)select *from personwhere Prof=中級(jí) 查詢(xún)person表中具有高級(jí)職稱(chēng)的男員工信息select *from personwhere prof=高級(jí) and Sex=男; 查詢(xún)person表中姓名為王云、謝志文或羅向東的員工數(shù)據(jù)select *from personwhere P_nam
15、e=王云 or P_name=謝志文 or P_name=羅向東 (3) 使用ORDER BY排序要求:利用SQL語(yǔ)句將工號(hào)在000003和000008之間的員工的月收入按實(shí)發(fā)工資升序排列。select Factfrom Salarywhere P_no between 000003and000008order by Fact asc(4) 查詢(xún)工號(hào)為000002的員工的基本工資改為原來(lái)的2倍,獎(jiǎng)金改為原來(lái)的1.5倍后的實(shí)際收入。/先執(zhí)行修改update再查詢(xún)/直接在select中用表達(dá)式fact= Base*2+ Bonus*1.5select Fact=Base*2+1.5*Bonusfr
16、om Salarywhere P_no=000002 (5) 利用SQL語(yǔ)句查詢(xún)各部門(mén)的實(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語(yǔ)句查詢(xún)1月份發(fā)放獎(jiǎng)金平均數(shù)大于200元的部門(mén),并從低到高排序。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) 查詢(xún)?nèi)耸虏克袉T工信息。select *from person,Salary,deptwhere Salary.P_no=person.P_noand dept.Deptno=person.Deptnoand Dname=人事部(8) 查詢(xún)person表中職稱(chēng)為中級(jí)的員工信息。select *from personwhere Prof=中級(jí)(9) 查詢(xún)每個(gè)員工1月份的工資和獎(jiǎng)金。se
18、lect Base , Bonusfrom Salarywhere Month=1(10) 查詢(xún)比工號(hào)為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) 查詢(xún)比部門(mén)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) 查詢(xún)實(shí)發(fā)工資比平均實(shí)發(fā)工資高的員工工號(hào)及實(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查詢(xún)。要求:利用SQL語(yǔ)句分別查詢(xún)具有高、中級(jí)職稱(chēng)的職工姓名,合并輸出。select P_namefrom personwhere
21、Prof=中級(jí)unionselect P_namefrom personwhere Prof=高級(jí)三、實(shí)驗(yàn)總結(jié)1在查詢(xún)的語(yǔ)句中,如果涉及到的屬性列多個(gè)表都有,那應(yīng)該怎么處理?答:用表名.屬性列名來(lái)指定用哪個(gè)列的數(shù)據(jù)來(lái)完成操作。2 如果查詢(xún)的數(shù)據(jù)列沒(méi)有列名,為了明白查詢(xún)的數(shù)據(jù)是什么含義,可以怎樣處理? 答:可以用數(shù)據(jù)列數(shù)據(jù) 數(shù)據(jù)列名的方式給數(shù)據(jù)列附上列名。3. 寫(xiě)出SQL語(yǔ)言完整的查詢(xún)語(yǔ)句,并標(biāo)出DBMS執(zhí)行的先后順序。答:先執(zhí)行from語(yǔ)句,再執(zhí)行where語(yǔ)句的執(zhí)行條件,有g(shù)roup by的執(zhí)行分組操作和having語(yǔ)句里的表達(dá)式,最后輸出select里有的數(shù)據(jù)列里的數(shù)據(jù)。實(shí)驗(yàn)五 數(shù)據(jù)完整性
22、與管理一、實(shí)驗(yàn)?zāi)康睦斫鈹?shù)據(jù)完整性的意義;掌握數(shù)據(jù)備份方法;掌握數(shù)據(jù)庫(kù)恢復(fù)方法。二、實(shí)驗(yàn)內(nèi)容(1)學(xué)生實(shí)踐創(chuàng)建規(guī)則的語(yǔ)言使用;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)對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行更新、刪除操作,測(cè)試是否會(huì)成功;如果不成功,分析數(shù)據(jù)庫(kù)操作失敗的原因;A. 測(cè)試對(duì)主表進(jìn)行插入、更新及刪除操作時(shí)的影響。要求: 表dept中插入一行數(shù)據(jù)(0004,
23、研發(fā)部),測(cè)試是否影響從表。insertinto dept (Deptno,Dname)values (0004,研發(fā)部)/不影響,插入成功,因?yàn)槭切虏迦氲囊恍袛?shù)據(jù),所以對(duì)從表不受影響 表dept中的部門(mén)號(hào)0003改為0006,測(cè)試是否影響從表。update deptset Deptno=0006where Deptno=0003/影響,不成功,person表中有部門(mén)號(hào)這個(gè)屬性,所以會(huì)受到牽制,需先改變dept表中的數(shù)據(jù)。顯示:UPDATE 語(yǔ)句與REFERENCE 約束FK_person_Deptno_7F60ED59沖突。該沖突發(fā)生于數(shù)據(jù)庫(kù)Employee,表dbo.person, col
24、umn Deptno。語(yǔ)句已終止。刪除表dept中部門(mén)號(hào)為0001的員工數(shù)據(jù),測(cè)試是否影響從表。deletefrom deptwhere Deptno=0001/影響,不成功,person表中有部門(mén)號(hào)這個(gè)屬性,所以會(huì)受到牽制,需先改變dept表中的數(shù)據(jù)。顯示:DELETE 語(yǔ)句與REFERENCE 約束FK_person_Deptno_7F60ED59沖突。該沖突發(fā)生于數(shù)據(jù)庫(kù)Employee,表dbo.person, column Deptno。語(yǔ)句已終止。B. 測(cè)試對(duì)從表進(jìn)行插入、更新及刪除操作時(shí)的影響。要求: 表person中插入一行數(shù)據(jù)(000012,宋全禮,男,1980-7-17,初級(jí)
25、,0005),測(cè)試是否違背參照完整性。insertinto person (P_no,P_name,Sex,BirthDate,Prof,Deptno)values (000012,宋全禮,男,1980-7-17,初級(jí),0005)/影響,不成功,dept表中有部門(mén)號(hào)這個(gè)屬性,為外碼,所以會(huì)受到牽制,需先處理dept表顯示:INSERT 語(yǔ)句與FOREIGN KEY 約束FK_person_Deptno_7F60ED59沖突。該沖突發(fā)生于數(shù)據(jù)庫(kù)Employee,表dbo.dept, column Deptno。語(yǔ)句已終止。將表person中工號(hào)為000002的員工所在部門(mén)更新為0005,測(cè)試是否
26、違背參照完整性。update personset Deptno=0005where P_no=000002/影響,不成功,dept表中有部門(mén)號(hào)這個(gè)屬性,為外碼,所以會(huì)受到牽制,需先處理dept表顯示:UPDATE 語(yǔ)句與FOREIGN KEY 約束FK_person_Deptno_7F60ED59沖突。該沖突發(fā)生于數(shù)據(jù)庫(kù)Employee,表dbo.dept, column Deptno。語(yǔ)句已終止。刪除表person中工號(hào)為000005的員工數(shù)據(jù),測(cè)試是否違背參照完整性。deletefrom personwhere P_no=000005/影響,不成功,dept表中有部門(mén)號(hào)這個(gè)屬性,為外碼,所以會(huì)受到牽制,需先處理dept表顯示:DELETE 語(yǔ)句與REFERENCE 約束FK_Salary_P_no_014935CB沖突。該沖突發(fā)生于數(shù)據(jù)庫(kù)Employee,表dbo.Salary, column P_no。語(yǔ)句已終止。(3) 數(shù)據(jù)備份和恢復(fù)操作。三、實(shí)驗(yàn)總結(jié)1數(shù)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 保安班長(zhǎng)述職報(bào)告范文(7篇)
- 中班第一學(xué)期個(gè)人計(jì)劃范文
- 護(hù)理服務(wù)心得體會(huì)
- 中學(xué)秋季開(kāi)學(xué)典禮校長(zhǎng)致辭(13篇)
- 以感恩為題演講稿合集7篇
- 洋蔥幼兒課件教學(xué)課件
- 搜索命令大全
- 實(shí)習(xí)員工勞動(dòng)合同-文書(shū)模板
- 影響居民健康主要危險(xiǎn)因素評(píng)估
- 大班誠(chéng)信課件教學(xué)課件
- 廣東省墾造水田項(xiàng)目
- 分式方程的解法教學(xué)設(shè)計(jì)與反思(優(yōu)秀范文5篇)
- C-TPAP體系管理手冊(cè)
- 大學(xué)二級(jí)學(xué)院(系)財(cái)務(wù)管理辦法(試行)模版
- 新浙教版九年級(jí)上冊(cè)初中數(shù)學(xué) 4.2 由平行線截得的比例線段 教學(xué)課件
- 中國(guó)聯(lián)通通信網(wǎng)絡(luò)運(yùn)行維護(hù)規(guī)程-固定網(wǎng)絡(luò)設(shè)備分冊(cè)-傳輸詳細(xì)
- 《CAXA電子圖版》教學(xué)設(shè)計(jì)大綱
- 土木工程專(zhuān)業(yè)職業(yè)生涯規(guī)劃(PPT)
- 犬神經(jīng)障礙性疾病的針灸診療
- 一對(duì)一談心談話(huà)記錄3篇精選
- 男女有別親密有間
評(píng)論
0/150
提交評(píng)論