版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 四川省網(wǎng)約配送員職業(yè)技能競賽理論考試題及答案
- 三年級數(shù)學(xué)計算題專項(xiàng)練習(xí)匯編及答案集錦
- 2024建筑施工協(xié)議代理業(yè)務(wù)規(guī)范稿
- 2024投標(biāo)專用協(xié)議樣本解析
- 2024年復(fù)婚二次離婚協(xié)議規(guī)范樣本
- 2024專業(yè)紅娘服務(wù)會員協(xié)議
- 2024年度高品質(zhì)防盜門供應(yīng)協(xié)議范例
- 化2024年采購訂單協(xié)議樣本
- 創(chuàng)新烤鴨工藝技術(shù)合作協(xié)議2024
- 2024年專業(yè)家電維修服務(wù)協(xié)議模板
- 消防安全-情系你我他
- 短視頻的拍攝與剪輯
- 產(chǎn)品設(shè)計-淺談智能藍(lán)牙音響的外觀創(chuàng)新設(shè)計
- 江蘇省南京江寧聯(lián)合體2023-2024學(xué)年八年級上學(xué)期期中考試英語試卷
- 快速康復(fù)外科(ERAS)護(hù)理
- 醫(yī)療機(jī)構(gòu)安全檢查表
- 第六章-巷道支護(hù)01
- 應(yīng)急管理法律法規(guī)及國標(biāo)行標(biāo)清單
- 監(jiān)理規(guī)劃、監(jiān)理細(xì)則審批表
- 香菇種植示范基地項(xiàng)目可行性策劃實(shí)施方案
- 施工現(xiàn)場材料使用明細(xì)表
評論
0/150
提交評論