第一篇:數(shù)據(jù)庫(kù)實(shí)驗(yàn)2報(bào)告
《數(shù)據(jù)庫(kù)系統(tǒng)原理實(shí)驗(yàn)報(bào)告》
姓名:疏穎 學(xué)號(hào):22920152203909 完成日期:2018年4月6日
實(shí)驗(yàn)環(huán)境:SQLServer2008 實(shí)驗(yàn)2.1數(shù)據(jù)查詢 實(shí)驗(yàn)要求:
以School數(shù)據(jù)庫(kù)為例,在該數(shù)據(jù)庫(kù)中存在四張表格,分別為:
? 表STUDENTS(sid, sname, email, grade);? 表TEACHERS(tid, tname, email, salary);? 表COURSES(cid, cname, hour);? 表CHOICES(no, sid, tid, cid, score)在數(shù)據(jù)庫(kù)中,存在這樣的關(guān)系:學(xué)生可以選擇課程,一個(gè)課程對(duì)應(yīng)一個(gè)教師。在表CHOICES中保存學(xué)生的選課記錄。
按以下要求對(duì)數(shù)據(jù)庫(kù)進(jìn)行查詢操作: 實(shí)驗(yàn)步驟:
(1)查詢年級(jí)為2001的所有學(xué)生的名稱并按編號(hào)升序排列。
(2)查詢學(xué)生的選課成績(jī)合格的課程成績(jī),并把成績(jī)換算為積點(diǎn)(60分對(duì)應(yīng)積點(diǎn)為1,每增加1分,積點(diǎn)增加0.1)。
(3)查詢課時(shí)是48或64的課程的名稱。
(4)查詢所有課程名稱中含有data的課程編號(hào)。
(5)查詢所有選課記錄的課程號(hào)(不重復(fù)顯示)。
(6)統(tǒng)計(jì)所有教師的平均工資。
(7)查詢所有教師的編號(hào)及選修其課程的學(xué)生的平均成績(jī),按平均成績(jī)降序
排列。
(8)統(tǒng)計(jì)各個(gè)課程的選課人數(shù)和平均成績(jī)。
(9)查詢至少選修了三門課程的學(xué)生編號(hào)。
(10)查詢編號(hào)800009026的學(xué)生所選的全部課程的課程名和成績(jī)。
(11)查詢所有選修了database的學(xué)生的編號(hào)。
(12)求出選擇了同一個(gè)課程的學(xué)生數(shù)。
(13)求出至少被兩名學(xué)生選修的課程編號(hào)。
(14)查詢選修了編號(hào)80009026的學(xué)生所選的某個(gè)課程的學(xué)生編號(hào)。
(15)查詢學(xué)生的基本信息及選修課程編號(hào)和成績(jī)。
(16)查詢學(xué)號(hào)850955252的學(xué)生的姓名和選修的課程名及成績(jī)。
(17)查詢與學(xué)號(hào)850955252的學(xué)生同年級(jí)的所有學(xué)生資料。
(18)查詢所有有選課的學(xué)生的詳細(xì)信息。
(19)查詢沒有學(xué)生選的課程的編號(hào)。
(20)查詢課程名為C++的課時(shí)一樣課程名稱。
(21)找出選修課程成績(jī)最好的選課記錄。
(22)找出和課程UML或課程C++的課時(shí)一樣課程名稱。
(23)查詢所有選修編號(hào)10001的課程的學(xué)生的姓名。
(24)查詢選修了所有課程的學(xué)生姓名。
(25)利用集合運(yùn)算,查詢選修課程C++或選修課程Java的學(xué)生的編號(hào)。
(26)實(shí)現(xiàn)集合交運(yùn)算,查詢既選修課程C++又選修課程Java的學(xué)生的編號(hào)。
(27)實(shí)現(xiàn)集合減運(yùn)算,查詢選修課程C++而沒有選修課程Java的學(xué)生的編號(hào)。
實(shí)驗(yàn)2.2空值和空集的處理
1.實(shí)驗(yàn)步驟:
(1)查詢所有選課記錄的成績(jī)并將它換算為五分制(滿分5分,合格3分),注意SCORE取NULL值的情況。
(2)通過查詢選修編號(hào)10028的課程的學(xué)生的人數(shù),其中成績(jī)合格的學(xué)生人數(shù),不合格的學(xué)生人數(shù),討論NULL值的特殊含義。
取null值的數(shù)據(jù)在含有運(yùn)算操作的選擇語(yǔ)句中不被選擇。
(3)通過實(shí)驗(yàn)檢驗(yàn)在使用ORDER BY進(jìn)行排序時(shí),取NULL的項(xiàng)是否出現(xiàn)在結(jié)果中?如果有,在什么位置?
取null值的數(shù)據(jù)會(huì)出出現(xiàn)在結(jié)果中,按最小值進(jìn)行排序
(4)在上面的查詢過程中如果加上保留字DISTINCT會(huì)有什么效果?
所有的null值選項(xiàng)只會(huì)出現(xiàn)一行。
(5)通過實(shí)驗(yàn)說明使用分組GROUP BY對(duì)取值為NULL的項(xiàng)的處理。
(6)結(jié)合分組,使用集合函數(shù)求每個(gè)同學(xué)的平均分、總的選課侸、最高成績(jī)、最低成績(jī)和總成績(jī)。
(7)查詢成績(jī)小于60的選課記錄,統(tǒng)計(jì)總數(shù)、平均分、最大值和最小值。
(8)采用嵌套查詢的方式,利用比較運(yùn)算符和謂詞ALL的結(jié)合來查詢表COURSES中最少的課時(shí)。假設(shè)數(shù)據(jù)庫(kù)中只有一個(gè)記錄的時(shí)候,使用前面的方法會(huì)得到什么結(jié)果,為什么?
(9)創(chuàng)建一個(gè)學(xué)生表S(NO,SID,SNAME),教師表T(NO,TID,TNAME)作為實(shí)驗(yàn)用的表。其中NO分別是這兩個(gè)表的主鍵,其他鍵允許為空。向S插入元組(1,0129871001,王小明)、(2,0129871002,李蘭)、(3,0129871005,NULL)、(4,0129871004,關(guān)紅); 向T插入元組1,100189,王小明)(2,、100180,李?。?,、100121,NULL)、(4,100128,NULL)。
對(duì)這兩個(gè)表作對(duì)姓名的等值連接運(yùn)算,找出既是老師又是學(xué)生的人員的學(xué)生編號(hào)和老師編號(hào)。
實(shí)驗(yàn)總結(jié):
本次實(shí)驗(yàn)主要考察的是查詢語(yǔ)句,相比于上次的實(shí)驗(yàn),這次難度有所增加,涉及到了嵌套查詢等查詢方法,having語(yǔ)句和where語(yǔ)句用的最多,有時(shí)會(huì)混亂,還需要多加練習(xí)。實(shí)驗(yàn)二中對(duì)于取null值的選項(xiàng)的關(guān)注也讓我意識(shí)到在以后的實(shí)際操作過程中需要注意對(duì)于庫(kù)里數(shù)據(jù)的處理。
第二篇:重慶郵電大學(xué)數(shù)據(jù)庫(kù)實(shí)驗(yàn)2
二叉樹操作 實(shí)驗(yàn)日志
指導(dǎo)教師: 黎貴友 實(shí)驗(yàn)時(shí)間: 2010 年 某 月 某 日 學(xué)院 : 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院 專業(yè): 計(jì)算機(jī)科學(xué)與技術(shù) 班級(jí): 3110903 學(xué)號(hào) : 2009214458 姓名: 駱瀟龍 實(shí)驗(yàn)室: S331-b 實(shí)驗(yàn)?zāi)康模赫莆斩鏄涞亩x、性質(zhì)及存儲(chǔ)方式,各種遍歷算法。
實(shí)驗(yàn)要求:采用二叉樹鏈表作為存儲(chǔ)結(jié)構(gòu),完成二叉樹的建立,先序、中序和后序以及按層次遍歷的操作,求所有葉子及結(jié)點(diǎn)總數(shù)的操作。
實(shí)驗(yàn)主要步驟:
1、分析、理解程序 #include“stdio.h” #include“string.h” #include“stdlib.h” #include“ctype.h” #define Max 20
//結(jié)點(diǎn)的最大個(gè)數(shù) typedef struct node { char data;
struct node *lchild,*rchild;}BinTNode;
//自定義二叉樹的結(jié)點(diǎn)類型 typedef BinTNode *BinTree;
//定義二叉樹的指針
int NodeNum,leaf;
//NodeNum為結(jié)點(diǎn)數(shù),leaf為葉子數(shù)
//==========基于先序遍歷算法創(chuàng)建二叉樹============== //=====要求輸入先序序列,其中加入虛結(jié)點(diǎn)“#”以示空指針的位置===== BinTree CreatBinTree(void){
BinTree T;
char ch;
if((ch=getchar())=='#')return(NULL);
//讀入#,返回空指針
else {
T=(BinTNode *)malloc(sizeof(BinTNode));
//生成結(jié)點(diǎn)
T->data=ch;
T->lchild=CreatBinTree();
//構(gòu)造左子樹
T->rchild=CreatBinTree();
//構(gòu)造右子樹
{
int hl,hr,max;
if(T){
hl=TreeDepth(T->lchild);
//求左深度
hr=TreeDepth(T->rchild);
//求右深度
max=hl>hr? hl:hr;
//取左右深度的最大值
NodeNum=NodeNum+1;
//求結(jié)點(diǎn)數(shù)
if(hl==0&&hr==0)
leaf=leaf+1;//若左右深度為0,即為葉子。
return(max+1);
} else return(0);}
//====利用“先進(jìn)先出”(FIFO)隊(duì)列,按層次遍歷二叉樹========== void Levelorder(BinTree T){
int front=0,rear=1;
BinTNode *cq[Max],*p;
//定義結(jié)點(diǎn)的指針數(shù)組cq
cq[1]=T;
//根入隊(duì)
while(front!=rear)
{
front=(front+1)%NodeNum;
p=cq[front];
//出隊(duì)
printf(“%c”,p->data);
//出隊(duì),輸出結(jié)點(diǎn)的值
if(p->lchild!=NULL)
{
rear=(rear+1)%NodeNum;
cq[rear]=p->lchild;
//左子樹入隊(duì)
}
if(p->rchild!=NULL)
{
rear=(rear+1)%NodeNum;
cq[rear]=p->rchild;
//右子樹入隊(duì)
} } }
default: exit(1);
}
printf(“n”);} while(i!=0);}
2、調(diào)試程序,設(shè)計(jì)一棵二叉樹,輸入完全二叉樹的先序序列,用#代表虛結(jié)點(diǎn)(空指針),如ABD###CE##F##,建立二叉樹,求出先序、中序和后序以及按層次遍歷序列,求所有葉子及結(jié)點(diǎn)總數(shù).實(shí)驗(yàn)結(jié)果:
1.當(dāng)輸入測(cè)試數(shù)據(jù)(輸入完全二叉樹的先序序列,用#代表虛結(jié)點(diǎn),如ABD###CE##F##)時(shí)(如圖1-1),回車運(yùn)行時(shí),結(jié)果如圖1-2所示;
圖1-1
圖1-2
2.按層次遍歷之前,輸入數(shù)字4(如圖2-1,);回車運(yùn)行時(shí),求出測(cè)試數(shù)據(jù)的深度、結(jié)點(diǎn)數(shù)及葉子數(shù)分別為3,6,3(如圖2-2);
圖2-1
789-
第三篇:數(shù)據(jù)庫(kù)實(shí)驗(yàn)2實(shí)驗(yàn)報(bào)告 2
數(shù)據(jù)庫(kù)第二次試驗(yàn)報(bào)告
PB10011020 劉思軼
實(shí)驗(yàn)內(nèi)容
本實(shí)驗(yàn)有兩個(gè)可選題目,旅游出行和藥品免疫庫(kù)。本程序即為旅游出行的一個(gè)實(shí)現(xiàn)。
實(shí)驗(yàn)原題摘要如下 數(shù)據(jù)關(guān)系模式:
航班FLIGHTS(String flightNum, int price, int numSeats, int numAvail, String FromCity, StringArivCity);
賓館房間HOTELS(String location, int price, int numRooms, int numAvail); 出租車CARS(String location, int price, int numCars, int numAvail); 客戶CUSTOMERS(String custName);
預(yù)訂情況RESERVATIONS(String resvKey, String custName, int resvType)系統(tǒng)基本功能:
1.航班,出租車,賓館房間和客戶基礎(chǔ)數(shù)據(jù)的入庫(kù),更新(表中的屬性也可以根據(jù)你的需要添加)。
2.預(yù)定航班,出租車,賓館房間。
3.查詢航班,出租車,賓館房間,客戶和預(yù)訂信息。4.查詢某個(gè)客戶的旅行線路。5.檢查預(yù)定線路的完整性。6.其他任意你愿意加上的功能。
程序功能
本系統(tǒng)由旅行服務(wù)提供商運(yùn)營(yíng),發(fā)布在支持PHP + MySQL 的服務(wù)器上。系統(tǒng)默認(rèn)有三個(gè)角色,游客、用戶和管理員。它們的權(quán)限如下
1、游客
查詢當(dāng)前航班、旅館和出租車的預(yù)訂情況;
2、注冊(cè)用戶
游客的所用權(quán)限; 查詢當(dāng)前預(yù)訂;
預(yù)訂航班、旅館和出租車; 退訂航班、旅館和出租車。打印旅行路線
檢查預(yù)定路線的完整性。檢查航班的完備性
3、管理員
注冊(cè)用戶的所用權(quán)限 添加航班、旅館和出租車信息; 更改航班、旅館和出租車信息; 注冊(cè)用戶;
更改用戶密碼和權(quán)限; 刪除注冊(cè)用戶; 查詢用戶預(yù)訂; 取消用戶預(yù)訂; 查詢用戶旅行線路。
運(yùn)行平臺(tái)
本系統(tǒng)在Windows 7 32位 下由PHP-now虛擬的網(wǎng)絡(luò)運(yùn)行平臺(tái)上測(cè)試.所需環(huán)境為: PHP Apache MySQL PhmyAdmin 環(huán)境搭建
打開集成環(huán)境php-now文件夾,點(diǎn)擊init.cmd,會(huì)自動(dòng)安裝所需環(huán)境 接著在PHP后臺(tái)中載入所需要的表
CREATE TABLE FLIGHTS(flightNum varchar(30), price int(6), numSeats int(6), numAvail int(6), FromCity varchar(30), ArivCity varchar(30), PRIMARY KEY(flightNum));CREATE TABLE HOTELS(location varchar(30), price int(6), numRooms int(6), numAvail int(6), PRIMARY KEY(location));CREATE TABLE CARS(location varchar(30), price int(6), numCars int(6), numAvail int(6), PRIMARY KEY(location));CREATE TABLE CUSTOMERS(custName varchar(30), password varchar(50), type varchar(20), PRIMARY KEY(custName));CREATE TABLE RESERVATIONS(resvKey int(20)AUTO_INCREMENT, custName varchar(30), resvType varchar(20), detail varchar(20), PRIMARY KEY(resvKey));
該程序所實(shí)現(xiàn)的功能
1.登錄功能
登陸者身份分為游客和管理員,在數(shù)據(jù)庫(kù)中信息都存放在customer表中,區(qū)別為type項(xiàng)不同,管理員為admin,游客為users,決定了權(quán)限不同.(1)普通游客登錄后界面
(2)管理員登陸后界面
2.查詢功能
登入http://127.0.0.1 可以選擇查詢航班,旅館和出租車.3.游客-預(yù)訂功能
4.游客-管理預(yù)訂信息功能
點(diǎn)擊自己的id可進(jìn)入該功能頁(yè)面,可以看到自己的旅游路線和預(yù)訂信息,并可以取消預(yù)訂.5.游客-檢查線路完整性功能
當(dāng)游客預(yù)訂了從A到B的機(jī)票,則必須檢查啊在A定了車(去機(jī)場(chǎng)),在B訂了車和旅館(下飛機(jī)后坐車和住宿),以此實(shí)現(xiàn)完整性檢查.在從nanjing to beijing的旅游路線后面點(diǎn)擊check,會(huì)提示游客還需要在nanjing預(yù)訂汽車,在beijing預(yù)定旅館。
6.管理員-管理航班,旅館和出租車表
可以有insert delete 和update 幾種操作.delete:
直接點(diǎn)擊cancel就可刪除相應(yīng)的信息。insert & update: 點(diǎn)擊edit后,程序會(huì)自動(dòng)將想要編輯的行的信息填入供管理員編輯,不用再手動(dòng)輸入。
7.管理員-管理用戶表
可以添加新用戶,對(duì)用戶的權(quán)限升級(jí),查看用戶信息.用戶的密碼是md5加密保存的。
實(shí)驗(yàn)小結(jié)
仍然存在的問題: 1.軟件界面過于簡(jiǎn)單,僅僅實(shí)現(xiàn)了功能沒有在用戶可用性上多做考慮。
2.新用戶想要登錄該系統(tǒng)預(yù)訂必須要由管理員登入信息后才可操作。缺少了游客注冊(cè)的功能。
3.不能根據(jù)用戶的需求點(diǎn)對(duì)點(diǎn)得查詢相應(yīng)信息,只能羅列出所有的信息。
實(shí)驗(yàn)心得: 1.在搭建PHP環(huán)境中遇到了許多問題:如用戶權(quán)限不夠,域名已使用使得Apache-20安裝不成功,通過網(wǎng)上查閱資料解決問題。
2.了解到自己對(duì)問題的調(diào)研還是不足,如旅游系統(tǒng),各種表之間到底應(yīng)該怎么建立關(guān)系,哪些項(xiàng)是主鍵,自己建的表中的信息是否已經(jīng)充足了,參照現(xiàn)實(shí)中旅游系統(tǒng)才能不斷完善.
第四篇:數(shù)據(jù)庫(kù)實(shí)驗(yàn)2
山東建筑大學(xué) 計(jì)算機(jī)學(xué)院 實(shí)驗(yàn)報(bào)告
班級(jí): 姓名: 學(xué)號(hào): 實(shí)驗(yàn)成績(jī):
課程:數(shù)據(jù)庫(kù)系統(tǒng)概論 同組者: 實(shí)驗(yàn)日期: 2018.04.24
實(shí)驗(yàn)二 數(shù)據(jù)查詢
一.實(shí)驗(yàn)?zāi)康?/p>
1.理解數(shù)據(jù)庫(kù)中數(shù)據(jù)的其他查詢方法和應(yīng)用; 2.學(xué)會(huì)各種查詢要求的實(shí)現(xiàn);
3.學(xué)會(huì)各種查詢的異同及相互之間的轉(zhuǎn)換方法。
二.實(shí)驗(yàn)內(nèi)容
1.實(shí)驗(yàn)代碼
--1.查詢供應(yīng)商號(hào)碼為S1的供應(yīng)商的名稱SNAME,所在城市CITY
Select SNAME,CITY FROM S WHERE SNO='S1';
--2.查詢顏色為紅色的零件號(hào)碼 select pno from p where color='紅';
--3.查詢工程所在地為天津的工程名稱JNAME select jname from j where city='天津';
--4.查詢供應(yīng)商號(hào)和名稱,分別用小寫字母和大寫字母表示供應(yīng)商代碼 select upper(sno)大寫,lower(sno)小寫, sname from s;
--5.查詢零件的詳細(xì)信息,用結(jié)果屬性名用中文顯示
select pno 零件代碼,pname 零件名,color 顏色, weight 重量 from p;
--6.查詢供應(yīng)工程J1零件P1的供應(yīng)商號(hào)SNO select sno from spj where jno='j1' and pno='p1';
--7.查詢供應(yīng)商的名稱和所在城市,并按照所在城市升序排序,同一個(gè)城市的按照供應(yīng)商的名稱降序排序
select sname,city from s order by city ASC,sname DESC;山東建筑大學(xué) 計(jì)算機(jī)學(xué)院 實(shí)驗(yàn)報(bào)告
班級(jí): 姓名: 學(xué)號(hào): 實(shí)驗(yàn)成績(jī):
課程:數(shù)據(jù)庫(kù)系統(tǒng)概論 同組者: 實(shí)驗(yàn)日期: 2018.04.24--8.查詢使用供應(yīng)商S1所供應(yīng)零件的工程號(hào)碼 select jno from spj where sno='s1';
--9.查詢各種零件的平均重量 select AVG(weight)from p;
--修改貨物表中的P表的weight的數(shù)據(jù)類型 alter table p alter column weight float;
--10.查詢零件的總個(gè)數(shù)
select sum(QTY)零件總和 from spj;
--11.from p where pname like '螺%';
--12.查詢各個(gè)供應(yīng)商供應(yīng)的零件P3總數(shù)量
select sum(qty)from spj where pno='p3';
--13.供應(yīng)工程J1紅色零件的供應(yīng)商號(hào)SNO
select distinct sno from spj, p where p.pno=spj.pno and(jno='j1' and color='紅');
--14.工程項(xiàng)目J2使用的各種零件的名稱及數(shù)量
select distinct pname,qty from p, spj where p.pno=spj.pno and jno='j2';
--15.使用上海產(chǎn)的零件的工程的名稱
select distinct jname from s, j, spj where s.city='上海' and(s.sno=spj.sno and j.jno=spj.jno);查詢所有以“螺”字開頭的零件的零件號(hào)、零件名和顏色
select pno,pname,color 山東建筑大學(xué) 計(jì)算機(jī)學(xué)院 實(shí)驗(yàn)報(bào)告
班級(jí): 姓名: 學(xué)號(hào): 實(shí)驗(yàn)成績(jī):
課程:數(shù)據(jù)庫(kù)系統(tǒng)概論 同組者: 實(shí)驗(yàn)日期: 2018.04.24--16.所有項(xiàng)目的使用零件的情況(無論有沒有使用零件),包括項(xiàng)目代碼、項(xiàng)目名稱、零件代碼和零件數(shù)量
select distinct spj.jno, j.jname, pno, qty from spj, j where spj.jno=j.jno;
--17.供應(yīng)商S1和S3供應(yīng)的相同的零件編號(hào)
select pno from spj where sno='s1' intersect select pno from spj where sno='s3';
--18.沒有使用天津產(chǎn)的零件的工程號(hào)碼
select distinct jno from spj where sno in((select sno from s where city!= '天津'));--19.沒有使用天津供應(yīng)商生產(chǎn)的紅色零件的工程號(hào)
select distinct jno from spj where jno not in(select jno from spj,s,p where(s.city='天津' and p.color='紅')and(s.sno=spj.sno and p.pno=spj.pno));
--20.至少用了供應(yīng)商S1所供應(yīng)的全部零件的工程號(hào)Jno
select jno from spj where pno='p1' and jno in(select jno
--21.基于學(xué)生選課數(shù)據(jù)庫(kù),驗(yàn)證課本上數(shù)據(jù)查詢相關(guān)的示例
select *
from spj where pno='p2');山東建筑大學(xué) 計(jì)算機(jī)學(xué)院 實(shí)驗(yàn)報(bào)告
班級(jí): 姓名: 學(xué)號(hào): 實(shí)驗(yàn)成績(jī):
課程:數(shù)據(jù)庫(kù)系統(tǒng)概論 同組者: 實(shí)驗(yàn)日期: 2018.04.24 from student;
select sname,'Year of Birth:',2014-sage,lower(sdept)from student;
--查詢至少選修了學(xué)生201215122選修的全部課程的學(xué)生號(hào)碼--不存在這樣的課程y,學(xué)生201215122選修了y,而學(xué)生x沒有選 select distinct sno from sc scx where not exists
(select *
select distinct sno from sc scx where not exists
(select scy.cno
--查詢選修了課程名為“信息系統(tǒng)”的學(xué)生學(xué)號(hào)和姓名 select sno,sname from student where sno in(select sno
from sc where cno in(select cno
from course
where cname='信息系統(tǒng)'));
from sc scy
where scy.sno='201215122' and scy.cno not in(select scz.cno from sc scz
where scz.sno=scx.sno));
from sc scy
where scy.sno='201215122' and not exists(select *
from sc scz where scz.sno=scx.sno and scz.cno=scy.cno));山東建筑大學(xué) 計(jì)算機(jī)學(xué)院 實(shí)驗(yàn)報(bào)告
班級(jí): 姓名: 學(xué)號(hào): 實(shí)驗(yàn)成績(jī):
課程:數(shù)據(jù)庫(kù)系統(tǒng)概論 同組者: 實(shí)驗(yàn)日期: 2018.04.24
運(yùn)行結(jié)果 1、2、3、4、5、6、7、8、9、10、11、12、13、14、15、16、山東建筑大學(xué) 計(jì)算機(jī)學(xué)院 實(shí)驗(yàn)報(bào)告
班級(jí): 姓名: 學(xué)號(hào): 實(shí)驗(yàn)成績(jī):
課程:數(shù)據(jù)庫(kù)系統(tǒng)概論 同組者: 實(shí)驗(yàn)日期: 2018.04.2417、18、21、19、20、1、2、三. 實(shí)驗(yàn)總結(jié)
3、通過本次實(shí)驗(yàn),我了解了理解數(shù)據(jù)庫(kù)中數(shù)據(jù)的其他查詢方法和應(yīng)用,學(xué)會(huì)各種查詢要求的實(shí)現(xiàn),學(xué)會(huì)各種查詢的異同及相互之間的轉(zhuǎn)換方法。在實(shí)驗(yàn)過山東建筑大學(xué) 計(jì)算機(jī)學(xué)院 實(shí)驗(yàn)報(bào)告
班級(jí): 姓名: 學(xué)號(hào): 實(shí)驗(yàn)成績(jī):
課程:數(shù)據(jù)庫(kù)系統(tǒng)概論 同組者: 實(shí)驗(yàn)日期: 2018.04.24 程中,有的看不懂題意,通過詢問同學(xué)解決了,也有的不會(huì)做,答案也看不懂,最后詢問老師,然后自己認(rèn)真看看,最后解決問題了。
第五篇:數(shù)據(jù)庫(kù)實(shí)驗(yàn)5報(bào)告
廣東工業(yè)大學(xué)實(shí)驗(yàn)報(bào)告
自動(dòng)化學(xué)院 學(xué)院
網(wǎng)絡(luò)工程 專業(yè) 班
學(xué)號(hào) 3111001381 姓名
何宇航
成績(jī)?cè)u(píng)定_______ 教師簽名 黃永慧 實(shí)驗(yàn)
題目
數(shù)據(jù)查詢和連接查詢
課程名稱
數(shù)據(jù)庫(kù)原理及應(yīng)用實(shí)驗(yàn)
一.實(shí)驗(yàn)?zāi)康?/p>
使學(xué)生熟練掌握簡(jiǎn)單表的數(shù)據(jù)查詢、數(shù)據(jù)連接查詢以及數(shù)據(jù)排序的操作方法,并加深對(duì)Transact-SQL語(yǔ)言的查詢語(yǔ)句的理解。
二.實(shí)驗(yàn)軟件環(huán)境
SQL Server 2000 三.實(shí)驗(yàn)內(nèi)容
(一)實(shí)驗(yàn)要求:
使用SQL Server 2000查詢分析器,并用SELECT語(yǔ)句及WHERE查詢條件進(jìn)行簡(jiǎn)單查詢及連接查詢實(shí)驗(yàn),其次使用ORDER BY排序子句實(shí)現(xiàn)輸出結(jié)果的排序。主要內(nèi)容包括:
1)簡(jiǎn)單查詢操作 包括投影、選擇條件、數(shù)據(jù)排序等。
2)連接查詢操作 包括等值連接、自然連接、外連接、內(nèi)連接、左連接和右連接等。(二)要求完成以下查詢要求:
1)將計(jì)算機(jī)類的書存入永久計(jì)算機(jī)圖書表。
2)將借書日期在05年以前的借閱記錄存入臨時(shí)超期借閱表。3)查詢發(fā)生了借閱關(guān)系的借書證號(hào),并按借書證號(hào)降序排列。4)查詢“清華大學(xué)出版社”出版的圖書情況。
5)查詢目前被借出去的書籍的書號(hào)、借書證號(hào)以及借出日期,并按借出日期排序。6)查詢“程軍”老師所借閱的書籍的書名。
7)查詢借書者的編號(hào)、姓名、單位、所借書號(hào)、書名和借閱日期,并按讀者編號(hào)排序。
四.實(shí)驗(yàn)的結(jié)果及分析
1)將計(jì)算機(jī)類的書存入永久計(jì)算機(jī)圖書表 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='計(jì)算機(jī)'
廣東工業(yè)大學(xué)實(shí)驗(yàn)報(bào)告
自動(dòng)化學(xué)院 學(xué)院
網(wǎng)絡(luò)工程 專業(yè) 班
學(xué)號(hào) 3111001381 姓名
何宇航
成績(jī)?cè)u(píng)定_______ 教師簽名 黃永慧 實(shí)驗(yàn)
題目
數(shù)據(jù)查詢和連接查詢
課程名稱
數(shù)據(jù)庫(kù)原理及應(yīng)用實(shí)驗(yàn)
2)將借書日期在05年以前的借閱記錄存入臨時(shí)超期借閱表。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ā)生了借閱關(guān)系的借書證號(hào),并按借書證號(hào)降序排列。SELECT DISTINCT cno FROM Borrow ORDER BY cno DESC 4)查詢“清華大學(xué)出版社”出版的圖書情況。SELECT *FROM Book WHERE press='清華大學(xué)出版社'
5)查詢目前被借出去的書籍的書號(hào)、借書證號(hào)以及借出日期,并按借出日期排序。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)查詢借書者的編號(hào)、姓名、單位、所借書號(hào)、書名和借閱日期,并按讀者編號(hào)排序。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í)驗(yàn)心得體會(huì)
通過本實(shí)驗(yàn)基本學(xué)會(huì)如何進(jìn)行簡(jiǎn)單表的數(shù)據(jù)查詢、數(shù)據(jù)聯(lián)接查詢以及數(shù)據(jù)排序,并加深對(duì)SQL和Transact-SQL語(yǔ)言的查詢語(yǔ)句的理解,這比光看書跟容易理解,能夠跟好的掌握書本上的知識(shí)。