第一篇:數(shù)據(jù)庫實驗5報告
廣東工業(yè)大學實驗報告
自動化學院 學院
網(wǎng)絡工程 專業(yè) 班
學號 3111001381 姓名
何宇航
成績評定_______ 教師簽名 黃永慧 實驗
題目
數(shù)據(jù)查詢和連接查詢
課程名稱
數(shù)據(jù)庫原理及應用實驗
一.實驗目的
使學生熟練掌握簡單表的數(shù)據(jù)查詢、數(shù)據(jù)連接查詢以及數(shù)據(jù)排序的操作方法,并加深對Transact-SQL語言的查詢語句的理解。
二.實驗軟件環(huán)境
SQL Server 2000 三.實驗內(nèi)容
(一)實驗要求:
使用SQL Server 2000查詢分析器,并用SELECT語句及WHERE查詢條件進行簡單查詢及連接查詢實驗,其次使用ORDER BY排序子句實現(xiàn)輸出結果的排序。主要內(nèi)容包括:
1)簡單查詢操作 包括投影、選擇條件、數(shù)據(jù)排序等。
2)連接查詢操作 包括等值連接、自然連接、外連接、內(nèi)連接、左連接和右連接等。(二)要求完成以下查詢要求:
1)將計算機類的書存入永久計算機圖書表。
2)將借書日期在05年以前的借閱記錄存入臨時超期借閱表。3)查詢發(fā)生了借閱關系的借書證號,并按借書證號降序排列。4)查詢“清華大學出版社”出版的圖書情況。
5)查詢目前被借出去的書籍的書號、借書證號以及借出日期,并按借出日期排序。6)查詢“程軍”老師所借閱的書籍的書名。
7)查詢借書者的編號、姓名、單位、所借書號、書名和借閱日期,并按讀者編號排序。
四.實驗的結果及分析
1)將計算機類的書存入永久計算機圖書表 CREATE TABLE Computer_Book(bno
char(8)NOT NULL PRIMARY KEY,category
varchar(10),title
varchar(40)NOT NULL,press
varchar(30)NOT NULL,book_year
Int NOT NULL,author
varchar(20),price
decimal(7,2)NOT NULL,book_total Int NOT NULL)
INSERT INTO Computer_Book SELECT *FROM Book WHERE category='計算機'
廣東工業(yè)大學實驗報告
自動化學院 學院
網(wǎng)絡工程 專業(yè) 班
學號 3111001381 姓名
何宇航
成績評定_______ 教師簽名 黃永慧 實驗
題目
數(shù)據(jù)查詢和連接查詢
課程名稱
數(shù)據(jù)庫原理及應用實驗
2)將借書日期在05年以前的借閱記錄存入臨時超期借閱表。CREATE TABLE Overdue_Borrow(cno
char(7)NOT NULL FOREIGN KEY(CNO)REFERENCES Card(cno),bno
char(8)NOT NULL FOREIGN KEY(BNO)REFERENCES Book(bno),borrow_date smalldaetime NOT NULL DEFAULT GETDATE(),CONSTRAINT CBB_PRIM PRIMARY KEY(cno,bno,borrow_date))INSERTINTO Overdue_Borrow SELECT *Borrow WHERE YEAR(borrow_date)<2005
3)查詢發(fā)生了借閱關系的借書證號,并按借書證號降序排列。SELECT DISTINCT cno FROM Borrow ORDER BY cno DESC 4)查詢“清華大學出版社”出版的圖書情況。SELECT *FROM Book WHERE press='清華大學出版社'
5)查詢目前被借出去的書籍的書號、借書證號以及借出日期,并按借出日期排序。SELECT bno,cno,borrow_date FROM Borrow WHERE return_date IS NULL ORDER BY borrow_date
6)查詢“程軍”老師所借閱的書籍的書名。SELECT title FROM Book,Card,Borrow WHERE(Card.cno=Borrow.cno)and(Borrow.bno=Book.bno)and(name='程軍')
7)查詢借書者的編號、姓名、單位、所借書號、書名和借閱日期,并按讀者編號排序。SELECT Borrow.cno,name,department,Borrow.bno,title,borrow_date FROM Borrow,Card,Book WHERE(Card.cno=Borrow.cno)and(Borrow.bno=Book.bno)ORDER Borrow.cno
五.實驗心得體會
通過本實驗基本學會如何進行簡單表的數(shù)據(jù)查詢、數(shù)據(jù)聯(lián)接查詢以及數(shù)據(jù)排序,并加深對SQL和Transact-SQL語言的查詢語句的理解,這比光看書跟容易理解,能夠跟好的掌握書本上的知識。
第二篇:數(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ù)庫進行備份和恢復。
(4)使用SSMS對表進行查詢、插入、修改、刪除。實驗步驟:
(1)加入School數(shù)據(jù)庫。(2)建立Test數(shù)據(jù)庫。
(3)在數(shù)據(jù)庫中建立人員表PERSON(P#,Pname,Page)。更改表設置P#為主鍵,增加屬性Ptype(類型是CHAR,長度是10)。
(4)用SSMS的查詢功能(新建查詢)對PERSON表進行查詢、插入、修改、刪除等操作:首先插入兩條記錄;修改第二條記錄;刪除第二條記錄。(5)備份Test數(shù)據(jù)庫。(6)刪除表PERSON。(7)恢復Test數(shù)據(jù)庫。(8)刪除Test數(shù)據(jù)庫。
第三篇:數(shù)據(jù)庫實驗
3.實驗步驟
在學生選課數(shù)據(jù)庫中實現(xiàn)其查詢操作,寫出T-SQL語句(注:學生選課數(shù)據(jù)庫為前三次實驗課所建立的數(shù)
據(jù)庫)
一、簡單查詢實驗
(1)查詢選修了課程的學生學號。
(2)查詢選修課程號為0101的學生學號和成績,并要求對查詢結果按成績降序排列,如果成績相同則按
學號升序排列。
(3)查詢選修課程號為0101的成績在80~90分之間的學生學號和成績,并將成績乘以系數(shù)0.8輸出。
二、連接查詢實驗
(1)查詢每個學生的情況以及他(她)所選修的課程。
(2)查詢選修離散散學課程且成績?yōu)?0分以上的學生學號、姓名及成績。
(3)查詢每一門課的間接先行課(即先行課的先行課)
三、嵌套查詢操作
(1)查詢0101課程的成績高于張林的學生學號和成績。
(2)查詢其他系中年齡小于計算機系年齡最大者的學生。
(3)查詢同王洪敏“數(shù)據(jù)庫原理”課程分數(shù)相同的學生的學號。
(4)查詢選修了全部課程的學生的姓名。
(5)查詢與學號為09001103的學生所選修的全部課程相同的學生學號和姓名。
(6)查詢至少選修了學號為09001103的學生所選修的全部課程的學生學號和姓名。
四、組合查詢和分組查詢
(1)查找選修“計算機基礎”課程的學生成績比此課程的平均成績大的學生學號、成績。
(2)查詢年齡大于女同學平均年齡的男同學姓名和年齡。
(3)列出各系學生的總人數(shù),并按人數(shù)進行降序排列。
(5)查詢選修計算機基礎和離散數(shù)學的學生學號和平均成績。
4、要求
請按題號依次作答,完成在word文檔中,寫明班級學號姓名,于周日之于周日之前發(fā)至xcf7@163.com,獨立完成,嚴禁抄
第四篇:數(shù)據(jù)庫實驗2報告
《數(shù)據(jù)庫系統(tǒng)原理實驗報告》
姓名:疏穎 學號:22920152203909 完成日期:2018年4月6日
實驗環(huán)境:SQLServer2008 實驗2.1數(shù)據(jù)查詢 實驗要求:
以School數(shù)據(jù)庫為例,在該數(shù)據(jù)庫中存在四張表格,分別為:
? 表STUDENTS(sid, sname, email, grade);? 表TEACHERS(tid, tname, email, salary);? 表COURSES(cid, cname, hour);? 表CHOICES(no, sid, tid, cid, score)在數(shù)據(jù)庫中,存在這樣的關系:學生可以選擇課程,一個課程對應一個教師。在表CHOICES中保存學生的選課記錄。
按以下要求對數(shù)據(jù)庫進行查詢操作: 實驗步驟:
(1)查詢年級為2001的所有學生的名稱并按編號升序排列。
(2)查詢學生的選課成績合格的課程成績,并把成績換算為積點(60分對應積點為1,每增加1分,積點增加0.1)。
(3)查詢課時是48或64的課程的名稱。
(4)查詢所有課程名稱中含有data的課程編號。
(5)查詢所有選課記錄的課程號(不重復顯示)。
(6)統(tǒng)計所有教師的平均工資。
(7)查詢所有教師的編號及選修其課程的學生的平均成績,按平均成績降序
排列。
(8)統(tǒng)計各個課程的選課人數(shù)和平均成績。
(9)查詢至少選修了三門課程的學生編號。
(10)查詢編號800009026的學生所選的全部課程的課程名和成績。
(11)查詢所有選修了database的學生的編號。
(12)求出選擇了同一個課程的學生數(shù)。
(13)求出至少被兩名學生選修的課程編號。
(14)查詢選修了編號80009026的學生所選的某個課程的學生編號。
(15)查詢學生的基本信息及選修課程編號和成績。
(16)查詢學號850955252的學生的姓名和選修的課程名及成績。
(17)查詢與學號850955252的學生同年級的所有學生資料。
(18)查詢所有有選課的學生的詳細信息。
(19)查詢沒有學生選的課程的編號。
(20)查詢課程名為C++的課時一樣課程名稱。
(21)找出選修課程成績最好的選課記錄。
(22)找出和課程UML或課程C++的課時一樣課程名稱。
(23)查詢所有選修編號10001的課程的學生的姓名。
(24)查詢選修了所有課程的學生姓名。
(25)利用集合運算,查詢選修課程C++或選修課程Java的學生的編號。
(26)實現(xiàn)集合交運算,查詢既選修課程C++又選修課程Java的學生的編號。
(27)實現(xiàn)集合減運算,查詢選修課程C++而沒有選修課程Java的學生的編號。
實驗2.2空值和空集的處理
1.實驗步驟:
(1)查詢所有選課記錄的成績并將它換算為五分制(滿分5分,合格3分),注意SCORE取NULL值的情況。
(2)通過查詢選修編號10028的課程的學生的人數(shù),其中成績合格的學生人數(shù),不合格的學生人數(shù),討論NULL值的特殊含義。
取null值的數(shù)據(jù)在含有運算操作的選擇語句中不被選擇。
(3)通過實驗檢驗在使用ORDER BY進行排序時,取NULL的項是否出現(xiàn)在結果中?如果有,在什么位置?
取null值的數(shù)據(jù)會出出現(xiàn)在結果中,按最小值進行排序
(4)在上面的查詢過程中如果加上保留字DISTINCT會有什么效果?
所有的null值選項只會出現(xiàn)一行。
(5)通過實驗說明使用分組GROUP BY對取值為NULL的項的處理。
(6)結合分組,使用集合函數(shù)求每個同學的平均分、總的選課侸、最高成績、最低成績和總成績。
(7)查詢成績小于60的選課記錄,統(tǒng)計總數(shù)、平均分、最大值和最小值。
(8)采用嵌套查詢的方式,利用比較運算符和謂詞ALL的結合來查詢表COURSES中最少的課時。假設數(shù)據(jù)庫中只有一個記錄的時候,使用前面的方法會得到什么結果,為什么?
(9)創(chuàng)建一個學生表S(NO,SID,SNAME),教師表T(NO,TID,TNAME)作為實驗用的表。其中NO分別是這兩個表的主鍵,其他鍵允許為空。向S插入元組(1,0129871001,王小明)、(2,0129871002,李蘭)、(3,0129871005,NULL)、(4,0129871004,關紅); 向T插入元組1,100189,王小明)(2,、100180,李?。?,、100121,NULL)、(4,100128,NULL)。
對這兩個表作對姓名的等值連接運算,找出既是老師又是學生的人員的學生編號和老師編號。
實驗總結:
本次實驗主要考察的是查詢語句,相比于上次的實驗,這次難度有所增加,涉及到了嵌套查詢等查詢方法,having語句和where語句用的最多,有時會混亂,還需要多加練習。實驗二中對于取null值的選項的關注也讓我意識到在以后的實際操作過程中需要注意對于庫里數(shù)據(jù)的處理。
第五篇:(2008版)數(shù)據(jù)庫原理實驗5指導書
一 實驗題目:視圖的定義和使用
二 實驗目的:加深對視圖的理解,熟練視圖的定義、查看、修改等操作 三 實驗內(nèi)容及要求:(從下面10個題目中選一個)題目一:
學生(學號,年齡,性別,系名)課程(課號,課名,學分,學時)選課(學號,課號,成績)根據(jù)上面基本表的信息定義視圖顯示每門課的課名、選課人數(shù)、平均成績 2 觀察基本表數(shù)據(jù)變化時,視圖中數(shù)據(jù)的變化。3 利用視圖,查詢平均成績最高的學生。
題目二:
圖書(書號,書名,價格,出版社)讀者(卡號,姓名,年齡,所屬單位)借閱(書號,卡號,借閱日期)根據(jù)上面基本表的信息定義視圖顯示每本書的書名、借閱次數(shù) 2 觀察基本表數(shù)據(jù)變化時,視圖中數(shù)據(jù)的變化。3利用視圖,查詢借閱次數(shù)最多的書。
題目三:
商品(編號,品名,進價,庫存,售價,廠商編號)顧客(卡號,姓名,電話,積分)廠商(編號,廠址,名稱、電話)
銷售(顧客卡號,商品編號,數(shù)量,日期)根據(jù)上面基本表的信息定義視圖顯示每種商品的品名、銷售數(shù)量 2 觀察基本表數(shù)據(jù)變化時,視圖中數(shù)據(jù)的變化。3利用視圖,查詢銷售數(shù)量最高的商品。
題目四:
圖書(書號,書名,作者編號,價格,出版社編號)作者(編號,姓名,電話)
出版社(編號,出版社名稱,地址)根據(jù)上面基本表的信息定義視圖顯示每個出版社的名稱、出版書的數(shù)量 2 觀察基本表數(shù)據(jù)變化時,視圖中數(shù)據(jù)的變化。3利用視圖,查詢出版書最多的出版社
題目五:
零件(編號,名稱,顏色,生產(chǎn)車間號)車間(編號,名稱,人數(shù),主任)產(chǎn)品(編號,名稱,車間編號)
使用(產(chǎn)品編號,使用零件編號,個數(shù))根據(jù)上面基本表的信息定義視圖顯示每個產(chǎn)品的編號,使用零件的編號,生產(chǎn)零件的車間號,車間主任 觀察基本表數(shù)據(jù)變化時,視圖中數(shù)據(jù)的變化。3利用視圖,查詢使用零件最多的產(chǎn)品。
題目六:
藥品(編號,名稱,價格,廠商)處方(藥品編號,數(shù)量,醫(yī)生編號)醫(yī)生(編號,姓名,科室,職稱)根據(jù)上面基本表的信息定義視圖顯示每種藥品的品名、銷售金額 2 觀察基本表數(shù)據(jù)變化時,視圖中數(shù)據(jù)的變化。3利用視圖,查詢最暢銷的藥品。
題目七:
學生(學號,年齡,性別,系名)
教材(編號,書名,出版社編號,價格)訂購(學號,書號,數(shù)量)出版社(編號,名稱,地址)根據(jù)上面基本表的信息定義視圖顯示每個學生姓名、應繳書費 2 觀察基本表數(shù)據(jù)變化時,視圖中數(shù)據(jù)的變化。3利用視圖,查詢交費最高的學生。
題目八:
員工(編號,姓名,性別,年齡,部門編號,年薪)部門(編號,名稱,人數(shù),負責人)項目(編號,名稱,負責部門編號)根據(jù)上面基本表的信息定義視圖顯示每個部門名稱、年工資總額 2 觀察基本表數(shù)據(jù)變化時,視圖中數(shù)據(jù)的變化。3利用視圖,查詢工資額最高的部門
題目九:
帳戶(編號,姓名,余額,建立日期,儲蓄所編號)儲蓄所(編號,名稱,地址,人數(shù),所屬城市)借貸(帳戶,借貸類型,金額,日期)根據(jù)上面基本表的信息定義視圖顯示每個儲蓄所名稱、儲蓄總金額 2 觀察基本表數(shù)據(jù)變化時,視圖中數(shù)據(jù)的變化。3利用視圖,查詢儲蓄金額最高的儲蓄所。
題目十:
倉庫(編號,保管員編號,面積)
保管員(編號,姓名,年齡,電話、月薪)商品(編號,品名,倉庫編號、數(shù)量,單價)
1根據(jù)上面基本表的信息定義視圖顯示每個倉庫保管員姓名、保管商品價值總額 2 觀察基本表數(shù)據(jù)變化時,視圖中數(shù)據(jù)的變化。3利用視圖,查詢保管商品價值金額最高的保管員。
五 實驗報告要求: 給出建立視圖的步驟。給出基本表數(shù)據(jù)和視圖的內(nèi)容。給出查詢命令和測試數(shù)據(jù)、執(zhí)行結果。