數(shù)據(jù)庫系統(tǒng)原理_第1頁
數(shù)據(jù)庫系統(tǒng)原理_第2頁
數(shù)據(jù)庫系統(tǒng)原理_第3頁
數(shù)據(jù)庫系統(tǒng)原理_第4頁
數(shù)據(jù)庫系統(tǒng)原理_第5頁
已閱讀5頁,還剩11頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、數(shù)據(jù)庫系統(tǒng)原理實驗報告指導教師: 學生姓名: 學生學號:實驗項目實驗四實驗五實驗六實驗七實驗八實驗成績實驗四 數(shù)據(jù)查詢操作(一)SQL單表查詢語句實驗實驗目的與要求:目的是熟練掌握開發(fā)環(huán)境 的功能和使用方法,掌握在開發(fā)環(huán)境下SQL語言中數(shù)據(jù)操縱的語句,掌握程序下對表中數(shù)據(jù)的操作。實驗內(nèi)容:(說明:需寫實驗報告(1))select語句中各種查詢條件的實驗并寫出查詢結果。 例1 查詢?nèi)w學生的學號與姓名。SELECT Sno,SnameFROM Student;查詢結果為: 例2 查詢?nèi)w學生的姓名、學號、所在系。SELECT Sname,Sno,SdeptFROM Stude

2、nt;查詢結果為:例3 查詢?nèi)w學生的詳細記錄。SELECT Sno,Sname,Ssex,Sage,Sdept FROM Student;或SELECT *FROM Student;查詢結果為:例4 查全體學生的姓名及其出生年份。SELECT Sname,2000-SageFROM Student;查詢結果為: 例5 查詢?nèi)w學生的姓名、出生年份和所有系,要求用小寫字母表示所有系名。SELECT Sname,'Year of Birth: ',2000-Sage, LOWER(Sdept)FROM Student;查詢結果為:實驗五 數(shù)據(jù)查詢操作(二)SQL連接查詢

3、語句實驗一、.實驗目的與要求:標準SQL連接查詢、嵌套查詢,規(guī)則、形式較多,需要學生多記,多練,在練習中加強理解、記憶。二、.實驗內(nèi)容:(說明:需寫實驗報告(2))SQL連接查詢、嵌套查詢并寫出查詢結果。SQL中連接查詢的主要類型 廣義笛卡爾積、 等值連接(含自然連接)、非等值連接查詢、自身連接查詢、外連接查詢、復合條件連接查詢1、廣義笛卡爾積 不帶連接謂詞的連接很少使用例: SELECT Student.* , SC.* FROM Student, SC查詢結果為: 2、等值與非等值連接查詢 等值連接、自然連接、非等值連接例1 查詢每個學生及其選修課程的情況。 SELECT Student.

4、*,SC.*FROM Student,SCWHERE Student.Sno = SC.Sno;查詢結果為:自然連接等值連接的一種特殊情況,把目標列中重復的屬性列去掉。例2 對例32用自然連接完成。 SELECT Student.Sno,Sname,Ssex,Sage, Sdept,Cno,Grade FROM Student,SC WHERE Student.Sno = SC.Sno;結果為: 3、自身連接 一個表與其自己進行連接,稱為表的自身連接需要給表起別名以示區(qū)別由于所有屬性名都是同名屬性,因此必須使用別名前綴例3 查詢每一門課的間接先修課(即先修課的先修課) SELECT FIRST

5、.Cno,SECOND.Cpno FROM Course FIRST,Course SECOND WHERE FIRST.Cpno = SECOND.Cno;查詢結果為: 4、外連接(Outer Join) 例 4 查詢每個學生及其選修課程的情況包括沒有選修課程的學生-用外連接操作SELECT Student.Sno,Sname,Ssex, Sage,Sdept,Cno,Grade FROM Student,SC WHERE Student.Sno = SC.Sno(*);查詢結果為: 在表名后面加外連接操作符(*)或(+)指定非主體表,非主體表有一“萬能”的虛行,該行全部由空值組成,虛行可以

6、和主體表中所有不滿足連接條件的元組進行連接,由于虛行各列全部是空值,因此與虛行連接的結果中,來自非主體表的屬性值全部是空值 左外連接:外連接符出現(xiàn)在連接條件的左邊 右外連接:外連接符出現(xiàn)在連接條件的右邊 5、復合條件連接WHERE子句中含多個連接條件時,稱為復合條件連接 例6 查詢每個學生的學號、姓名、選修的課程名及成績。 SELECT Student.Sno,Sname,Cname,Grade FROM Student,SC,Course WHERE Student.Sno = SC.Sno and SC.Cno = Course.Cno;查詢結果為: 嵌套查詢嵌套查詢概述一個SELECT-

7、FROM-WHERE語句稱為一個查詢塊將一個查詢塊嵌套在另一個查詢塊的WHERE子句或HAVING短語的條件中的查詢稱為嵌套查詢 SELECT Sname外層查詢/父查詢 FROM Student WHERE Sno IN (SELECT Sno 內(nèi)層查詢/子查詢 FROM SCwhere Cno=2); 查詢結果為: 實驗六 數(shù)據(jù)更新操作SQL數(shù)據(jù)更新語句實驗一、實驗目的與要求:目的是熟練掌握開發(fā)環(huán)境 的功能和使用方法,掌握在開發(fā)環(huán)境下SQL語言中數(shù)據(jù)操縱的語句,掌握程序下對表中數(shù)據(jù)的操作。二、實驗內(nèi)容:(說明:需寫實驗報告(3))update、delete、insert 語句的練

8、習并寫出結果。數(shù)據(jù)更新描述: 數(shù)據(jù)更新包括三種操作:1. 插入數(shù)據(jù) 2. 修改數(shù)據(jù) 3. 刪除數(shù)據(jù) 1 . 插入數(shù)據(jù)兩種插入數(shù)據(jù)方式:插入單個元組;插入子查詢結果1). 插入單個元組語句格式INSERTINTO <表名> (<屬性列1>,<屬性列2 >)VALUES (<常量1> ,<常量2> )功能 將新元組插入指定表中。例1 將一個新學生記錄(學號:95020;姓名:陳冬;性別:男;所在系:IS;年齡:18歲)插入到Student表中。 INSERT INTO Student VALUES ('95020',

9、9;陳冬','男',18,'IS');結果為:例2 插入一條選課記錄( '95020','1 ')。 INSERT INTO SC(Sno,Cno) VALUES (' 95020 ',' 1 ');新插入的記錄在Grade列上取空值結果為:2). 插入子查詢結果 例3 對每一個系,求學生的平均年齡,并把結果存入數(shù)據(jù)庫。第一步:建表 CREATE TABLE Deptage (Sdept CHAR(15), /* 系名*/ Avgage SMALLINT); /*學生平均年齡*/結果為:第二

10、步:插入數(shù)據(jù) INSERT INTO Deptage(Sdept,Avgage) SELECT Sdept,AVG(Sage) FROM Student GROUP BY Sdept;結果為:2. 修改數(shù)據(jù)1. 修改某一個元組的值例4 將學生95001的年齡改為22歲。 UPDATE Student SET Sage=22 WHERE Sno=' 95001 ';結果為: 2. 修改多個元組的值例5 將所有學生的年齡增加1歲。 UPDATE Student SET Sage= Sage+1;結果為:3. 刪除數(shù)據(jù)1. 刪除某一個元組的值例8 刪除學號為95019的學生記錄。 D

11、ELETE FROM Student WHERE Sno='95019';結果為:2. 刪除多個元組的值例9 刪除2號課程的所有選課記錄。 DELETE FROM SC; WHERE Cno='2';結果為:3. 帶子查詢的刪除語句例11 刪除計算機科學系所有學生的選課記錄。 DELETE FROM SC WHERE 'CS'= (SELETE Sdept FROM Student WHERE Student.Sno=SC.Sno);結果為:實驗七 數(shù)據(jù)庫的安全性和數(shù)據(jù)庫完整性一、實驗目的與要求:熟練掌握數(shù)據(jù)庫的安全性和數(shù)據(jù)庫完整性的功能和使用方

12、法,掌握在開發(fā)環(huán)境下SQL語言中數(shù)據(jù)庫的安全性和數(shù)據(jù)庫完整性的語句操作。二、實驗內(nèi)容:(說明:需寫實驗報告(4))1數(shù)據(jù)庫的安全性(1). 數(shù)據(jù)庫的授權(GRANT)GRANT語句的一般格式: GRANT <權限>,<權限>. ON <對象類型> <對象名> TO <用戶>,<用戶>. WITH GRANT OPTION;GRANT功能:將對指定操作對象的指定操作權限授予指定的用戶。例1 把查詢Student表權限授給用戶U1 GRANT SELECT ON TABLE Student TO U1;例2 把對Student

13、表和Course表的全部權限授予用戶U2和U3 GRANT ALL PRIVILIGES ON TABLE Student, Course TO U2, U3;例3 把對表SC的查詢權限授予所有用戶 GRANT SELECT ON TABLE SC TO PUBLIC;例4 把查詢Student表和修改學生學號的權限授給用戶U4 GRANT UPDATE(Sno), SELECT ON TABLE Student TO U4;例5 把對表SC的INSERT權限授予U5用戶,并允許他再將此權限授予其他用戶 GRANT INSERT ON TABLE SC TO U5 WITH GRANT OPT

14、ION;執(zhí)行例5后,U5不僅擁有了對表SC的INSERT權限, 還可以傳播此權限: 例6 GRANT INSERT ON TABLE SC TO U6 WITH GRANT OPTION; 同樣,U6還可以將此權限授予U7: 例7 GRANT INSERT ON TABLE SC TO U7; 但U7不能再傳播此權限。 U5-> U6-> U7(2)收回權限(REVOKE)REVOKE語句的一般格式為: REVOKE <權限>,<權限>. ON <對象類型> <對象名> FROM <用戶>,<用戶>.;功能:從

15、指定用戶那里收回對指定對象的指定權限例9 收回所有用戶對表SC的查詢權限REVOKE SELECT ON TABLE SC FROM PUBLIC; 例10 把用戶U5對SC表的INSERT權限收回REVOKE INSERT ON TABLE SC FROM U5;2. 數(shù)據(jù)庫完整性什么是數(shù)據(jù)庫的完整性數(shù)據(jù)的正確性和相容性防止不合語義的數(shù)據(jù)進入數(shù)據(jù)庫。例: 學生的年齡必須是整數(shù),取值范圍為14-29; 學生的性別只能是男或女; 學生的學號一定是唯一的; 學生所在的系必須是學校開設的系;完整性:是否真實地反映現(xiàn)實世界數(shù)據(jù)庫的完整性分為實體完整性、 參照完整性、用戶定義的完整性。例11將stude

16、nt表中在Sno屬性定定義為碼。 CREATE TABLE student ( Sno char(16) PRIMARY KEY, Sname char(10) NOT NULL, Ssex char(2), Sage SMALLINT, Sdept char(20);例11定義SC中的參照完整性。CREATE TABLE SC( Sno char(16) NOT NULL,Cno char(4) NOT NULL,Grade SMALLINT,PRIMARY KEY(Sno,Cno),FOREIGN KEY (Sno) REFERENCES student(Sno),FOREIGN KEY

17、(Cno) REFERENCES Course(Cno);實驗八 數(shù)據(jù)庫連接技術客戶端訪問數(shù)據(jù)庫實驗1、實驗目的1. 學會利用ADO對象編寫數(shù)據(jù)庫訪問程序2. 學會采用C/S模式開發(fā)數(shù)據(jù)庫應用的方法1、 實驗工具數(shù)據(jù)庫系統(tǒng)為Sql Server2000,開發(fā)工具選擇Visual Basic(Delphi、C# 或者Power Builder)等。3、實驗內(nèi)容系統(tǒng)結構說明:通常,一個數(shù)據(jù)庫應用系統(tǒng)是由前后3部分組合而成的:前端程序、中間的數(shù)據(jù)庫組件、后端的數(shù)據(jù)庫。如圖所示:前端程序(VB)中間的數(shù)據(jù)庫組件(ADO)后端的數(shù)據(jù)庫(SQL Server 2000)目前多數(shù)的RAD工具都直接提供了數(shù)據(jù)庫組件如VB中的ADO、

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論