第一篇:大學(xué)生數(shù)據(jù)庫實驗課實驗四報告
《數(shù)據(jù)庫技術(shù)及應(yīng)用》
實驗四、SQL語言數(shù)據(jù)定義語言DDL
學(xué)生姓名
學(xué)生班級
學(xué)生學(xué)號
指導(dǎo)老師
重慶郵電大學(xué)計算機學(xué)院 計算機專業(yè)實驗中心 一. 實驗內(nèi)容
在 Navicat for MySQL 中使用 CREATE 命令完成對表、索引、視圖、同義詞 的創(chuàng)建,使用 DROP 命令完成對表、索引、視圖、同義詞的刪除,使用 ALTER 命 令對表結(jié)構(gòu)進行修改及完整性約束的增加、刪除。
二. 實驗步驟
1.啟動 Navicat for MySQL,在 MySQL – 新建連接中完成連接參數(shù)配置。2.登錄到本地數(shù)據(jù)庫服務(wù)器后,連接到 test 數(shù)據(jù)庫上。3.用 SQL 語句(如下),建立如下所示的表 student;
4.同理
5.同理
6.用 Drop Table 語句刪除表 CourseAa。
7.用 Alter Table 語句更新表 ChooseBb,添加一個屬性名 Bb4,類型 Varchar, 長度 20,完整性約束設(shè)為非空值,缺省值設(shè)為字符“系統(tǒng)測試值”。
8.用 Alter Table 語句更新表 ChooseBb,添加一個屬性名 Bb5,類型 Varchar, 長度 10,完整性約束設(shè)為主碼。完成后,表 ChooseBb 的設(shè)計如下所示。
9.用 Create View 語句建立一個視圖 View_Choosebb,生成的視圖屬性名(View_bb1,View_bb2,view_bb3), 其中 View_bb1 對應(yīng)于基表 ChooseBb 的 Bb1、View_bb2 對應(yīng)于基表 ChooseBb 的 Bb4、view_bb3 對應(yīng)于基表 ChooseBb 的 Bb5。完成后,視圖 View_Choosebb 的設(shè)計如下所示。
10.用 Drop View 語句刪除視圖 View_Choosebb。
11.用 Create Index 語句對表 ChooseBb 的 Bb2 屬性建立一個升序索引,索引名 Index_bb2。用 Create Index 語句對表 ChooseBb 的 Bb4 屬性建立一個降序索引,索引名 Index_bb4。
12.用 Drop Index 語句刪除索引 Index_bb2。
三. 心得體會
因為有理論課的基礎(chǔ),本次實驗相對輕松,很快就完成了。不過中間出現(xiàn)了許多小錯誤,還好及時改正了。在實踐中體會這些平時學(xué)理論未注意到的小細節(jié)才能更好的掌握知識。
第二篇:大學(xué)生數(shù)據(jù)庫實驗課實驗六報告
《數(shù)據(jù)庫技術(shù)及應(yīng)用》
實驗六、SQL數(shù)據(jù)查詢語言 DQL
學(xué)生姓名 學(xué)生班級 學(xué)生學(xué)號 指導(dǎo)老師
重慶郵電大學(xué)計算機學(xué)院 計算機專業(yè)實驗中心
一. 實驗內(nèi)容
本次實驗用于了解SQL語言的SELECT語句對數(shù)據(jù)的查詢,學(xué)會在Navicat for MySQL中用SELECT語句對表中的數(shù)據(jù)進行簡單查詢、連接查詢、嵌套查詢和組合查詢。
實驗步驟:執(zhí)行以下內(nèi)容
1.啟動Navicat for MySQL,登錄到本地數(shù)據(jù)庫服務(wù)器后,連接到test數(shù)據(jù)庫上。用Create Table建立Student表、Course表和Choose表:
(建表語句并非本次重點略)
2.用INSERT語句分別向Student表中插入3個元組、Course表中插入3個元組、Choose表中插入7個元組:
1中的截圖就是已經(jīng)運行這些語句后截圖的結(jié)果。
3.用SELECT語句,查詢計算機學(xué)院學(xué)生的學(xué)號和姓名。
4.用between…and…表示查詢條件,查詢年齡在20~23歲的學(xué)生信息。
5.用SELECT語句的COUNT()聚集函數(shù),統(tǒng)計Student表中學(xué)生總?cè)藬?shù)。
6.用SELECT語句的max()、min()、sum()、avg()四個聚集函數(shù),計算Choose表中C1課程的最高分、最低分、總分、平均分。
7.用SELECT語句對空值(NULL)的判斷條件,查詢Course表中先修課稱編號為空值的課程編號和課程名稱。
8.查詢學(xué)生的學(xué)號、姓名、選修的課程名及成績。
9.用SELECT的存在量詞EXISTS,查詢與“張三”在同一個學(xué)院學(xué)習(xí)的學(xué)生信息。
10.用SELECT語句的嵌套查詢,查詢選修C1課程的成績低于“張三”的學(xué)生的學(xué)號和成績。
11.用SELECT語句的組合查詢(UNION),查詢選修了C1課程或者選修了C3課程的學(xué)生學(xué)號
12.用SELECT語句的組合查詢(UNION)與DISTINCT短語,查詢選修了C1課程或者選修了C3課程的學(xué)生學(xué)號,并取消重復(fù)的數(shù)據(jù)。
二. 遇到的問題&解決
在步驟10的嵌套查詢中因為多個表中存在同名列,而我的語句指代不明一直錯誤,在老師的幫助下發(fā)現(xiàn)了這個問題并解決。
三. 心得體會
查詢語句是本課程最重要的項目,完成了課上的實驗后我還得自行多加練習(xí)才行。因為這次相比前面幾次,難度明顯增大了(容易犯很多錯誤)。
第三篇:數(shù)據(jù)庫實驗四
山東建筑大學(xué) 計算機學(xué)院 實驗報告
班級: 姓名: 學(xué)號: 實驗成績:
課程:數(shù)據(jù)庫 同組者: 實驗日期: 2018.5.22
實驗四 數(shù)據(jù)庫安全性和完整性
一.實驗?zāi)康?/p>
1.加深對數(shù)據(jù)庫安全性和完整性的理解 2.學(xué)會授權(quán)與回收
3.理解并體會數(shù)據(jù)庫實體完整性、參照完整性、用戶定義的完整性約束條件的作用
二.實驗內(nèi)容
用戶 sa SQL語言:
select * from s;
select * from p;select * from j;select * from spj;
--1.設(shè)置用戶a對SPJ表的查詢權(quán)限。
create login a with password = 'aaaaaaaa';
create user a;
grant select on spj to a with grant option;
--2.設(shè)置用戶b對S表、P表具有修改的權(quán)限,并要求b能夠?qū)⒃摍?quán)限授予其它用戶c,并驗證用戶c具有該權(quán)限。山東建筑大學(xué) 計算機學(xué)院 實驗報告
班級: 姓名: 學(xué)號: 實驗成績:
課程:數(shù)據(jù)庫 同組者: 實驗日期: 2018.5.22 create login b with password = 'bbbbbbbb';create login c with password = 'cccccccc';create user b;create user c;
grant select,update on s to b with grant option;
grant select,update on p to b with grant option;
--3.收回用戶a、b的權(quán)限,并驗證用戶c權(quán)限的情況。revoke select on spj from a cascade;
revoke select, update on s from b cascade;
revoke select, update on p from b cascade;
--4.對實驗1中創(chuàng)建的表,用圖形用戶界面建立外鍵聯(lián)系,并驗證外鍵的作用。delete from s where sno='s1';山東建筑大學(xué) 計算機學(xué)院 實驗報告
班級: 姓名: 學(xué)號: 實驗成績:
課程:數(shù)據(jù)庫 同組者: 實驗日期: 2018.5.22
--5.對實驗1中創(chuàng)建的表,設(shè)置零件的顏色必須在紅、橙、黃、綠、青、藍、紫 七種顏色范圍內(nèi),零件重量不能超過50的約束條件,并給這兩種約束條件命名。alter table p add constraint c1 check(color in('紅','橙','黃','綠','青','藍','紫'));
alter table p add constraint c2 check(weight <= 50);
--6.設(shè)置SPJ表中供應(yīng)零件的數(shù)量都不能超過1000 alter table spj add constraint c3 check(qit <= 1000);
--7.設(shè)置S表中的供應(yīng)商號以字母‘S’開頭 alter table s add constraint c4 check(sno like 'S%');山東建筑大學(xué) 計算機學(xué)院 實驗報告
班級: 姓名: 學(xué)號: 實驗成績:
課程:數(shù)據(jù)庫 同組者: 實驗日期: 2018.5.22
--8.驗證各個表的實體完整性。
--驗證P表 insert into p values('P7','齒輪','黑',40);
insert into p values('P7','齒輪','黑',50);
insert into p values('P7','齒輪','黃',20);
--驗證SPJ表 insert into spj(qit)values(2000);
insert into spj(qit)values(999);山東建筑大學(xué) 計算機學(xué)院 實驗報告
班級: 姓名: 學(xué)號: 實驗成績:
課程:數(shù)據(jù)庫 同組者: 實驗日期: 2018.5.22
--驗證S表
insert into s(sno)values('A1');
insert into s(sno)values('S6');
用戶a SQL語言:
select * from spj;
select * from s;用戶b SQL語言:
grant select,update
on s to c;
grant select,update on p to c;
update p set color='黃' where pno='p1';山東建筑大學(xué) 計算機學(xué)院 實驗報告
班級: 姓名: 學(xué)號: 實驗成績:
課程:數(shù)據(jù)庫 同組者: 實驗日期: 2018.5.22
update s set status=10 where sno='s1';
select * from s;用戶c SQL語言:
update p set color='黃' where pno='p1';
select * from p;
第四篇:數(shù)據(jù)庫實驗
實驗1.1 使用SQL Server工具(Microsoft SQL Server Management Studio Express)管理數(shù)據(jù)庫 實驗內(nèi)容:
(1)使用SSMS(SQL Server Management Studio)加入實驗數(shù)據(jù)庫。(2)使用SSMS可視化建立、修改和刪除數(shù)據(jù)庫、表。(3)使用SSMS對數(shù)據(jù)庫進行備份和恢復(fù)。
(4)使用SSMS對表進行查詢、插入、修改、刪除。實驗步驟:
(1)加入School數(shù)據(jù)庫。(2)建立Test數(shù)據(jù)庫。
(3)在數(shù)據(jù)庫中建立人員表PERSON(P#,Pname,Page)。更改表設(shè)置P#為主鍵,增加屬性Ptype(類型是CHAR,長度是10)。
(4)用SSMS的查詢功能(新建查詢)對PERSON表進行查詢、插入、修改、刪除等操作:首先插入兩條記錄;修改第二條記錄;刪除第二條記錄。(5)備份Test數(shù)據(jù)庫。(6)刪除表PERSON。(7)恢復(fù)Test數(shù)據(jù)庫。(8)刪除Test數(shù)據(jù)庫。
第五篇:數(shù)據(jù)庫實驗
3.實驗步驟
在學(xué)生選課數(shù)據(jù)庫中實現(xiàn)其查詢操作,寫出T-SQL語句(注:學(xué)生選課數(shù)據(jù)庫為前三次實驗課所建立的數(shù)
據(jù)庫)
一、簡單查詢實驗
(1)查詢選修了課程的學(xué)生學(xué)號。
(2)查詢選修課程號為0101的學(xué)生學(xué)號和成績,并要求對查詢結(jié)果按成績降序排列,如果成績相同則按
學(xué)號升序排列。
(3)查詢選修課程號為0101的成績在80~90分之間的學(xué)生學(xué)號和成績,并將成績乘以系數(shù)0.8輸出。
二、連接查詢實驗
(1)查詢每個學(xué)生的情況以及他(她)所選修的課程。
(2)查詢選修離散散學(xué)課程且成績?yōu)?0分以上的學(xué)生學(xué)號、姓名及成績。
(3)查詢每一門課的間接先行課(即先行課的先行課)
三、嵌套查詢操作
(1)查詢0101課程的成績高于張林的學(xué)生學(xué)號和成績。
(2)查詢其他系中年齡小于計算機系年齡最大者的學(xué)生。
(3)查詢同王洪敏“數(shù)據(jù)庫原理”課程分數(shù)相同的學(xué)生的學(xué)號。
(4)查詢選修了全部課程的學(xué)生的姓名。
(5)查詢與學(xué)號為09001103的學(xué)生所選修的全部課程相同的學(xué)生學(xué)號和姓名。
(6)查詢至少選修了學(xué)號為09001103的學(xué)生所選修的全部課程的學(xué)生學(xué)號和姓名。
四、組合查詢和分組查詢
(1)查找選修“計算機基礎(chǔ)”課程的學(xué)生成績比此課程的平均成績大的學(xué)生學(xué)號、成績。
(2)查詢年齡大于女同學(xué)平均年齡的男同學(xué)姓名和年齡。
(3)列出各系學(xué)生的總?cè)藬?shù),并按人數(shù)進行降序排列。
(5)查詢選修計算機基礎(chǔ)和離散數(shù)學(xué)的學(xué)生學(xué)號和平均成績。
4、要求
請按題號依次作答,完成在word文檔中,寫明班級學(xué)號姓名,于周日之于周日之前發(fā)至xcf7@163.com,獨立完成,嚴禁抄