999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

SQL Server2008多表數(shù)據(jù)查詢的實(shí)現(xiàn)方式

2018-01-22 01:48:40楊浩宇
電腦與電信 2017年11期
關(guān)鍵詞:數(shù)據(jù)庫(kù)用戶信息

楊浩宇

(昆明工業(yè)職業(yè)技術(shù)學(xué)院,云南 昆明 650302)

1 問題提出

數(shù)據(jù)查詢作為數(shù)據(jù)庫(kù)操作的重點(diǎn),也一直是學(xué)習(xí)者的學(xué)習(xí)重點(diǎn),多表查詢則是其中不可回避的重點(diǎn)與難點(diǎn)。本文以一個(gè)學(xué)生數(shù)據(jù)庫(kù)(Student)為例討論幾種實(shí)現(xiàn)多表查詢的方式。

Studen中有三張表:stuinfo(學(xué)生信息表),用于存放學(xué)生基本信息;course(課程信息表),用于存放課程信息;score(成績(jī)表)用于存放學(xué)生各課程的考試成績(jī),具體結(jié)構(gòu)如下:

表1 學(xué)生信息表結(jié)構(gòu)

表2 課程信息表結(jié)構(gòu)

表3 成績(jī)表結(jié)構(gòu)

2 SQL語(yǔ)句查詢實(shí)現(xiàn)多表查詢

對(duì)于這三張表的多表查詢主要集中在成績(jī)的統(tǒng)計(jì)和查詢上。

例如,查詢學(xué)生每門課程的成績(jī),包括學(xué)號(hào)、姓名、課程名稱和成績(jī)信息,用SQL語(yǔ)句完成如下:

select d1.stuid,d1.name,d2.cid,d2.cname,d3.score

from stuinfo d1,course d2,score d3

where d1.stuid=d3.stuid and d2.cid=d3.cid

或者,查詢每位學(xué)生所學(xué)課程的平均分,包括學(xué)號(hào)、姓名和平均分:

select d2.stuid,d2.name,AVG(d1.score)

from score d1,stuinfo d2

where d1.stuid=d2.stuid

group by d2.stuid,d2.name order byAVG(d1.score)desc

再如,統(tǒng)計(jì)各門課程的最高分、最低分和平均分:

select d2.cid,d2.cname,AVG(d1.score),MAX(d1.score),MIN(d1.score)

from score d1,course d2

where d1.cid=d2.cid

3 通過(guò)建立視圖完成多表查詢

在SQL Server8中除了用SQL語(yǔ)句完成這類問題,也可以用其它的數(shù)據(jù)庫(kù)對(duì)象完成。以學(xué)生所學(xué)課程成績(jī)查詢?yōu)槔?,用如下語(yǔ)句建立一個(gè)叫做score1的視圖,然后查看score1的數(shù)據(jù)來(lái)查看到位學(xué)生的各門課程成績(jī),而且,還可以再通過(guò)SQL語(yǔ)句對(duì)score1行和列進(jìn)行選擇統(tǒng)計(jì)數(shù)據(jù)。

create view score1

as

select d1.stuid,d1.name,d2.cid,d2.cname,d3.score

from stuinfo d1,course d2,score d3

where d1.stuid=d3.stuid and d2.cid=d3.cid

例如,查詢每位學(xué)生學(xué)過(guò)的所有課程的平均分,對(duì)視圖score1操作的SQL語(yǔ)句:

Select stuid,name,avg(score)from score1 group by stuid,name

圖1 視圖統(tǒng)計(jì)學(xué)生各科平均分

查詢各門課程的最高分、最低分和平均分,通過(guò)對(duì)Score1視圖的操作來(lái)完成SQL語(yǔ)句如下:select cid,cname,max(score),min(score),avg(score)from score1 group by cid,cname

可見,對(duì)比之前對(duì)多表查詢的語(yǔ)句,視圖查詢簡(jiǎn)潔很多。

圖2 視圖查詢結(jié)果

視圖作為數(shù)據(jù)庫(kù)中的一種對(duì)象,是一個(gè)虛擬表,視圖一旦被建立,作用與表相同,但它并不保存任何數(shù)據(jù),它的數(shù)據(jù)來(lái)自定義視圖的查詢所引用的表。視圖可以使用戶將焦點(diǎn)集中于感興趣的數(shù)據(jù),不必要的數(shù)據(jù)可以不出現(xiàn)在視圖中,這也增加了數(shù)據(jù)的安全性;其次,視圖可以減化操作,特別是對(duì)于對(duì)多表查詢不熟悉的用戶;第三,可以根據(jù)用戶的需求定制數(shù)據(jù),同時(shí)保持?jǐn)?shù)據(jù)表的簡(jiǎn)潔性,又不會(huì)占用很多的存儲(chǔ)空間,并且,在視圖中同樣可以對(duì)數(shù)據(jù)進(jìn)行增刪改的操作。

4 通過(guò)存儲(chǔ)過(guò)程實(shí)現(xiàn)多表查詢

除了視圖,還可以用存儲(chǔ)過(guò)程來(lái)完成對(duì)成績(jī)的查詢。創(chuàng)建名為p1的存儲(chǔ)過(guò)程如下:

create procedure p1 as

select d1.stuid,d1.name,d2.cname,d3.score from stuinfo d1,course d2,score d3

where d1.stuid=d3.stuid and d2.cid=d3.cid

需要查看成績(jī)的時(shí)候調(diào)用p1存儲(chǔ)過(guò)程:exec p1就可以查看所有學(xué)生的各門課程成績(jī),如果需要針對(duì)某學(xué)生或某課程進(jìn)行查詢,則需要?jiǎng)?chuàng)建帶參數(shù)的存儲(chǔ)過(guò)程。

Create procedure p2(char(10))as

select d1.stuid,d1.name,d2.cname,d3.score from stuinfo d1,course d2,score d3

where d1.stuid=d3.stuid and d2.cid=d3.cid and d1.stuid=@sid

p2存儲(chǔ)過(guò)程可以通過(guò)學(xué)號(hào)查詢學(xué)生成績(jī)調(diào)用語(yǔ)句:exec p2“2015020202”

5 結(jié)語(yǔ)

從上面三種實(shí)現(xiàn)多表數(shù)據(jù)查詢的方法來(lái)看,SQL語(yǔ)句查詢交互性強(qiáng),查詢靈活,但對(duì)于了解不多的用戶來(lái)說(shuō),多表復(fù)雜查詢會(huì)有一定的困難。視圖的優(yōu)點(diǎn)是可以防止未經(jīng)許可的用戶訪問敏感數(shù)據(jù);降低數(shù)據(jù)庫(kù)的復(fù)雜度;結(jié)果更容易理解,獲得數(shù)據(jù)更容易,應(yīng)用程序的維護(hù)更加方便,但需要數(shù)據(jù)庫(kù)設(shè)計(jì)者對(duì)數(shù)據(jù)操作有足夠的了解和預(yù)見,否則可能會(huì)限制系統(tǒng)功能;存儲(chǔ)過(guò)程的優(yōu)勢(shì)是可以包含邏輯控制語(yǔ)句和數(shù)據(jù)操作語(yǔ)句速度,模塊化和封裝能夠加快系統(tǒng)運(yùn)行,減少網(wǎng)絡(luò)流量,但它的靈活性不如前兩種方式。

[1]王永樂,徐書欣.S QLServer 2008數(shù)據(jù)庫(kù)管理及應(yīng)用[M].北京:清華大學(xué)出版社,2011.

[2]王勇.用關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言S QL實(shí)現(xiàn)數(shù)據(jù)查詢(多表查詢)的應(yīng)用研究[J].計(jì)算機(jī)光盤軟件與應(yīng)用,2014(19):66-67.

猜你喜歡
數(shù)據(jù)庫(kù)用戶信息
訂閱信息
中華手工(2017年2期)2017-06-06 23:00:31
數(shù)據(jù)庫(kù)
關(guān)注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關(guān)注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
數(shù)據(jù)庫(kù)
關(guān)注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
數(shù)據(jù)庫(kù)
數(shù)據(jù)庫(kù)
如何獲取一億海外用戶
展會(huì)信息
主站蜘蛛池模板: 色老头综合网| 黄色污网站在线观看| 5555国产在线观看| 丝袜久久剧情精品国产| 久久无码av一区二区三区| 无码中字出轨中文人妻中文中| 欧美精品亚洲精品日韩专区| 99久久无色码中文字幕| 午夜福利无码一区二区| 国产超碰一区二区三区| 国产美女丝袜高潮| 日韩无码视频专区| 中文字幕日韩久久综合影院| 成人综合在线观看| 免费毛片网站在线观看| 亚洲av中文无码乱人伦在线r| 亚洲成肉网| 91色爱欧美精品www| 国产精品第一区| 黄色网页在线播放| 欧美a级在线| 一级毛片免费高清视频| 亚洲区一区| 国产在线观看人成激情视频| 亚洲永久色| 国产色爱av资源综合区| 91尤物国产尤物福利在线| 自慰网址在线观看| 亚洲一区二区在线无码| 激情无码视频在线看| 国产成人av大片在线播放| 91探花在线观看国产最新| 国产一区成人| 无码中文AⅤ在线观看| 青青青亚洲精品国产| 97se亚洲综合在线| 国产不卡网| 亚洲色图在线观看| 亚洲人在线| 一本大道东京热无码av| 亚洲精品色AV无码看| 日本高清免费不卡视频| 亚洲第一视频区| 伊人久久大香线蕉成人综合网| 色综合五月婷婷| 青青热久麻豆精品视频在线观看| 中国国产A一级毛片| 国产精品一线天| 女人18一级毛片免费观看| 欧美日本在线播放| 大香网伊人久久综合网2020| 日本不卡在线播放| 亚洲色成人www在线观看| 999国产精品永久免费视频精品久久| 国产午夜在线观看视频| 久久精品无码一区二区国产区| 国产美女主播一级成人毛片| 大陆精大陆国产国语精品1024| 9啪在线视频| 欧美日韩在线观看一区二区三区| 尤物国产在线| 国产在线观看人成激情视频| 97综合久久| 毛片久久久| 国产极品美女在线观看| 9966国产精品视频| 97久久超碰极品视觉盛宴| 国产免费羞羞视频| 99精品免费欧美成人小视频| 91亚洲影院| 欧洲一区二区三区无码| 全部免费毛片免费播放 | 福利视频一区| 国产小视频网站| 日韩国产欧美精品在线| 久久9966精品国产免费| 亚洲av无码久久无遮挡| 欧美三級片黃色三級片黃色1| 99re精彩视频| 国产真实乱了在线播放| 国产av色站网站| 中文字幕1区2区|