第一篇:實驗五數(shù)據(jù)查詢——復(fù)雜查詢
數(shù)據(jù)庫原理實驗
學(xué)號:123012008xxx姓名:xxx班級(x)小班日期:2010年月日
實驗五數(shù)據(jù)查詢——復(fù)雜查詢
一、實驗?zāi)康?.掌握SQLServer查詢語句的基本語法
2.熟練使用SQL的Select語句對多表進(jìn)行查詢
3.熟練掌握并運(yùn)用SQLServer所提供的函數(shù)
4.熟練使用SQL語句進(jìn)行復(fù)雜的連接操作
二、實驗環(huán)境(實驗的軟件、硬件環(huán)境)
硬件:PC機(jī) 軟件:SQL2000
三、實驗指導(dǎo)說明
請復(fù)習(xí)相關(guān)的查詢知識點(diǎn)并完成如下內(nèi)容。
四、實驗內(nèi)容
1.在訂單數(shù)據(jù)庫orderDB中,完成如下的查詢:
(1)用子查詢查詢員工“張小娟”所做的訂單信息。
select *
from orderMaster
where SaleNo in()select distinct employeeno from employee where employeeName='陳詩杰'
(2)查詢沒有訂購商品的且在北京地區(qū)的客戶編號,客戶名稱和郵政編碼,并按郵政編碼降序排序。
select *
from customer c
where not exists(select * from orderMaster o where o.customerNo=c.CustomerNo)and Adderss='北京市'
(3)查詢訂購了“32M DRAM”商品的訂單編號,訂貨數(shù)量和訂貨單價。1
select OrderNo,Qty,Price
from orderDetail
where ProductNo in()select ProductNo from product where ProductName='32M DRAM'
(4)查詢與員工編號“E2008005”在同一個部門的員工編號,姓名,性別,所屬部門。
select * from employee
select *
from employee
where Department in()select Department from employee where employeeNo='E2008001'
(5)查詢既訂購了P20050001商品,又訂購了P20070002商品的客戶編號,訂單編號和訂單金額
select distinct
orderDetail.OrderNo,orderMaster.Ordersum,orderMaster.customerNo from orderDetail,orderMaster
where orderDetail.OrderNo=orderMaster.OrderNo and ProductNo='p2006002'intersect
select
orderDetail.OrderNo,orderMaster.Ordersum,orderMaster.customerNo from orderDetail,orderMaster
where orderDetail.OrderNo=orderMaster.OrderNo and
ProductNo='p2008001'
(6)查詢沒有訂購“52倍速光驅(qū)”或“17寸顯示器”的客戶編號,客戶名稱。
select customerno,customername
from customer
where CustomerNo in(select customerNo
from orderMaster
where OrderNo in(select OrderNo
from orderDetail where ProductNo not in(select ProductNo from productwhere ProductName='52倍速光驅(qū)' or ProductName='17寸顯示器')))
(7)查詢訂單金額最高的訂單編號,客戶姓名,銷售員名稱和相應(yīng)的訂單金額。
select
employee.employeeName,customer.customername,orderMaster.Ordersum from orderMaster,employee,customer
where Ordersum>=(select MAX(Ordersum)from orderMaster)and employeeNo=SaleNo and orderMaster.customerNo=customer.CustomerNo
(8)查詢訂購了“52倍速光驅(qū)”商品的訂購數(shù)量,訂購平均價和訂購總金額。
select SUM(Qty)as totalq,AVG(Price)asavgprice,sum(Qty*Price)as totalp
from orderDetail
where ProductNo in(select distinct ProductNo
from product
where ProductName='52倍速光驅(qū)')
(9)查詢訂購了“52倍速光驅(qū)”商品且訂貨數(shù)量界于2~4之間的訂單編號,訂貨數(shù)量和訂貨金額。
select Qty,Price,OrderNo
from orderDetail
where ProductNo in(select distinct ProductNo
from product
where ProductName='52倍速光驅(qū)')and OrderNo between '200801090002' and '200801090004'
(10)在訂單主表中查詢每個業(yè)務(wù)員的訂單數(shù)量
selectsaleno,COUNT(*)
from orderMaster
group by SaleNo
(11)統(tǒng)計在業(yè)務(wù)科工作且在1973年或1967年出生的員工人數(shù)和平均工資。select COUNT(*)as peoplesum,AVG(Salsry)as avgs
from employee
wherebirthday like '%1973%' or birthday like '%1967%'and Department='業(yè)務(wù)科'
(12)在訂單明細(xì)表中統(tǒng)計每種商品的銷售數(shù)量和金額,并按銷售金額的升序排序輸出。
select Qty,Price
from orderDetail
order by Qty*Price asc
(13)統(tǒng)計客戶號為“C20050001”的客戶的訂單數(shù),訂貨總額和平均訂貨金額
select SUM(b.Qty)as qsum,avg(b.Price)as pavg,SUM(Qty*Price)as qp from orderMaster a,orderDetail b
where customerNo='c2005004' and a.OrderNo=b.OrderNo
(14)統(tǒng)計每個客戶的訂單數(shù),訂貨總額和平均訂貨金額。
select customerno,COUNT(customerNo),avg(b.Price)as pavg,SUM(Qty*Price)as qp
from orderMaster a,orderDetail b
where a.OrderNo=b.OrderNo
group by customerNo
(15)查詢訂單中至少包含3種(含3種)以上商品的訂單編號及訂購次數(shù),且訂購的商品數(shù)量在3件(含3件)以上。
(16)查找訂購了“32M DRAM”的商品的客戶編號,客戶名稱,訂貨總數(shù)量和訂貨總金額。
select distinct
customer.CustomerNo,customername,orderMaster.Ordersum,Qty from orderMaster,customer,orderDetail
where ProductNo in(select distinct ProductNofrom productwhere ProductName='32M DRAM')and
orderMaster.customerNo=customer.CustomerNo and
orderDetail.OrderNo=orderMaster.OrderNo
(17)查詢每個客戶訂購的商品編號,商品所屬類別,商品數(shù)量及訂貨金額,結(jié)果顯示客戶名稱,商品所屬類別,商品數(shù)量及訂貨金額,并按客戶編號升序和按訂貨金額的降序排序輸出。
(18)按商品類別查詢每類商品的訂貨平均單價在280元(含280元)以上的訂貨總數(shù)量,訂貨平均單價和訂貨總金額。
(19)查找至少有2次銷售的業(yè)務(wù)員名稱和銷售日期。
(20)查詢銷售金額最大的客戶名稱和總貨款額
(21)查找銷售總額小于5000元的銷售員編號,姓名和銷售額
(22)查找至少訂購了3種商品的客戶編號,客戶名稱,商品編號,商品名稱,數(shù)量和金額。
(23)查找同時訂購了商品為“P20070002”和商品編號為“P20070001”的商品的客戶編號,客戶姓名,商品編號,商品名稱和銷售數(shù)量,按客戶編號排序輸出。
(24)計算每一商品每月的銷售金額總和,并將結(jié)果首先按銷售月份然后按訂貨金額降序排序輸出。
(25)查詢訂購了“鍵盤”商品的客戶姓名,訂貨數(shù)量和訂貨日期
(26)查詢每月訂購“鍵盤”商品的客戶名稱。
(27)查詢至少銷售了5種商品的銷售員編號,姓名,商品名稱,數(shù)量及相應(yīng)的單價,并按銷售員編號排序輸出。
(28)查詢沒有訂購商品的客戶編號和客戶名稱。
(29)查詢至少包含了“世界技術(shù)開發(fā)公司”所訂購的商品的客戶編號,客戶名稱,商品編號,商品名稱,數(shù)量和金額。
五、實驗步驟
請完成實驗內(nèi)容,并寫出具體的實驗步驟
六、思考題:
1.存在量詞與集合運(yùn)算in、連接運(yùn)算和全程量詞之間的關(guān)系如何?他們可以互相替換嗎?給出你的理由
2.Where子句和having子句都是用于指定查詢條件的,請區(qū)別它們的異同?用實例說明。
3.在分組聚集操作中,為什么在查詢列中,除了聚集函數(shù)運(yùn)算外,其它表達(dá)式必須包含在group by子句中?
七、總結(jié)(實驗過程的體會、心得和實驗教與學(xué)之間還需改進(jìn)的內(nèi)容)
第二篇:查詢數(shù)據(jù)論文網(wǎng)站
中文科技期刊數(shù)據(jù)庫
《中 文科技期刊數(shù)據(jù)庫》是我國收錄期刊最多、年限最長、專業(yè)文獻(xiàn)量最大的中文期刊數(shù)據(jù)庫。該庫自推出就受到國內(nèi)圖書情報界的廣泛關(guān)注和普遍贊譽(yù),目前已擁有包 括港澳臺地區(qū)在內(nèi)2000余家固定單位用戶,是我國數(shù)字圖書館建設(shè)的核心資源之一,高校圖書館文獻(xiàn)保障系統(tǒng)的重要組成部分,也是科研工作者進(jìn)行科技查證和 科技查新的必備數(shù)據(jù)庫。中國期刊全文數(shù)據(jù)庫
該 庫是目前世界上最大的連續(xù)動態(tài)更新的中國期刊全文數(shù)據(jù)庫,收錄國內(nèi)9100多種重要期刊,以學(xué)術(shù)、技術(shù)、政策指導(dǎo)、高等科普及教育類為主,同時收錄部分基 礎(chǔ)教育、大眾科普、大眾文化和文藝作品類刊物,內(nèi)容覆蓋自然科學(xué)、工程技術(shù)、農(nóng)業(yè)、哲學(xué)、醫(yī)學(xué)、人文社會科學(xué)等各個領(lǐng)域,全文文獻(xiàn)總量3252多萬篇。
清華同方學(xué)術(shù)期刊網(wǎng)
中國最大的數(shù)據(jù)庫,內(nèi)容較全。收錄了5000多種中文期刊,1994年以來的數(shù)百萬篇文章,并且目前正以每天數(shù)千篇的速度進(jìn)行更新。閱讀全文需在網(wǎng)站主頁下載CAJ全文瀏覽器。萬方數(shù)據(jù)庫
萬 方數(shù)據(jù)庫是由萬方數(shù)據(jù)公司開發(fā)的,涵蓋期刊,會議紀(jì)要,論文,學(xué)術(shù)成果,學(xué)術(shù)會議論文的大型網(wǎng)絡(luò)數(shù)據(jù)庫。也是和中國知網(wǎng)齊名的中國專業(yè)的學(xué)術(shù)數(shù)據(jù)庫。開發(fā) 公司——萬方數(shù)據(jù)股份有限公司是國內(nèi)第一家以信息服務(wù)為核心的股份制高新技術(shù)企業(yè),是在互聯(lián)網(wǎng)領(lǐng)域,集信息資源產(chǎn)品、信息增值服務(wù)和信息處理方案為一體的 綜合信息服務(wù)商。超星數(shù)字圖書館
超 星數(shù)字圖書館成立于1993年,是國內(nèi)專業(yè)的數(shù)字圖書館解決方案提供商和數(shù)字圖書資源供應(yīng)商。超星數(shù)字圖書館,是國家“863”計劃中國數(shù)字圖書館示范工 程項目,2000年1月,在互聯(lián)網(wǎng)上正式開通。它由北京世紀(jì)超星信息技術(shù)發(fā)展有限責(zé)任公司投資興建,目前擁有數(shù)字圖書八十多萬種。為目前世界最大的中文在線數(shù)字圖 書館,提供大量的電子圖書資源提供閱讀,其中包括文學(xué)、經(jīng)濟(jì)、計算機(jī)等五十余大類,數(shù)十萬冊電子圖書,300 萬篇論文,全文總量 4億余頁,數(shù)據(jù)總量30000GB,大量免費(fèi)電子圖書,并且每天仍在不斷的增加與更新。
維普
http://004km.cn/ 城市規(guī)劃學(xué)刊http://004km.cn/
城市交通http://004km.cn/
第三篇:《數(shù)據(jù)的查詢操作》
第八次作業(yè)1
1.檢索年齡大于18歲的女學(xué)生的學(xué)號和姓名(注意:要給列起別名);use 學(xué)生課程數(shù)據(jù)庫
select sno ,sname
from studentwhere sage>18 and ssex='女'
2.檢索所有男學(xué)生選修的課程號和課程名稱(僅在結(jié)果中列出10%的數(shù)據(jù)行)。use 學(xué)生課程數(shù)據(jù)庫
select top(10)percent course.cno,cname
from student,sc,course
where student.sno=sc.sno and sc.cno=course.cno and ssex='男'
3.查詢年齡大于18,并不是信息管理也不是計算機(jī)科學(xué)的學(xué)生的姓名和性別(復(fù)合查詢);
select sname,ssex
from studentwhere sage>18 and sdept not in('信息管理','計算機(jī)科學(xué)')
4..查詢以“DB_”開頭,和倒數(shù)第二個漢字為“導(dǎo)”字的課程信息(模糊查詢);select *
from course
where cname like 'DB_%' or cname like '%導(dǎo)_'
5.查詢student表和sc表的交叉連接;
select *
from student cross join sc
6.檢索王同學(xué)不學(xué)的課程的課程號和課程名稱;
select cno,cname
from course
where cno not in(select cno from sc where sno in(select snofrom student
where sname='王%'))
7.檢索全部學(xué)生都選修的課程號和課程名稱;
SELECT cno,cname
FROM course
WHERE NOT EXISTS
(SELECT *FROM student
WHERE NOT EXISTS
(SELECT *
FROM SC
WHERE SC.Sno= Student.Sno AND SC.Cno= Course.Cno))
8.檢索所有課程的成績均高于90分的學(xué)生的姓名和年齡;
select sname, sage
from student
where sno in
(select sno
from sc
group by sno
having MIN(grade)>90)
go
9.求劉老師所授的每門課程的平均成績;
select cno,AVG(grade)
from sc
where cno in(select cno from course where cname in(select job from
teacher
where ename like '劉%'))
Group by cno
10.求年齡大于所有女同學(xué)的男學(xué)生的姓名和年齡
select sname,sage
from student
where sage> all(select sage from student where ssex='女')and ssex='男'
11.求每個學(xué)生的總分,要求輸出學(xué)號和總分?jǐn)?shù)(要求依然保持學(xué)生原有的明細(xì)分?jǐn)?shù),并按學(xué)號分組匯總)
select sno,grade
from sc
order by sno
COMPUTE SUM(grade)by sno
12.查詢各不同平均成績所對應(yīng)的學(xué)生人數(shù)(要求顯示各組的單項人數(shù))
select avgr,COUNT(*)
from(select sno,AVG(grade)from sc
group by sno)as sg(sno,avgr)GROUP BY avgr
13.查詢年齡小于18歲和大于20歲的學(xué)生的所有信息(要求用并運(yùn)算實現(xiàn)union);select *
from student
where sage<18
union
select *
from student
where sage>20
14.查詢即選修了‘1001’號課程有選修了‘1003’號課程的學(xué)生的學(xué)號(要求用用交運(yùn)算實現(xiàn)intersect);
select sno
from sc
where cno='1001'
intersect
select sno
from scwhere cno='1003'
15.查詢選修了‘1002’號課程,但不是工業(yè)工程系的學(xué)生的學(xué)號(要求用差運(yùn)算實現(xiàn)except)
select sno
from sc
where cno=1002
exceptselect sno
from student
where sdept!='工業(yè)工程'
16.創(chuàng)建一個公用表,該表由課程號、人數(shù)和最高分組成,用于存放各門課程的課程號、選修該課的人數(shù)及該門課的最高分?jǐn)?shù),查詢該公用表,并按照課程號排序。
WITH gongyongbiao(cno,amount,maxgrade)
AS(SELECT sc.cno, COUNT(*), MAX(grade)
FROM course,sc
WHERE sc.cno IS NOT NULL
GROUP BY sc.cno)
SELECT cno,amount,maxgrade
FROM gongyongbiao
第八次作業(yè)
21.在學(xué)生信息表中進(jìn)行自聯(lián)接查詢,并在連接時使用內(nèi)鏈接,返回籍貫是“河南”或者“北
京”的學(xué)生學(xué)號、姓名、班級編號及籍貫信息。
select student.sno,sname,class,jiguan
from student
where jiguan=‘河南’or jiguan=‘北京’
2.查詢?nèi)藬?shù)超過45人所在班級中的學(xué)生的學(xué)號、姓名和班級名稱。
Select 學(xué)號,姓名,班級名稱
From 學(xué)生信息a,班級信息b
Where a.班級編號=b.班級編號 and a.班級編號 in(select 班級編號 from 班級信息 where 人數(shù)>45)
3.對于成績大于等于90的數(shù)據(jù)進(jìn)行查詢,并返回考試成績的學(xué)生的學(xué)號、姓名、性別、籍
貫和所在班級名稱及年級信息。(用EXISTS編寫語句)
Select a.sno,a.sname,a.ssex,a.jiguan,b.class,b.grade
From 學(xué)生信息a inner join 班級信息b
On a.班級編號=b.班級編號
Where exists(select* from 成績表 where 學(xué)號=a.學(xué)號 and grade>=90)
4.查詢出任意一個大于平均成績的學(xué)生的學(xué)號、姓名、班級編號、課程編號和成績信息。
Select a.sno,a.sname,a.class,b.cno,b.grade
From 學(xué)生信息a inner join 成績表b
On a.學(xué)號=b.學(xué)號
Where grade>any(select avg(grade)from 成績表)
5.查詢學(xué)生姓名為“李文東”所在班級的學(xué)生信息,要求返回學(xué)生的學(xué)號、姓名、性別、班級編號、班級名稱和年級信息
Select a.sno,a.sname,a.ssex,b.banjibianhao,b.banjimingcheng,b.nianjixinxi From 學(xué)生信息a inner join 班級信息b on a.班級編號=b.班級編號
Where a.班級編號=(select 班級編號 from 學(xué)生信息 where sname=‘李文東’)
6.查詢出所有非計算機(jī)系的學(xué)生信息,并顯示出這些學(xué)生的考試成績,成績按降序排列顯示,要求返回學(xué)生的學(xué)號、姓名、班級編號、課程編號和成績信息。
Select a.學(xué)號,a.姓名,a.班級編號,b.課程編號,b.成績
From 學(xué)生信息a inner join 成績表b
On a.學(xué)號=b.學(xué)號
Where a.學(xué)號 not in(select 學(xué)號 from 學(xué)生信息 where 班級編號 in
(select 班級編號 from 課程信息 where 開課系別=‘計算機(jī)系’))
Order by 成績 desc
或
Select a.學(xué)號,a.姓名,a.班級編號,b.課程編號,b.成績
From 學(xué)生信息a inner join 成績表b
On a.學(xué)號=b.學(xué)號
Where a.班級編號 not in((select 班級編號 from 課程信息 where 開課系別=‘計算機(jī)系’))Order by 成績 desc
第四篇:SQL-數(shù)據(jù)查詢語言
寧波工程學(xué)院
數(shù)據(jù)庫理論與技術(shù)課程實驗報告
學(xué)院: 電子與信息工程學(xué)院 專業(yè):計算機(jī)科學(xué)與技術(shù) 年級: 計科10-2 實驗時間: 2012年4月15日
組長: 何亞玲 學(xué)號: 10401010201 指導(dǎo)教師簽字: 成績:
實驗
三、SQL-數(shù)據(jù)查詢語言
一、實驗?zāi)康暮鸵?/p>
1、實驗?zāi)康模荷钊肜斫膺B接查詢和嵌套查詢的語句格式、執(zhí)行過程,掌握它們的使用方法;理解數(shù)據(jù)更新語言INSERT、UPDATE、DELETE語句的格式和作用,掌握它們的使用方法和應(yīng)用范圍;理解視圖的概念,掌握其定義方法和應(yīng)用方法。
2、實驗要求:在每次實驗前,學(xué)生必須根據(jù)實驗指導(dǎo)書設(shè)計出實驗方案(程序和實驗步驟);在實驗過程中要求獨(dú)立進(jìn)行程序調(diào)試和排錯,學(xué)會使用在線幫助來解決實驗中遇到的問題,同時運(yùn)用理論的知識來分析問題和解決問題,記錄下實驗過程和結(jié)果。上機(jī)結(jié)束后寫出實驗報告,并對實驗過程進(jìn)行分析和總結(jié)。
二、實驗內(nèi)容與步驟
1、在SQL SERVER 2005上附加數(shù)據(jù)庫jxgl和ReadBook。
2、在jxgl中完成下列查詢
(1)查詢選修課程學(xué)生的學(xué)號、姓名、所選課程號、課程名稱以及所取得的成績(2)查詢每一門課程及其先修課程,查詢結(jié)果中顯示課程號、課程名和先修課程名(3)查詢和“劉濤”在一個班級的學(xué)生的信息 思考:該查詢可用幾種方法實現(xiàn)?
(4)查詢選修了‘計算機(jī)基礎(chǔ)’課的學(xué)生的學(xué)號、姓名(分別用連接查詢和嵌套查詢的方法實現(xiàn))
(5)查詢沒有選修課程的學(xué)生的信息
(6)查詢其他班中比“03計算應(yīng)用1”所有學(xué)生入學(xué)成績高的學(xué)生的姓名和入學(xué)成績(用兩種方法實現(xiàn))
(7)查詢每個學(xué)生超過該門課程平均成績的課程號
1(8)查詢至少選修了“0311102”學(xué)生所選全部課程的學(xué)生的學(xué)號(9)查詢既選修了“計算機(jī)基礎(chǔ)”又選修了“C語言基礎(chǔ)”的學(xué)生的學(xué)號(10)同時顯示students中學(xué)生以及teachers中教師的姓名、性別
3、在jxgl中完成下列數(shù)據(jù)更新
(1)向course表添加一個新的元組。
(2)將“0301102”學(xué)生所選的“0000002”課程的成績改為100分,績點(diǎn)改為2(3)刪除(1)中在course表中添加的記錄
(4)統(tǒng)計每門課程的平均成績并將統(tǒng)計結(jié)果存入到j(luò)xgl數(shù)據(jù)庫中
思考:如何將students表中班級名 “03計算應(yīng)用1”改為“03計算機(jī)應(yīng)用1”(可調(diào)用函數(shù)完成)
4、查詢教師的編號、姓名、上課的課程號、課程名稱及班級。將該查詢定義為一個視圖。
5、在第4題定義的視圖中完成下列查詢
(1)查詢“姚明”所上課程和班級。(2)統(tǒng)計每一位教師上課的數(shù)量
6、利用數(shù)據(jù)庫ReadBook完成下列查詢及視圖設(shè)計。(在SQL SERVER2005上附加數(shù)據(jù)庫ReadBook)
(1)設(shè)計一個查詢,要求用連接和嵌套兩種方式完成。(2)設(shè)計一個查詢,要求用外連接的方式完成。
(3)設(shè)計一個查詢,要求用帶exists或not exists相關(guān)子查詢完成(4)設(shè)計一個集合查詢
(5)設(shè)計一個帶復(fù)合條件連接的查詢
(6)設(shè)計一個視圖,并在該視圖中完成添加、修改、刪除數(shù)據(jù)的操作。
(7)設(shè)計一個視圖,并在該視圖完成兩個統(tǒng)計:a.每位讀者以及他的借書數(shù)量,按借書數(shù)量作降序排列 b.每本書以及被借出的次數(shù),按借出次數(shù)作降序排列。
注意在實驗報告中說明查詢的目的和對應(yīng)的語句。
三、實驗過程及數(shù)據(jù)記錄
1、在SQL SERVER 2005上附加數(shù)據(jù)庫jxgl和ReadBook。
2、在jxgl中完成下列查詢
(1)查詢選修課程學(xué)生的學(xué)號、姓名、所選課程號、課程名稱以及所取得的成績
select Students.sno,sname,SC.cno,cname,grade from Students,SC,Course where Students.sno=SC.sno and SC.cno=Course.cno
(2)查詢每一門課程及其先修課程,查詢結(jié)果中顯示課程號、課程名和先修課程名 select cno,cname from
Course
(3)查詢和“劉濤”在一個班級的學(xué)生的信息 select * from
students where class=(select class from
students where sname='劉濤')
思考:該查詢可用幾種方法實現(xiàn)?
(4)查詢選修了‘計算機(jī)基礎(chǔ)’課的學(xué)生的學(xué)號、姓名(分別用連接查詢和嵌套查詢的方法實現(xiàn))連接查詢:
select Students.sno,sname from students,SC,Course where cname='計算機(jī)基礎(chǔ)'and Students.sno=SC.sno and SC.cno=Course.cno 嵌套查詢:
select s1.sno,sname from
students s1,SC s2,Course s3 where cname='計算機(jī)基礎(chǔ)'and s1.sno=s2.sno and s2.cno=s3.cno 執(zhí)行結(jié)果同上
(5)查詢沒有選修課程的學(xué)生的信息
select * from
Students where sno not in(select sno from sc)
(5)查詢其他班中比“03計算應(yīng)用1”所有學(xué)生入學(xué)成績高的學(xué)生的姓名和入學(xué)成績(用兩種方法實現(xiàn))
1:select sname,mgrade from students where
mgrade>(select max(mgrade)
from students where class='03計算應(yīng)用')
2:select sname,mgrade from students where
mgrade>all(select mgrade from students where class='03計算應(yīng)用1')
(6)查詢每個學(xué)生超過該門課程平均成績的課程號
select
cno from sc sc1 ,students where
grade>(select avg(grade)from sc sc2
where sc2.cno=sc1.cno)
(9)查詢既選修了“計算機(jī)基礎(chǔ)”又選修了“C語言基礎(chǔ)”的學(xué)生的學(xué)號 where sc2.cno=sc1.cno)
select
s1.sno from
course c1,course c2,sc sc1,sc sc2,students s1,students s2 where
c1.cname='計算機(jī)基礎(chǔ)'
and
c2.cname='C語言基礎(chǔ)' and c1.cno=sc1.cno
and
sc1.sno=s1.sno and c2.cno=sc2.cno and
sc2.sno=s2.sno and
s1.sno=s2.sno(10)同時顯示students中學(xué)生以及teachers中教師的姓名、性別 因為教師并沒有標(biāo)明性別,所以不顯示
select sname,ssex from students select tname from teachers
3、在jxgl中完成下列數(shù)據(jù)更新
(1)向course表添加一個新的元組。增加的元組為學(xué)習(xí)的學(xué)期cterm: use jxgl_1 alter table course add cterm char(1)
(2)將“0301102”學(xué)生所選的“0000002”課程的成績改為100分,績點(diǎn)改為2 update sc set grade='100',point='2' where sno='0301102'
and cno='0000002'(3)刪除(1)中在course表中添加的記錄 use jxgl_1 alter table course drop column
cterm(4)統(tǒng)計每門課程的平均成績并將統(tǒng)計結(jié)果存入到j(luò)xgl數(shù)據(jù)庫中
select cno,avg(grade)as avg_grade from SC group by cno
思考:如何將students表中班級名 “03計算應(yīng)用1”改為“03計算機(jī)應(yīng)用1”(可調(diào)用函數(shù)完成)update
students set class='03計算機(jī)應(yīng)用' where class='03計算應(yīng)用'
4、查詢教師的編號、姓名、上課的課程號、課程名稱及班級。將該查詢定義為一個視圖。
create
view teacher_information(tno,tname,cno,cname,class)as select teachers.tno,tname,TC.cno,cname,class from Course,TC,Teachers where Course.cno=TC.cno and TC.tno=Teachers.tno
5、在第4題定義的視圖中完成下列查詢
(1)查詢“姚明”所上課程和班級。select cname,class from teacher_information where
tname='姚明'
(2)統(tǒng)計每一位教師上課的數(shù)量 select tname,count(cno)the_all from teachers_view group by tno,tname
6、利用數(shù)據(jù)庫ReadBook完成下列查詢及視圖設(shè)計。(在SQL SERVER2005上附加數(shù)據(jù)庫ReadBook)
(1)設(shè)計一個查詢,要求用連接和嵌套兩種方式完成。
連接:
select
rname,bookname from
books,L_R,readers where books.bookid=L_R.bookid and
L_R.rno=readers.rno 嵌套:
select rname,bookname from books b1,L_R lr1 ,readers r1 where b1.bookid=lr1.bookid and
lr1.rno=r1.rno(2)設(shè)計一個查詢,要求用外連接的方式完成。select classid,rno from books right outer join L_R on
books.bookid=L_R.bookid
(3)設(shè)計一個查詢,要求用帶exists或not exists相關(guān)子查詢完成 select distinct bookname from books where exists(select bookid from
L_R where
books.bookid=L_R.bookid and rno='04201')(4)設(shè)計一個集合查詢
select * from readers where rsex='男' union
select * from readers where spet='網(wǎng)絡(luò)'(5)設(shè)計一個帶復(fù)合條件連接的查詢
select rname,bookname from books,L_R,readers where books.bookid=L_R.bookid and L_R.rno=readers.rno(6)設(shè)計一個視圖,并在該視圖中完成添加、修改、刪除數(shù)據(jù)的操作。create
view books_information(bookid,classid,bookname)as select bookid,classid,bookname from books
select * from books_information
insert into books_information(bookid,classid,bookname)values('sn911','yy','計算機(jī)維修')
update books_information set classid='yy' where bookid='sn9001'
delete from
books_information where classid='sn9007'
(7)設(shè)計一個視圖,并在該視圖完成兩個統(tǒng)計:a.每位讀者以及他的借書數(shù)量,按借書數(shù)量作降序排列 b.每本書以及被借出的次數(shù),按借出次數(shù)作降序排列。create view lr(rno,rname,bookid)6 as select readers.rno,rname,bookid from readers,L_R where readers.rno=L_R.rno
select rno,rname,count(bookid)as 借書數(shù)量 from lr group by rno,rname order by 借書數(shù)量desc
select bookid,count(bookid)as 借書次數(shù) from lr group by bookid order by 借書次數(shù)desc drop view lr
注:圖很多,不一一附上
四、實驗結(jié)果分析
這次實驗的內(nèi)容是熟悉連接查詢和嵌套查詢的語句格式、執(zhí)行過程,并掌握它們的使用方法;理解數(shù)據(jù)更新語言INSERT、UPDATE、DELETE語句的格式和作用,掌握它們的使用方法和應(yīng)用范圍;理解視圖的概念,掌握其定義方法和應(yīng)用方法。
按照課本的指導(dǎo),導(dǎo)入數(shù)據(jù)庫,才可以進(jìn)行相關(guān)查詢。編寫程序時會出現(xiàn)很多錯誤,很多分析時還正確,卻不能執(zhí)行,自己不斷獨(dú)立糾錯改正,才可以實現(xiàn)查詢結(jié)果。
第五篇:選擇查詢實驗題
選擇查詢實驗題
1.使用查詢設(shè)計器創(chuàng)建選擇查詢“大學(xué)英語課程教師安排情況信息瀏覽”。要求最終的查詢結(jié)果中包含:班級名稱、課程名稱、教師名稱等數(shù)據(jù)內(nèi)容。
2.使用查詢設(shè)計器創(chuàng)建選擇查詢“經(jīng)濟(jì)管理學(xué)院上過經(jīng)濟(jì)管理基礎(chǔ)課程的男老師信息瀏覽”。要求最終的查詢結(jié)果中包含:學(xué)院代碼、學(xué)院名稱、教師名稱
3.使用查詢設(shè)計器創(chuàng)建選擇查詢“學(xué)生班級詳細(xì)信息”。要求最終的查詢結(jié)果中包含:學(xué)號、姓名、學(xué)院名稱(升序)、專業(yè)名稱(升序)、班級名稱(升序)、性別、籍貫等數(shù)據(jù)內(nèi)容。提示:學(xué)號前9位為班級號。
4.使用查詢設(shè)計器創(chuàng)建選擇查詢“有關(guān)學(xué)院教學(xué)計劃信息”。要求最終的查詢結(jié)果中包含:學(xué)院代碼、學(xué)院名稱、專業(yè)代碼(升序)、專業(yè)名稱、學(xué)制(升序)、開課學(xué)期、課程代碼、課程類型、周課時、總課時、起止周等數(shù)據(jù)內(nèi)容。如果只想看到必修課和限選課的信息,怎么辦。
5.使用查詢設(shè)計器創(chuàng)建匯總選擇查詢“統(tǒng)計出英語課程每位任課老師所教班級的平均成績”,要求最終的查詢結(jié)果中包含:教師名稱、班級名稱、課程名稱(升序)、班級人數(shù)、平均成績。