第一篇:黑大數據庫實驗報告
黑龍江大學
“數據庫系統原理課程設計”總結報告
學院 年級 專業 學號 姓名 報告日期 成績
軟件學院 2014級 軟件工程 20143983 陸芝浩 2016.11.9
黑龍江大學軟件學院
1、開發環境
操作系統: Windows7
編程語言環境 :VC++6.0
2、DBMS系統架構
3、DBMS主要功能模塊
1、實現SQL語句中的Create Table建表語句,建立相應的數據庫表,并生成相應的數據字典文件和數據文件。
2、實現alter table表模式的修改功能: ①能夠為已建立的表添加屬性。②能夠從已建立的表中刪除屬性。
3、實現drop table刪除表功能。
4、實現create index創建索引的功能。
5、實現drop index刪除索引的功能。
6、實現insert可以向已經創建的表插入元組。
7、實現delete從已經創建的表中刪除元組。
8、實現update修改表中的數據。
9、實現SELECT語句,包括: 實現單表全屬性查詢。實現單表單屬性查詢。實現多表的連接全屬性查詢。
實現多表的連接和選擇條件的全屬性查詢。實現多表的連接的單屬性查詢。實現多表的連接和選擇的單屬性查詢。實現單表的選擇的單屬性查詢。實現單表的選擇的全屬性查詢。
10、利用啟發式關系代數優化算法進行查詢優化。
11、建立訪問權限,根據數據字典(DD)實現對數據庫的安全性檢查和完整性約束的機制。
3.1 SQL語言的詞法和語法分析
(1)功能介紹
通過編譯原理的知識對輸入的SQL語句進行詞法分析,將SQL語句拆分為若干個單詞,對其進行語法分析,確定輸入的SQL語句的含義.(2)相關理論
利用編譯原理的相關知識,對輸入的SQL語句進行模仿SQL語言的詞法及語法結構的分析。
(3)算法描述
在調用的每個相關模塊的的起始部分,對該條SQL語句進行拆分,對每一個關鍵字位置進行比對處理,如有詞法或語法錯誤,立即停止此次調用模塊操作,并報錯,重新輸入SQL語句。
(4)程序流程圖
開始SQL語句字符掃描詞法分析報錯N關鍵字正確?Y語法分析YNSQL語句正確?Y命令執行打印結果繼續輸入SQL語句?N結束
(5)測試用例與實驗結果
詞法語法分析在各功能中體現。
3.2創建數據庫及數據操作功能
功能介紹
1、實現建立數據庫表的結構的功能。(1)支持整型、字符型數據。(2)以文件形式保存基本表。(3)建立相應的數據字典。
2、實現輸入數據庫表記錄的功能。
3、實現刪除數據庫表記錄的功能。
4、實現修改數據庫表記錄的功能。
5、實現顯示數據庫表結構和內容.6、實現在已有的表中添加屬性的功能;
7、實現從已有的表中刪除屬性的功能;
8、實現刪除表的功能。(2)相關理論
主要是對文件操作,讀文件、寫文件及文件指針的運用。(3)算法描述
創建表:
讀取由詞法分析產生的文件,根據相應的關鍵字判斷應該進行何種操作,建表前應先判斷該表是否存在,若不存在,將該表的信息及各個屬性的信息寫入文件。生成相應的數據字典和
數據文件。
程序流程圖:
開始輸入SQL語句N詞法分析關鍵字正確?Y語法分析語法正確?Y執行SQLN報錯Y表存在?N創建表創建相應表文件完成
刪除表:
1.根據要刪除的表名,查找該表是否存在。
2.該表若存在,則將調用remove函數刪除該表,并將與該表有關的信息及文件刪除。
程序流程圖:
開始輸入SQL語句N詞法分析關鍵字正確?Y語法分析語法正確?Y執行SQLN結束表不存在N表存在?Y刪除表刪除相應表文件完成
增加屬性:
1.對要進行操作的表判斷是否存在;
2.判斷要加入的屬性在表中是否已存在,若不存在則將要加入的屬性加入到該表中,相應文件同時進行更新。
程序流程圖:
開始輸入SQL語句N詞法分析關鍵字正確?Y語法分析語法正確?Y執行SQLN結束表不存在N表存在?Y屬性存在Y添加屬性存在?添加屬性更新相應表文件完成
刪除屬性:
1.判斷該表是否存在;
2.斷該表中是否存在該屬性,若存在,則將該屬性刪除,并更新相應文件的信息;
程序流程圖:
開始輸入SQL語句N詞法分析關鍵字正確?Y語法分析語法正確?Y執行SQLN結束表不存在N表存在?Y屬性不存在N刪除屬性存在?Y刪除屬性更新相應表文件完成
插入數據:
1.判斷表是否存在
2.判斷表中是否存在主鍵,若存在主鍵,則判斷插入數據的主鍵是否與已有數據的主鍵重復。若該表不存在主鍵,則直接插入數據,并且更新
程序流程圖:
開始輸入SQL語句N詞法分析關鍵字正確?Y語法分析語法正確?Y執行SQL結束N結束表不存在N表存在?Y主鍵重復插入失敗YY主鍵存在?N插入數據N表有主鍵?更新相應表文件插入數據完成
刪除記錄:
1.表是否存在
2.判斷欲刪除數據是否存在 3.根據判斷條件進行刪除 4.更新相關文件
程序流程圖
開始輸入SQL語句N詞法分析關鍵字正確?Y語法分析語法正確?Y執行SQL完成N結束表不存在N表存在?Y更新相應表文件數據不存在N數據是否存在Y插入數據
(5)測試用例與實驗結果
①建表和修改表的結構 ②添加主鍵和插入數據 ③刪除記錄 ④修改記錄 ⑤刪除表
3.3索引的創建及刪除
(1)功能介紹
1.在主鍵上建立主索引。2.在主鍵上建立輔助索引。3.在非主鍵上建立輔助索引。4.刪除索引。
(2)相關理論
對主鍵建立索引,利用二分查找法和順序查找法,二分查找法可縮短查詢時間,構造一個索引文件,查詢時只要對索引文件進行查詢即可,縮短了處理時間。
(3)算法描述
1.若是創建主索引,首先從表中找到主鍵;2.然后利用冒泡排序對數據進行從小到大排序;3.建立主索引中,1條索引記錄每個磁盤塊中存放5個元組。4輔助索引每條索引記錄都對應一個元組,輔助索引可以是無序文件,最后將其寫入索引文件中。
程序流程圖
開始輸入SQL語句N詞法分析關鍵字正確?Y語法分析語法正確?Y執行SQL結束N結束表不存在N表存在?Y該屬性是非主屬性,建主鍵失敗對每個元組該屬性建立輔助索引N建立主索引?Y該屬性是主屬性?Y完成
對排序完成的數據建立主索引對表中文件以主屬性進行排序
測試用例與實驗結果
立主索引:
create index main student_index on student(num);
②建立主鍵上的輔助索引:
create index fuzhu student_index on student(num);
③建立非主鍵上的輔助索引:
create index fuzhu student_index on student(name);
3.4查詢功能
(1)功能介紹
①實現全關系選擇。
②實現單關系選擇。
③實現兩個關系的連接。
④實現兩個關系的連接和選擇。
⑤實現單關系投影。
⑥實現單關系選擇和投影。
⑦實現兩個關系的連接和投影。
⑧實現兩個關系的連接,投影和選擇。
相關理論
查找分為單表查詢以及單表索引查詢,多表查詢是調用了單表查詢,然后進行選擇,連接以及投影。全關系查詢是將字典文件中該表的所有屬性取出,條件過濾是將SQL語句中的條件抽取出來依照字典文件中的表結構進行字段的一次排查將符合條件的留在結果集合中。不符合條件的從結果集合中刪除。完成之后按照字段進行投影工作,投影同樣是依照sql語句以及數據字典進行的。多表查詢,是將sql語句中涉及的表首先行進單表查詢,將結果集合分別進行條件過濾,表連接操作最后進行投影工作。
(3)算法描述 a.全關系的選擇操作
掃描數據字典,判斷是否有該表,如果有,則掃描數據文件,將文件中內容全部輸出。
b.實現單關系的投影操作
掃描數據字典,判斷是否有該表,若有該表,記錄要投影的屬性是第幾個,掃描數據文件,將每個元組中要查詢的屬性輸出。
c.實現單關系的選擇操作(允許多條件)
掃描數據字典,判斷是否有該表,若有該表,掃描數據文件,利用循環將滿足“where”后條件的元組選出。
d.實現單關系的選擇投影操作(允許多條件)
掃描數據字典,判斷是否有該表,若有該表,則記錄需要投影的屬性是第幾個,查找數據文件,利用循環將滿足“where”條件的元組找出并屬性相應的屬性值。
e.實現兩個關系的連接操作
掃描數據字典,判斷是否有這兩個表,若有,則查找相關屬性,將兩個表中的相關屬性依據條件進行匹配,若匹配成功,則表示連接成功,輸出連接結果。
f.實現兩個關系的選擇和連接操作
在以上的連接結果中挑選符合條件的元組輸出。
g.實現兩個關系的選擇、投影和連接操作
在以上的結果中選擇要投影的屬性,輸出。
程序流程圖
開始輸入SQL語句詞法分析NN關鍵字正確?Y語法分析結束表不存在YN單表查詢?Y全屬性查詢?N條件查詢?Y條件滿足?結束未查詢到相關數據NN表存在?語法正確?執行SQLYN顯示查詢屬性內容Y全屬性查詢?N連接查詢?連接查詢?YNN連接條件滿足?YY有選擇條件?N查詢到相關數據?NYYY顯示查詢結果N條件查詢?Y條件滿足?YYY連接條件滿足?N選擇條件滿足?NN結束
測試用例與實驗結果
①全關系選擇: select * from student;
②單關系選擇:
select * from student where num=1000;
③實現兩個關系的連接:
select * from student,xuanxiu where num=x_num;
④實現兩個關系的連接和選擇:
select * from student,xuanxiu where num=x_num and num >1001;
⑤單關系投影:
select name,sex from student;
⑥單關系選擇和投影:
select name,sex from student where num=1007;
⑦兩個關系的連接和投影:
select num,grade from student,xuanxiu where num=x_num;
⑧兩個關系的連接,投影和選擇:
select num,grade from student,xuanxiu where num=x_num and num>1001;
3.6數據庫保護功能(1)功能介紹
要求根據數據字典(DD)實現對數據庫的安全性檢查。包括設置口令、密碼和權限等。相關理論
掌握數據庫系統的安全性保護機制。(3)算法描述
編寫一個登陸界面,限制用戶名和密碼,實現安全性保護機制,添加的用戶名和密碼都寫到了mima.txt文件當中。(4)程序流程圖
(5)測試用例與實驗結果
①原來mima.txt文件中的數據:
②添加用戶名:
root
密碼:8833 create user ttt identified by 888;
加后mima.txt文件中的數據:
4、總結
通過模擬DBMS的實現,使理論與實踐得到融合,更深刻的理解了相關原理及實現。通過實驗的模擬,對關系代數的運算,SQL語句的使用,有了更多的掌握,同時對數據庫的理解更深刻,提高了編程能力。
5、參考文獻
《數據庫系統原理》第2版 電子工業出版社 李建中編著
《數據結構—用C語言描述》 唐策善 清華大學出版社。
第二篇:數據庫實驗報告
數據庫實驗報告
一、題目要求
某銀行準備開發一個銀行業務管理系統,通過調查,得到以下的主要需求:
銀行有多個支行。各個支行位于某個城市,每個支行有唯一的名字。銀行要監控每個支行的資產。銀行的客戶通過其身份證號來標識。銀行存儲每個客戶的姓名及其居住的街道和城市。客戶可以有帳戶,并且可以貸款。客戶可能和某個銀行員工發生聯系,該員工是此客戶的貸款負責人或銀行帳戶負責人。銀行員工也通過身份證號來標識。員工分為部門經理和普通員工,每個部門經理都負責領導其所在部門的員工,并且每個員工只允許在一個部門內工作。每個支行的管理機構存儲每個員工的姓名、電話號碼、家庭地址及其經理的身份證號。銀行還需知道每個員工開始工作的日期,由此日期可以推知員工的雇傭期。銀行提供兩類帳戶——儲蓄帳戶和支票帳戶。帳戶可以由2個或2個以上客戶所共有,一個客戶也可有兩個或兩個以上的帳戶。每個帳戶被賦以唯一的帳戶號。銀行記錄每個帳戶的余額、開戶的支行以及每個帳戶所有者訪問該帳戶的最近日期。另外,每個儲蓄帳戶有其利率,且每個支票帳戶有其透支額。每筆貸款由某個分支機構發放,能被一個或多個客戶所共有。每筆貸款用唯一的貸款號標識。銀行需要知道每筆貸款所貸金額以及逐次支付的情況(銀行將貸款分幾次付給客戶)。雖然貸款號不能唯一標識銀行所有為貸款所付的款項,但可以唯一標識為某貸款所付的款項。對每次的付款需要記錄日期和金額。
二、需求分析
這一部分主要是根據實驗需求對銀行系統需求中的實體、實體屬性以及實體之間的關聯進行確認,以便畫出正確的概念模型。
2.1 實體確認
根據需求分析確認實體:銀行員工、銀行支行、客戶、賬戶(其中:儲蓄賬戶、支票賬戶是繼承實體賬戶而來)、貸款、支付(弱實體)。
2.2 實體屬性確認
銀行員工:身份證號(pi)、姓名、電話號碼、家庭地址、開始工作日期 銀行支行:支行名、資產、城市
客戶:身份證號、姓名、街道、所在城市 賬戶:賬戶號、余額、最近訪問日期 支票賬戶:透支額 儲蓄賬戶:利率 2.3 實體關系確認
賬戶和支行:N:1定義關系為Relationship_accout_bank 客戶和貸款:M:N定義關系為Relationship_client_loan 客戶和員工:M:1 定義關系為 Relation_client_staff 貸款和支行:1:N 定義關系為 Relationship_loan_bank 客戶和賬戶:M:N 定義關系為 client__accout 貸款發放信息和貸款:N:1 定義關系為 Relationship_loan_pay 支行和員工:1:N 定義關系為Relationship_staff_bank
員工和員工:1:N 定義關系為 Relationship_lead
三、概念模型(CDM)
根據sybase power designer畫出概念模型(CDM),如下圖所示:
四、物理模型(PDM)
根據概念模型轉化成物理模型(PDM),如下圖所示:
第三篇:數據庫實驗報告
實驗4SQL高級應用
【實驗目的】
1、掌握在SQL SERVER 2005下進行數據還原的方法。
2、掌握SQL語句的查詢統計功能和數據更改功能。
【實驗內容】
1.還原factory數據庫。
2.在factory數據庫上,完成如下各題。
(1)刪除factory數據庫上各個表之間建立的關系。(2)*顯示各職工的工資記錄和相應的工資小計。
(3)*按性別和部門名的所有組合方式列出相應的平均工資。
(4)在worker表中使用以下語句插入一個職工記錄。職工號:20;姓名:陳立;性別:女;出生日期:55/03/08;黨員否: 1;參加工作:75/10/10;部門號:4。
在depart表中使用以下語句插入一個部門記錄。部門號:5;部門名:設備處。對worker和depart表進行全外連接顯示職工的職工號、姓名和部門名,然后刪除這兩個插入的記錄。
(5)顯示最高工資的職工的職工號、姓名、部門名、工資發放日期和工資。(6)顯示最高工資的職工所在的部門名。
(7)顯示所有平均工資低于全部職工平均工資的職工的職工號和姓名。(8)*采用游標方式實現(6)小題的功能。(9)*采用游標方式實現(7)小題的功能。
(10)*先顯示worker表中的職工人數,開始一個事務,插入一個職工記錄,再顯示worker表中的職工人數,回滾該事務,最后顯示worker表中的職工人數。
【實驗報告要求】
1.第(1)寫出操作步驟。
2.其他各題寫出實現要求的命令/程序,并列出執行結果。
【操作步驟】
1.還原factory數據庫。
2.在factory基礎上,有
(1)刪除factory數據庫上各個表之間建立的關系。
(2)*顯示各職工的工資記錄和相應的工資小計。
Select 職工號,姓名,工資from salary Order by 職工號
Compute sum(工資)by 職工號
(3)*按性別和部門名的所有組合方式列出相應的平均工資。
select worker.職工號,worker.性別,depart.部門名,avg(工資)as'平均工資' from worker inner join depart on worker.部門號=depart.部門號 inner join salary on worker.職工號=salary.職工號
group by worker.職工號,worker.性別,depart.部門名
order by worker.職工號
(4)在worker表中使用以下語句插入一個職工記錄。職工號:20;姓名:陳立;性別:女;出生日期:55/03/08;黨員否: 1;參加工作:75/10/10;部門號:4。
insert into worker values('20','陳立','女','1955-03-08','1','1975-10-10',4)
在depart表中使用以下語句插入一個部門記錄。部門號:5;部門名:設備處。
Insert into depart Values('5','設備處')對worker和depart表進行全外連接顯示職工的職工號、姓名和部門名,然后刪除這兩個插入的記錄。
use factory Select b.部門號,c.姓名
from salary a,departb,worker c delete from worker where 職工號=20 delete from depart where 部門號=5(5)顯示最高工資的職工的職工號、姓名、部門名、工資發放日期和工資。
Use factory Select b.部門名,c.職工號,c.姓名,b.部門名,a.日期,a.工資 from salary a,departb,worker c Where 工資in(select max(a.工資)from salary a)and a.職工號=c.職工號and b.部門號=c.部門號(6)顯示最高工資的職工所在的部門名。
Use factory Select b.部門名from salary a,departb,worker c Where 工資in(select max(a.工資)from salary a)and c.部門號=b.部門號and a.職工號=c.職工號
(7)顯示所有平均工資低于全部職工平均工資的職工的職工號和姓名。
Use factory Select a.職工號,a.姓名,avg(b.工資)as平均工資from worker a,salary b where a.職工號=b.職工號 group by a.職工號,a.姓名
having avg(工資)<(select avg(工資)from salary)
第四篇:數據庫實驗報告
南華大學
計算機科學與技術學院
實驗報告
(2013 ~2014 學
第二學期)
課程名稱 實驗名稱
數據庫原理與技術
姓名 張濤 學號 20124350230
專業 軟件工程
班級 02班
地點
教師 劉征海 實驗1 認識DBMS 一.實驗題目
認識DBMS 二.實驗要求
1.利用管理工具創建數據庫、表和表間關系。
實驗目的和注意事項 基本操作,進一步理解數 據庫、表、表間關系的概念。
注意事項:創建數據庫和數據表時應認真,如果出現錯誤,應相應地修改結構或刪除。三.實驗代碼(內容)
(1)利用SQL Server Management Studio 創建數據庫,名稱為【學生選課
YYXXXX】。其中YY為專業代號,計算機為JS,軟件工程為RJ,網絡為WL,數媒為
SM;XXXX為各位同學的學號中的最后四位 實驗目的:熟悉SQL Server Management Studio
(2)在【學生選課YYXXXX】中建立數據表,表的定義如下所示。
學生YYXXXX(學號,姓名,性別,出生日期,院系名稱,備注);
課程YYXXXX(課程號,課程名,先行課,學分); 選修YYXXXX(學號,課程號,分數)。
要求定義每張表的主碼,為屬性選擇合適的數據類型,決定是否允許為空,為【性別】和【學分】屬性定義默認值。
(3)定義表之間的關系。
(4)分別為表錄入幾行數據記錄,同時練習數據的修改和刪除操作
2.利用SQL 語句創建數據庫、表和表間關系 實驗目的和注意事項
實驗目的:熟悉創建數據庫和數據表的SQL 語句。
注意事項:輸入SQL 語句時應注意,語句中均使用西文操作符號。
實驗內容
在SQL Server Management Studio 中新建查詢,實現以下操作。(1)用SQL 語句創建數據庫,名稱為“StudentCourseYYXXXX”。其中YYXXXX 為各位同學的學號中的最后四位。
(2)用SQL 語句創建StudentCourseYYXXXX 中的3 張表,同時指定主碼、外 碼、默認值等。
(3)直接在表數據窗口中錄入表數據記錄。
實驗 2 交互式 SQL(1)
一、數據庫單表查詢 實驗目的和注意事項
實驗目的:掌握單表查詢SELECT、FROM、WHERE 的用法,特別要掌握比較運 算符、邏輯運算符的使用。注意事項:子句WHERE<條件>表示元組篩選條件;子句HAVING<條件>表示元
組選擇條件;子句HAVING<條件>必須和GROUP BY 子句配合使用;注意輸入SQL語句時均應使用西文操作符號。實驗內容
(1)創建查詢窗口,設置查詢環境。(2)單表查詢 實驗步驟
(1)選擇要查詢的數據庫,右擊【新建查詢】,或者選擇系統菜單中的【文
件】|【新建】|【使用當前連接查詢】命令,或者單擊標準工具欄中的【新建查
詢】按鈕,即可新建一個查詢窗口。如果查詢數據庫不是StudentCourseYYXXXX,則可在可用數據庫下拉列表中進行選擇,或用USE 語句調用。
(2)在查詢窗口中輸入SELECT 查詢語句,對StudentCourseYYXXXX 數據庫 進行查詢操作。
① 查詢計算機系全體學生的信息
② 查詢姓“李”的學生的學號和姓名。
③ 查詢課程表中先行課為空的課程名。
④ 查詢考試成績有不及格的學生的學號。
⑤ 求選修了C1 課程或C2 課程的學生的學號及成績。
⑥ 查詢全體計算機系學生的姓名及其年齡。
⑦ 查詢計算機系在1986-1987 年之間出生的學生的姓名。
⑧ 查詢姓“李”的前兩個學生的學號和姓名。
⑨ 查詢選修了兩門以上課程的學生學號與課程數。
⑩ 查詢選修課程數大于等于2 的學生的學號、平均成績和選課門數,并按平均成績降序排列。
二、數據庫多表連接查詢 實驗目的和注意事項
實驗目的:理解多表查詢的概念;掌握多表查詢的SELECT、FROM、WHERE、JOIN子句的用法,特別要求比較內連接、外連接的結果。
注意事項:內連接、左外連接和右外連接的含義及表達方法;注意輸入SQL 語 句時均應使用西文操作符號。實驗內容
(1)創建查詢窗口,設置查詢環境。(2)多表復雜查詢。實驗步驟
新建查詢窗口,選擇StudentCourseYYXXXX 為當前數據庫,輸入如下SELECT 查詢語句并執行,對數據庫進行多表連接查詢操作。(1)查詢選修了【數據庫原理】的計算機系的學生學號和姓名。
(2)查詢每一門課的間接先行課(即先行課的先行課)。
(3)查詢學生的學號、姓名、選修課程的名稱和成績。
(4)查詢選修了課程的學生姓名。
(5)查詢所有學生的信息和所選修的課程。
(6)查詢已被選修的課程的情況和所有課程的名字。
(7)列出學生所有可能的選修情況。
(8)查找計算機系的學生選修課程數大于2 的學生的姓名、平均成績和選課 門數,并按平均成績降序排列。
實驗 3 交互式 SQL(2)數據庫嵌套查詢和組合查詢 實驗目的和注意事項
實驗目的:掌握查詢中嵌套查詢和組合查詢的操作方法,進一步加深對 SELECT 語句的理解。
注意事項:子句的使用;注意語句的層次嵌套關系和括號的配對使用問題;
注意輸入SQL 語句時均應使用西文操作符號。實驗內容(1)創建查詢窗口,設置查詢環境。(2)分組查詢。(3)統計查詢。(4)嵌套查詢。實驗步驟
新建查詢窗口,選擇StudentCourseYYXXXX 為當前數據庫,輸入如下SELECT 查詢語句并執行,對數據庫進行嵌套查詢和組合查詢操作。
(1)統計選修了【數據庫原理】課程的學生人數。
(2)查詢沒有選修【數據庫原理】課程的學生信息。
(3)查詢其他系中比計算機系學生年齡都小的學生。
(4)查詢被0602001 學生或0602002 學生所選修的課程的課程號(用UNION 組合查詢與IN 條件查詢兩種方法實現)。
(5)查詢0602001 學生和0602002 學生同時選修的課程的課程號(用
INTERSECT 組合查詢與EXISTS 嵌套子查詢兩種方法實現)。
(6)查詢被0602001 學生選修,但沒有被0602002 學生所選修的課程的課程
號(用EXCEPT 組合查詢與NOT EXISTS 嵌套子查詢兩種方法實現)。
實驗 4 交互式 SQL(3)數據的更新 實驗目的和注意事項
實驗目的:熟悉插入、修改和刪除SQL 語句的用法。注意事項:對于INSERT 語句,要求理解默認值約束、空值約束在插入時所 起的作用。實驗內容
(1)使用INSERT 語句在數據庫的表中插入幾行記錄。(2)使用UPDATA 語句修改某個數據。(3)使用DELETE 語句刪除某行記錄。實驗步驟
(1)新建查詢窗口,選擇StudentCourseYYXXXX 為當前數據庫。
(2)在已建立StudentCourseYYXXXX 數據庫和StudentsYYXXXX、CoursesYYXXXX、SCYYXXXX 3 個表的基礎上,向StudentCourseYYXXXX數據庫中 的表更新數據。
① 向表StudentsYYXXXX 中插入(0601001,趙林, 男,1985-09-08,計算機)的記錄。
② 向SCYYXXXX 表中添加一個學生的選課記錄,學號為0601001,所選的課
程號為C2。SC表中有Sno、Cno、Grade 這3 個列。這里只知道學號和課程號,不知道成績值。
③ 向表StudentsYYXXXX 中插入(0601002,張修雨,default)記錄,該記錄 的數據中default 表示默認值‘男’,其他數據表示空值。
④ 用CREATE 語句建立表StudentBAK1YYXXXX,包含(與Students 的Sno、Sname、Sdept 相同)3 個字段,然后用INSERT SELECT 語句實現向
StudentBAK1YYXXXX 添加StudentsYYXXXX 表中的計算機系學生的學號、姓名、所在系的信息。
⑤ 用 SELECT...INTO 語句實現把StudentsYYXXXX 表中1986 年后(包含
1986 年)出生的學生的學號、姓名存儲到一個新表StudentBAK2YYXXXX。
⑥ 將姓名為【趙林】的同學的所在系改為【機電系】,愛好改為【足球】。
⑦ 將選修了課程名為【數據庫原理】的學生成績加5 分。⑧ 將StudentCourseYYXXXX
數據庫的StudentBAK1YYXXXX 表中所有姓趙的 同學刪除。
⑨ 刪除計算機系選修成績不及格的學生選修記錄。⑩ 將除。StudentCourseYYXXXX
數據庫的StudentBAK2YYXXXX 表中的所有行刪
四.實驗總結
實驗一要注意創建數據庫和數據表時應認真,如果出現錯誤,應相應地修改結構或刪除。輸入SQL 語句時應注意,語句中均使用西文操作符號;實驗二應注意注意group和having以及where的搭配使用的情況;實驗三注意注意輸入SQL 語句時均應使用西文操作符號,子句的使用,注意語句的層次嵌套關系和括號的配對使用問題;實驗四注意輸入SQL 語句時均應使用西文操作符號,對于INSERT 語句,要求理解默認值約束、空值約束在插入時所起的作用。注意插入,修改,新建表,刪除語句的寫法,并且掌握把原表中的數據轉存到新表中的語句寫法。
第五篇:數據庫實驗報告
10包三 李雅 100910306
實驗報告
一、實驗題目:
數據庫基本操作實驗
二、實驗目的:
掌握數據庫的建立、表的設計基本方法,通過實際操作熟練掌握數據庫的基本操作——數據的輸入與導入,表的設計。
三、實驗內容:
建立課程管理數據庫,要求:
1.輸入老師、開設課程、選課表、學生基本數據等,并輸入一些學生不同課程的考試成績。
2.建立查詢表,分別是成績查詢、學分查詢、不及格學生查詢。
3.建立窗體,分別顯示不及格學生的姓名、課程名稱、成績和班級ID。在成績查詢中顯示學生姓名及各科成績。在教師基本信息中顯示編號、職稱、工資、院系、等。同時建立開設課程表和學生基本信息的窗體查詢。提供用戶一個簡單的應用程序界面,方便用戶操作使用。
4.制作報表。包括教師的授課報表,課程名稱及課程類別。學生的總成績報表,包括課程名稱、成績和學分。
注:課程及考試成績可以任意輸入。選課按照班級確定。
四、實驗過程:
1、數據庫表設計
在表格內填入教師基本信息、開始課程、課程基本信息、選課表、學生基本信息。
教師基本信息:
開設課程:
/ 7
10包三 李雅 100910306
課程基本信息:
選課表:
/ 7
10包三 李雅 100910306
學生基本信息:
2、查詢表: 成績查詢:
/ 7
10包三 李雅 100910306
學分查詢:
不及格學生查詢:
/ 7
10包三 李雅 100910306
3、窗體設計: 不及格學生信息查詢:
成績查詢:
教師基本信息查詢:
開設課程信息查詢:
/ 7
10包三 李雅 100910306
學生基本信息查詢:
4、報表: 教師的授課報表:
/ 7
10包三 李雅 100910306
學生的總成績:
/ 7