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ì)信息
主站蜘蛛池模板: 国语少妇高潮| 亚洲区第一页| 亚洲精品无码抽插日韩| 天天综合网在线| 国产一区二区丝袜高跟鞋| 四虎影院国产| 欧美怡红院视频一区二区三区| 伊人色在线视频| 亚洲天堂区| 97在线免费| 久久久久久久久亚洲精品| 国产欧美视频在线| 在线观看91精品国产剧情免费| 在线日韩一区二区| 亚洲黄色成人| 成人午夜免费视频| 免费三A级毛片视频| 久久免费精品琪琪| 久久一本日韩精品中文字幕屁孩| 亚洲av无码成人专区| 国产成人亚洲无吗淙合青草| 日本久久免费| 日本三区视频| 国产精品福利在线观看无码卡| 国产亚洲精| 国产午夜精品一区二区三| 国产va欧美va在线观看| 午夜国产精品视频| 午夜综合网| 2024av在线无码中文最新| 国产亚洲欧美在线中文bt天堂| 亚洲av日韩综合一区尤物| 中国丰满人妻无码束缚啪啪| 操操操综合网| 在线观看国产精品一区| 亚洲欧洲自拍拍偷午夜色| 精品国产aⅴ一区二区三区| 中国一级毛片免费观看| 成人免费视频一区| 国产在线观看第二页| 狠狠干综合| 日韩欧美中文字幕在线韩免费| 伊人久热这里只有精品视频99| 亚洲自拍另类| 欧美区在线播放| 毛片视频网| 国模视频一区二区| a毛片免费在线观看| 国产男人的天堂| 久久久久久久蜜桃| 久久久国产精品无码专区| 激情乱人伦| 亚洲—日韩aV在线| 日韩在线1| 亚洲毛片一级带毛片基地| 国产无码精品在线| 国产乱人伦精品一区二区| 亚洲欧美另类中文字幕| 在线国产欧美| 亚洲国产一成久久精品国产成人综合| 色首页AV在线| 91精品国产一区自在线拍| 亚洲VA中文字幕| 99re精彩视频| 好紧好深好大乳无码中文字幕| 国产在线观看91精品| 国产精品手机在线播放| 九九视频免费看| 欧美日韩中文国产va另类| 欧美中文字幕一区| 国产精品永久久久久| 91精品网站| 香蕉国产精品视频| 久久网欧美| 欧美综合在线观看| 福利国产在线| 国产精品亚洲片在线va| 欧美一级爱操视频| 国产成人8x视频一区二区| 日韩AV无码一区| 日本精品一在线观看视频| 欧美亚洲国产日韩电影在线|