




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、 數(shù)據(jù)庫原理上機(jī)實(shí)驗(yàn)報(bào)告 數(shù)據(jù)庫原理上機(jī)實(shí)驗(yàn)報(bào)告專 業(yè): 自動(dòng)化、測(cè)控學(xué) 號(hào): 姓 名: 班 級(jí): 指導(dǎo)老師: 楊彪 昆明理工大學(xué)信息工程與自動(dòng)化學(xué)院2014年12月一、實(shí)驗(yàn)?zāi)康呐c要求:l 熟練使用SQL定義子語言、操縱子語言命令語句l 掌握關(guān)系模型上的完整性約束機(jī)制l 掌握一定的數(shù)據(jù)庫管理技術(shù)l 能完成簡單的數(shù)據(jù)庫應(yīng)用開發(fā)二、實(shí)驗(yàn)內(nèi)容及學(xué)時(shí)安排(總學(xué)時(shí):8)(一)數(shù)據(jù)定義子語言實(shí)驗(yàn)(2學(xué)時(shí))實(shí)驗(yàn)1:利用SQL語句創(chuàng)建Employee數(shù)據(jù)庫程序:create database employee結(jié)果:實(shí)驗(yàn)2:利用SQL語句在Employee數(shù)據(jù)庫中創(chuàng)建人員表person、月薪表salary及部門
2、表dept。要求:按表1、表達(dá)、表3中的字段說明創(chuàng)建表1 person表結(jié)構(gòu)字段名數(shù)據(jù)類型字段長度允許空否字段說明P_noChar6Not Null工號(hào),主鍵P_nameVarchar10Not Null姓名SexChar2Not Null性別BirthdateDatetime8Null出生日期ProfVarchar10Null職稱DeptnoChar4Not Null部門代碼,外鍵(參照dept表)表2 salary表結(jié)構(gòu)字段名數(shù)據(jù)類型字段長度允許空否字段說明P_noChar6Not Null工號(hào),主鍵,外鍵(參照person表)BaseDec5Null基本工資BonusDec5Null獎(jiǎng)金
3、,要求50FactDec5Null實(shí)發(fā)工資=基本工資+獎(jiǎng)金MonthInt2Not Null月份表3 dept表結(jié)構(gòu)字段名數(shù)據(jù)類型字段長度允許空否字段說明DeptnoChar4Not Null部門代碼,主鍵,DnameVarchar10Not Null部門名稱程序:create table dept ( Deptno char(4) not null , Dname varchar(10) not null,)create table person ( P_no char(6) not null primary key, P_name varchar(10) not null, Sex Cha
4、r(10) not null, Birthdate date null, Prof varchar(10) null, Deptno char(4) not null, Foreign key (Deptno) References dept(Deptno)create table salary ( P_no char(6) not null primary key, Base Dec(5) null, Bonus Dec(5) null, Fact Dec(5) null, Month Int not null, Foreign key (P_no) References person(P_
5、no)結(jié)果:(二)數(shù)據(jù)操縱子語言實(shí)驗(yàn)(4學(xué)時(shí))實(shí)驗(yàn)3:利用SQL語句向表person、salary和dept中插入數(shù)據(jù)。要求:按表4、表5、表6中的數(shù)據(jù)插入。表4 表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í)0003程序:
6、insert into person(P_no,P_name,Sex,Birthdate,Prof,Deptno) values(000001,王云,男,1973-4-7,中級(jí),0001)其他person表的數(shù)據(jù)插入同上。結(jié)果:表5 表salary中的數(shù)據(jù)P_noBaseBonusFactS_month00000121003001000002180030010000032800280100000425002501000005230027510000061750130100000724002101程序:insert into salaryvalues (000001,2100,300,2400,
7、1)其他salary表的數(shù)據(jù)插入同上。結(jié)果:表6 表dept中的數(shù)據(jù)DeptnoDname0001人事部0002財(cái)務(wù)部0003市場(chǎng)部程序: insert into deptvalues (0001,人事部)其他dept表的數(shù)據(jù)插入同上。結(jié)果:實(shí)驗(yàn)4:(1)利用SQL語句修改表中的數(shù)據(jù)。要求:將salary表中工號(hào)為000006的員工工資增加為1800元,獎(jiǎng)金增加為160元。程序: update salaryset Base=1800,Bonus=160where P_no=000006結(jié)果:(2)利用SQL語句刪除表中的數(shù)據(jù)。要求:刪除person表中工號(hào)為000007的員工數(shù)據(jù)。程序: de
8、letefrom personwhere P_no=000007結(jié)果:(3)利用SQL語句查詢person表中的所有數(shù)據(jù)。程序:select *from person結(jié)果:實(shí)驗(yàn)5:條件查詢 要求:(1) 查詢person表中所有不重復(fù)的職稱。程序:select distinct prof from person結(jié)果:查詢p erson表中職稱為中級(jí)的所有員工數(shù)據(jù)。程序:select *from personwhere Prof=中級(jí)結(jié)果:(2) 查詢person表中具有高級(jí)職稱的男員工信息。程序:select *from personwhere Prof=高級(jí)and sex=男結(jié)果:(3) 查
9、詢person表中姓名為王云、謝志文、羅向東的員工數(shù)據(jù)。程序:select *from personwhere p_name=王云or p_name=謝志文or p_name=羅向東結(jié)果:實(shí)驗(yàn)6:使用ORDER BY排序 要求:利用SQL語句將工號(hào)在000003和000006之間的員工的月收入按實(shí)發(fā)工資升序排序。程序及結(jié)果如下:實(shí)驗(yàn)7:利用SQL語句查詢各部門的實(shí)發(fā)工資總數(shù)。程序及結(jié)果如下:實(shí)驗(yàn)8:利用SQL語句查詢?nèi)耸虏克袉T工信息。程序:select *from personwhere deptno=0001結(jié)果:實(shí)驗(yàn)9:表的內(nèi)連接查詢:要求:利用SQL語句查詢person表中職稱為中級(jí)的
10、員工信息。程序及結(jié)果如下:實(shí)驗(yàn)10:表的外連接查詢:要求:利用SQL語句查詢每個(gè)員工1 月份的工資和獎(jiǎng)金程序及結(jié)果如下:實(shí)驗(yàn)11:子查詢:要求:利用SQL語句查詢比工號(hào)為000005的員工實(shí)發(fā)工資高的所有員工信息。程序及結(jié)果如下:(三) 數(shù)據(jù)完整性實(shí)驗(yàn)(1學(xué)時(shí))實(shí)驗(yàn)12:定義外鍵約束 要求:(1) 創(chuàng)建表時(shí)將person表的deptno列定義為外鍵,并參考dept表的列deptno。程序:create table person (P_no char(6) not null primary key, P_name varchar(10) not null, Sex Char(10) not nu
11、ll, Birthdate date null, Prof varchar(10) null, Deptno char(4) not null, Foreign key (Deptno) References dept(Deptno)(2)將salary表中的P_no設(shè)為外鍵,并使其參照person表中的列P_no。程序:create table salary ( P_no char(6) not null primary key, Base Dec(5) null, Bonus Dec(5) null, Fact Dec(5) null, Month Int not null, Foreig
12、n key (P_no) References person(P_no)其依賴關(guān)系為 實(shí)驗(yàn)13:測(cè)試對(duì)主表進(jìn)行插入、更新及刪除操作時(shí)的影響。(請(qǐng)寫明原因) 要求:(1) 向表dept中插入一行數(shù)據(jù)(0004,研發(fā)部),測(cè)試是否影響從表。程序:insert into dept(Deptno,Dname) values(0004,研發(fā)部)結(jié)果:dept表的結(jié)果為Person表的結(jié)果為:Salary表的結(jié)果為故向表dept中插入一行數(shù)據(jù)(0004,研發(fā)部),并未影響從表。原因是因?yàn)閜erson表參照的是dept表,salary表參照的是person表,并且person表和salary表中均沒有與新插
13、入數(shù)據(jù)有關(guān)聯(lián)的數(shù)據(jù),所以,當(dāng)dept表插入新數(shù)據(jù)時(shí),person表和salary表的數(shù)據(jù)不會(huì)發(fā)生改變。(2)將表dept中的部門號(hào)0003改為0006,測(cè)試是否影響從表。程序:update dept set Deptno=0006where Deptno=0003結(jié)果:故將表dept中的部門號(hào)0003改為0006,會(huì)影響到從表。原因是各表之間已經(jīng)建立聯(lián)系,person表參照的是dept表, person表中已有Deptno=0003的數(shù)據(jù),當(dāng)dept表中的Deptno=0003數(shù)據(jù)發(fā)生改變時(shí),person表中數(shù)據(jù)也會(huì)發(fā)生改變,由于有約束,所以限制了程序的執(zhí)行。(3)刪除表dept中部門號(hào)為00
14、01的員工的數(shù)據(jù),測(cè)試是否影響從表。程序:delete from deptwhere deptno=0001結(jié)果:故刪除表dept中部門號(hào)為0001的員工的數(shù)據(jù),會(huì)影響到從表。原因是各表之間已經(jīng)建立了聯(lián)系,person表參照的是dept表,且person表中已有deptno=0001的數(shù)據(jù),當(dāng)dept表中deptno=0001的數(shù)據(jù)發(fā)生改變時(shí),person表中數(shù)據(jù)勢(shì)必會(huì)發(fā)生改變。由于有約束,所以限制了程序的執(zhí)行。實(shí)驗(yàn)14:測(cè)試對(duì)從表進(jìn)行插入、更新及刪除操作時(shí)的影響。(請(qǐng)寫明原因)要求:(1) 向表person中插入一行數(shù)據(jù)(000012,宋全禮,男、1980-7-17,初級(jí),0005),測(cè)試是
15、否違背參照完整性。程序:insert into person(P_no,P_name,Sex,Birthdate,Prof,Deptno) values(000012,宋全禮,男,1980-7-17,初級(jí),0005)結(jié)果:向表person中插入一行數(shù)據(jù)(000012,宋全禮,男、1980-7-17,初級(jí),0005),會(huì)影響到其他從表。原因是各表之間已經(jīng)建立連接,person表參照的是dept表,person表中的數(shù)據(jù)依賴于dept表中的數(shù)據(jù),改變person表中的數(shù)據(jù)勢(shì)必會(huì)影響dept表,違背了參照完整性。由于有約束,所以限制了程序的執(zhí)行。(2)刪除表中工號(hào)為000005的員工數(shù)據(jù),測(cè)試是否違
16、背參照完整性。程序:delete from person where P_no=000005結(jié)果:刪除表中工號(hào)為000005的員工數(shù)據(jù),會(huì)影響到person表的數(shù)據(jù)。原因是各表之間已經(jīng)建立了聯(lián)系,salary表參照的是person表,且,salary表中已有P_no=000005的數(shù)據(jù),當(dāng)person表中刪除P_no=000005的數(shù)據(jù)時(shí),勢(shì)必會(huì)影響到salary表,違背了參照完整性。由于有約束,所以限制了程序的執(zhí)行。(四)用Microsoft Access設(shè)計(jì)Employee數(shù)據(jù)庫系統(tǒng)(5學(xué)時(shí))要求:(1) 創(chuàng)建表Person表Salary表Dept表(2) 創(chuàng)建關(guān)聯(lián)(3) 用查詢?cè)O(shè)計(jì)工具創(chuàng)建查詢Person表的查詢Salary表的查詢Dept表的查詢(4) 創(chuàng)建簡單的窗體表person的窗體表salary的窗體表dept的窗體(5) 創(chuàng)建基本報(bào)表表person的報(bào)表表salary的報(bào)表表dept的報(bào)表三、總結(jié)與體會(huì)通過這次實(shí)驗(yàn),我學(xué)到了很多東西,包括建表,導(dǎo)入數(shù)據(jù),查詢,插入。最重要的是我們
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024成都工貿(mào)職業(yè)技術(shù)學(xué)院輔導(dǎo)員招聘筆試真題
- 2025年板栗機(jī)械化剝殼去衣機(jī)項(xiàng)目發(fā)展計(jì)劃
- 第3課時(shí) 按比分配教案 人教版數(shù)學(xué)六年級(jí)上冊(cè)
- 2024年新疆維吾爾自治區(qū)消防救援總隊(duì)招錄消防員真題
- 2025年內(nèi)蒙古事業(yè)單位招聘考試筆試試題【答案】
- 消費(fèi)信貸對(duì)消費(fèi)行為的影響分析
- 消防員工作匯報(bào)
- 項(xiàng)目洞室開挖施工安全防護(hù)措施
- 電話客服實(shí)習(xí)報(bào)告范文4篇
- 2025年物理特性分析產(chǎn)品項(xiàng)目建議書
- 嘔吐中醫(yī)護(hù)理的方案課件
- 重慶市地圖ppt模板
- 中醫(yī)四大經(jīng)典題目及答案
- 一例給藥錯(cuò)誤不良事件匯報(bào)
- 高三學(xué)生復(fù)讀第一課-主題班會(huì)課件(共68張PPT)
- DL∕T 5622-2021 太陽能熱發(fā)電廠儲(chǔ)熱系統(tǒng)設(shè)計(jì)規(guī)范
- 教師職業(yè)道德課件-教師職業(yè)道德
- 金康合同94中英文版
- 《嘔吐的常見原因》PPT課件
- 春夏季傳染病防治知識(shí)
- 機(jī)械制造企業(yè)安全檢查表
評(píng)論
0/150
提交評(píng)論