數(shù)據(jù)庫及其應(yīng)用實(shí)驗(yàn)報(bào)告SQL查詢選擇查詢和動(dòng)作查詢_第1頁
數(shù)據(jù)庫及其應(yīng)用實(shí)驗(yàn)報(bào)告SQL查詢選擇查詢和動(dòng)作查詢_第2頁
數(shù)據(jù)庫及其應(yīng)用實(shí)驗(yàn)報(bào)告SQL查詢選擇查詢和動(dòng)作查詢_第3頁
數(shù)據(jù)庫及其應(yīng)用實(shí)驗(yàn)報(bào)告SQL查詢選擇查詢和動(dòng)作查詢_第4頁
數(shù)據(jù)庫及其應(yīng)用實(shí)驗(yàn)報(bào)告SQL查詢選擇查詢和動(dòng)作查詢_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、數(shù)據(jù)庫及其應(yīng)用實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)序號(hào):b0901000-03 實(shí)驗(yàn)項(xiàng)目名稱:sql查詢、選擇查詢和動(dòng)作查詢學(xué)號(hào)姓名專業(yè)、班藝術(shù)1002實(shí)驗(yàn)地點(diǎn)指導(dǎo)教師時(shí)間2011年5月一、實(shí)驗(yàn)?zāi)康募耙?掌握access表達(dá)式的基本概念。了解不同類型數(shù)據(jù)的常量、參數(shù)、運(yùn)算與函數(shù)的使用。2理解查詢對(duì)象的意義和建立方法。3掌握sql語言中select語句的主要應(yīng)用。4掌握sql的插入、更新、刪除操作命令的基本應(yīng)用。5了解sql定義數(shù)據(jù)表的基本方法。6理解access選擇查詢的意義和類別。7掌握一般選擇查詢的操作應(yīng)用;理解并掌握交叉查詢的應(yīng)用;理解參數(shù)查詢的意義。8理解access動(dòng)作查詢包含的查詢類別。 9將動(dòng)作查詢與

2、sql命令進(jìn)行對(duì)比,理解并掌握動(dòng)作查詢的操作應(yīng)用。 二、實(shí)驗(yàn)設(shè)備(環(huán)境)及要求 pc機(jī),windows xp,access 2003,學(xué)生管理數(shù)據(jù)庫三、實(shí)驗(yàn)內(nèi)容要求(一) sql視圖中表達(dá)式練習(xí)1進(jìn)入sql視圖及在不同視圖間切換在access中進(jìn)入查詢的設(shè)計(jì)視圖并在查詢的不同視圖之間切換。2不同類型數(shù)據(jù)的表達(dá)式運(yùn)算在sql視圖中分別輸入以下命令并運(yùn)行,對(duì)于參數(shù)自己輸入數(shù)據(jù)。查看并寫出各表達(dá)式運(yùn)算結(jié)果。select -5.122+(17 mod 3);select "hello "+",world!",left("清華大學(xué)出版社",2)

3、+right("清華大學(xué)出版社",3);select "你畢業(yè)的年份是", val(left(你的學(xué)號(hào),4)+4;select "現(xiàn)在是"+str(year(date()+"年","現(xiàn)在的時(shí)間是:"+cstr(time();select "張三">"李四","abcd"<"abcd",(date()-#1992-10-8#)>1000;(二)sql命令進(jìn)行查詢和操作1練習(xí)sql查詢的select語句

4、啟動(dòng)教學(xué)管理數(shù)據(jù)庫,在數(shù)據(jù)庫窗口對(duì)象欄中單擊“查詢”,然后進(jìn)入sql視圖。在“sql視圖”中輸入以下select命令,查看執(zhí)行結(jié)果,并仔細(xì)體會(huì)查詢的實(shí)現(xiàn)。 查詢“學(xué)院”、“專業(yè)”、“學(xué)生”完整數(shù)據(jù)。select * from (學(xué)院 inner join 專業(yè) on 學(xué)院.學(xué)院號(hào)=專業(yè).學(xué)院號(hào)) inner join 學(xué)生 on 專業(yè).專業(yè)號(hào)=學(xué)生.專業(yè)號(hào)); 查詢“工商管理”專業(yè)所有女生信息。select 專業(yè),學(xué)生.* from 專業(yè) inner join 學(xué)生 on 專業(yè).專業(yè)號(hào)=學(xué)生.專業(yè)號(hào)where 專業(yè).專業(yè)="工商管理" and 學(xué)生.性別="女&q

5、uot;; 查詢平均成績(jī)?cè)?0分以上的各位學(xué)生的學(xué)號(hào)、姓名和平均分。保存為查詢對(duì)象,對(duì)象名“優(yōu)秀學(xué)生”。select 學(xué)生.學(xué)號(hào),姓名,avg(成績(jī)) as 平均分 from 學(xué)生 inner join 成績(jī) on 學(xué)生.學(xué)號(hào)=成績(jī).學(xué)號(hào) group by 學(xué)生.學(xué)號(hào),姓名 having avg(成績(jī))>=80 ;單擊工具欄保存按鈕,彈出“另存為”對(duì)話框,輸入“優(yōu)秀學(xué)生”,單擊“確定”按鈕。 查詢沒有學(xué)生數(shù)據(jù)的專業(yè)編號(hào)和專業(yè)。select 專業(yè)號(hào),專業(yè) from 專業(yè) where 專業(yè)號(hào) not in (select 專業(yè)號(hào) from 學(xué)生) ; 查詢“湖北”籍1988年以后出生的學(xué)生信

6、息。select * from 學(xué)生 where 籍貫 like "湖北*" and 生日 >=#1988-1-1# ; 查詢選課人數(shù)最多的課程的課程號(hào)、課程名。select top 1 課程.課程號(hào),課程名 from 課程 inner join 成績(jī) on 課程.課程號(hào)=成績(jī).課程號(hào) group by 課程.課程號(hào),課程名order by count(*) desc ;2練習(xí)sql的插入、更新、刪除操作命令 在課程表中插入一門新課,數(shù)據(jù)如命令所示。insert into 課程values("06020101","會(huì)計(jì)學(xué)原理",

7、3,"06"); 將“法學(xué)院(04)”開設(shè)課程的學(xué)分增加1分。update 課程 set 學(xué)分=學(xué)分+1 where 學(xué)院號(hào)="04" 刪除“信息學(xué)院(09)”開設(shè)的沒有學(xué)生選修的課程。delete from 課程 where 學(xué)院號(hào)="09" and 課程號(hào) not in (select 課程號(hào) from 成績(jī))3創(chuàng)建“教師”表,包括:工號(hào)、姓名、性別、生日、職稱、基本工資、學(xué)院號(hào)。寫出創(chuàng)建命令。(三)選擇查詢操作1進(jìn)入查詢?cè)O(shè)計(jì)視圖進(jìn)行交互式選擇查詢?cè)O(shè)置啟動(dòng)教學(xué)管理數(shù)據(jù)庫。 查詢“專業(yè)”表,顯示開設(shè)的所有專業(yè)涉及的學(xué)科門類。 查詢各

8、專業(yè)學(xué)生的人數(shù)。 查詢沒有選課的男學(xué)生學(xué)號(hào)、姓名,即成績(jī)表中沒有記錄的學(xué)生數(shù)據(jù)。2進(jìn)行交叉表查詢將學(xué)生的“學(xué)號(hào)”和“姓名”作為行標(biāo)題,“課程名”作為列標(biāo)題,成績(jī)作為交叉數(shù)據(jù),生成交叉表。3進(jìn)行參數(shù)查詢通過參數(shù)查詢指定日期以后出生的某個(gè)民族的學(xué)生信息。(四)動(dòng)作查詢操作1生成表查詢操作練習(xí)將“查詢平均成績(jī)?cè)?0分以上的各位學(xué)生的學(xué)號(hào)、姓名和平均分”的結(jié)果生成新表,表名“優(yōu)秀學(xué)生名單”。2刪除查詢操作刪除“優(yōu)秀學(xué)生名單”表中,平均分在85分以下的記錄。3追加查詢操作將平均分在8085分之間的學(xué)生及成績(jī)數(shù)據(jù)加入“優(yōu)秀學(xué)生名單”表, 4更新查詢操作將沒有學(xué)生選修的課程的學(xué)分減少1分。寫出以上要求的操作

9、步驟并截取必要的圖片。四、回答問題1有哪幾種方式可進(jìn)入“sql視圖”?如果用“記事本”編寫了sql語句,是否可以在sql視圖中使用?如何操作?答:?jiǎn)螕舨樵児ぞ邫诘摹耙晥D”工具的下拉按鈕,選擇“sql視圖”選項(xiàng)或單擊菜單欄中“視圖”,選擇“sql視圖”??梢?。2為什么不能在數(shù)字常量前加“¥”或“$”符號(hào)表示幣值常量?“¥”或“$”有何作用?答:“”表示可以在“格式”屬性中的任何位置使用這些字符并將這些字符原文照印。3如果在修改“法學(xué)院”學(xué)分的操作中要求根據(jù)“學(xué)院名”作為輸入條件修改數(shù)據(jù),查詢命令應(yīng)該如何寫?答:update 課程 set 學(xué)分=學(xué)分+1where 學(xué)院名=法學(xué)院;4不保存查詢,與

10、將查詢保存為查詢對(duì)象有何區(qū)別?查詢對(duì)象有什么作用?答:將查詢對(duì)象保存為查詢對(duì)象后,可將查詢功能反復(fù)執(zhí)行,并作進(jìn)一步處理。作用:當(dāng)需查看查詢結(jié)果時(shí),進(jìn)入查詢對(duì)象界面,選中相應(yīng)的查詢對(duì)象單擊“打開”,即可運(yùn)行查詢,查看結(jié)果;由于查詢的結(jié)果與表的格式相同,所以查詢對(duì)象還可以進(jìn)一步成為其他操作的數(shù)據(jù)源。5根據(jù)以下給定的查詢要求,寫出對(duì)應(yīng)的查詢命令。 查詢學(xué)生中的民族來源,顯示不重復(fù)的民族數(shù)據(jù)。答:select distinct 民族 from 學(xué)生; 查詢各民族男生和女生的人數(shù)。答:select distinct 民族,人數(shù) from 學(xué)生; 查詢沒有學(xué)生選修的課程信息以及開課的學(xué)院名。答:selec

11、t 課程號(hào),學(xué)院名from 課程where 課程號(hào) not in (select 課程號(hào)from 課程); 插入幾條教師記錄。答:insert into 教師 values(“張?zhí)m”, “趙也聲”); 給“教授”職稱的教師的基本工資增加10%。答:update 教師 set 工資=工資*(1+10%)where 職稱=教授; 刪除沒有學(xué)生就讀的專業(yè)數(shù)據(jù)。答:delect from 專業(yè)where 專業(yè)號(hào) not in ( select 專業(yè)號(hào) from 學(xué)生); 刪除教師表。答:delect table 教師text(6) primary key,(工號(hào) text(6) primary key

12、,姓名 text(10) not null,性別 text(2),生日 date,職稱 text(8),基本工資 money,學(xué)院號(hào) text(2) references 學(xué)院(學(xué)院號(hào)));6深入體會(huì)交叉表查詢的作用,簡(jiǎn)述交叉表查詢的實(shí)質(zhì)意義。作為行標(biāo)題的字段最多可以設(shè)置幾個(gè)?作為列標(biāo)題和交叉值的字段最多可以設(shè)置幾個(gè)?答:交叉表查詢都是一種特殊的匯總查詢。交叉表事實(shí)上反映的是對(duì)兩種實(shí)體極其練習(xí)的關(guān)系表示,轉(zhuǎn)換為另一種二維表結(jié)構(gòu)來顯示。行標(biāo)題的字段可是多個(gè),列標(biāo)題只能是一個(gè)。7參數(shù)查詢的參數(shù)設(shè)置是否一定要通過菜單設(shè)置類型?通過菜單設(shè)置的參數(shù)是否一定要出現(xiàn)在查詢中?答:是。不一定。8生成表查詢實(shí)現(xiàn)

13、的是sql語言中什么語句的功能?答:實(shí)現(xiàn)select語句中into子句的功能。9追加查詢對(duì)應(yīng)sql的什么語句?該語句是否只具有追加查詢的功能?若有其他功能,如何實(shí)現(xiàn)交互操作?答:insert語句。不是。五、分析討論 通過這次實(shí)驗(yàn),我基本上掌握了sql查詢、選擇查詢和動(dòng)作查詢。實(shí)驗(yàn)的難度有點(diǎn)大,內(nèi)容非常多,花了我不少時(shí)間,但也大有收獲。對(duì)access也有了進(jìn)一步的了解。也增加了我對(duì)數(shù)據(jù)庫的興趣。六、教師評(píng)語簽名: 日期:成績(jī)本實(shí)驗(yàn)的操作步驟如下。(一) sql視圖中表達(dá)式練習(xí)1進(jìn)入sql視圖及在不同視圖間切換在數(shù)據(jù)庫窗口中選擇“查詢”對(duì)象,雙擊“在設(shè)計(jì)視圖中創(chuàng)建查詢”。關(guān)閉“顯示表”對(duì)話框,然后

14、單擊查詢工具欄的“視圖”工具的下拉按鈕,選擇“sql視圖”選項(xiàng)。2不同類型數(shù)據(jù)的表達(dá)式運(yùn)算select -5.122+(17 mod 3);select "hello "+",world!",left("清華大學(xué)出版社",2)+right("清華大學(xué)出版社",3);select "你畢業(yè)的年份是", val(left(你的學(xué)號(hào),4)+4;select "現(xiàn)在是"+str(year(date()+"年","現(xiàn)在的時(shí)間是:"+cstr(ti

15、me();select "張三">"李四","abcd"<"abcd",(date()-#1992-10-8#)>1000;(二)sql命令進(jìn)行查詢和操作1練習(xí)sql查詢的select語句 查詢“學(xué)院”、“專業(yè)”、“學(xué)生”完整數(shù)據(jù)。select * from (學(xué)院 inner join 專業(yè) on 學(xué)院.學(xué)院號(hào)=專業(yè).學(xué)院號(hào)) inner join 學(xué)生 on 專業(yè).專業(yè)號(hào)=學(xué)生.專業(yè)號(hào)); 查詢“工商管理”專業(yè)所有女生信息。select 專業(yè),學(xué)生.* from 專業(yè) inner join 學(xué)

16、生 on 專業(yè).專業(yè)號(hào)=學(xué)生.專業(yè)號(hào)where 專業(yè).專業(yè)="工商管理" and 學(xué)生.性別="女"; 查詢平均成績(jī)?cè)?0分以上的各位學(xué)生的學(xué)號(hào)、姓名和平均分。保存為查詢對(duì)象,對(duì)象名“優(yōu)秀學(xué)生”。select 學(xué)生.學(xué)號(hào),姓名,avg(成績(jī)) as 平均分 from 學(xué)生 inner join 成績(jī) on 學(xué)生.學(xué)號(hào)=成績(jī).學(xué)號(hào) group by 學(xué)生.學(xué)號(hào),姓名 having avg(成績(jī))>=80 ;單擊工具欄保存按鈕,彈出“另存為”對(duì)話框,輸入“優(yōu)秀學(xué)生”,單擊“確定”按鈕。 查詢沒有學(xué)生數(shù)據(jù)的專業(yè)編號(hào)和專業(yè)。select 專業(yè)號(hào),專業(yè) fr

17、om 專業(yè) where 專業(yè)號(hào) not in (select 專業(yè)號(hào) from 學(xué)生) ; 查詢“湖北”籍1988年以后出生的學(xué)生信息。select * from 學(xué)生 where 籍貫 like "湖北*" and 生日 >=#1988-1-1# ; 查詢選課人數(shù)最多的課程的課程號(hào)、課程名。select top 1 課程.課程號(hào),課程名from 課程 inner join 成績(jī) on 課程.課程號(hào)=成績(jī).課程號(hào) group by 課程.課程號(hào),課程名order by count(*) desc ;2練習(xí)sql的插入、更新、刪除操作命令 在課程表中插入一門新課,數(shù)據(jù)如

18、命令所示。insert into 課程values("06020101","會(huì)計(jì)學(xué)原理",3,"06"); 將“法學(xué)院(04)”開設(shè)課程的學(xué)分增加1分。update 課程set 學(xué)分=學(xué)分+1where 學(xué)院號(hào)="04" 刪除“信息學(xué)院(09)”開設(shè)的沒有學(xué)生選修的課程。delete from 課程where 學(xué)院號(hào)="09" and 課程號(hào) not in (select 課程號(hào) from 成績(jī))3創(chuàng)建“教師”表,包括:工號(hào)、姓名、性別、生日、職稱、基本工資、學(xué)院號(hào)。寫出創(chuàng)建命令。create

19、table 教師(工號(hào) text(6) primary key,姓名 text(10) not null,性別 text(2),生日 date,職稱 text(8),基本工資 money,學(xué)院號(hào) text(2) references 學(xué)院(學(xué)院號(hào)) );(三)選擇查詢操作1進(jìn)入查詢?cè)O(shè)計(jì)視圖進(jìn)行交互式選擇查詢?cè)O(shè)置啟動(dòng)教學(xué)管理數(shù)據(jù)庫。 查詢“專業(yè)”表,顯示開設(shè)的所有專業(yè)涉及的學(xué)科門類。將“專業(yè)”表加入設(shè)計(jì)視圖。在qbe界面中“字段”欄選擇“專業(yè)類別”字段顯示。在設(shè)計(jì)視圖的空白處單擊右鍵,從彈出的快捷菜單中選擇“屬性”命令,打開“屬性”對(duì)話框,選擇“唯一值”屬性值“是”。 查詢各專業(yè)學(xué)生的人數(shù)。將專

20、業(yè)表和學(xué)生表加入設(shè)計(jì)視圖。在qbe界面中“字段”欄選中“專業(yè)號(hào)”和“專業(yè)”字段顯示,然后單擊工具欄中的“總計(jì)”按鈕,在qbe中增加“總計(jì)”欄。將“專業(yè)號(hào)”和“專業(yè)”字段設(shè)置為“分組”,然后選擇“學(xué)生”表的“學(xué)號(hào)”字段,設(shè)置其為“計(jì)數(shù)”,最后在學(xué)號(hào)前面加上“人數(shù):”,作為查詢后的列名。設(shè)計(jì)完成,運(yùn)行查詢。 查詢沒有選課的男學(xué)生學(xué)號(hào)、姓名,即成績(jī)表中沒有記錄的學(xué)生數(shù)據(jù)。將“學(xué)生”表加入設(shè)計(jì)視圖。選擇“學(xué)號(hào)”、“姓名”字段顯示,在第3列處輸入“注:尚未選課”,選中“顯示”復(fù)選框。然后在第4列中選擇“學(xué)號(hào)”但不顯示。在“條件”欄中輸入一個(gè)子查詢“not in (select 學(xué)號(hào) from 成績(jī))”。

21、2進(jìn)行交叉表查詢將學(xué)生的“學(xué)號(hào)”和“姓名”作為行標(biāo)題,“課程名”作為列標(biāo)題,成績(jī)作為交叉數(shù)據(jù),生成交叉表。啟動(dòng)選擇查詢?cè)O(shè)計(jì)窗口,將“學(xué)生”、“成績(jī)”和“課程”表加入設(shè)計(jì)窗口。選擇“查詢”“交叉表查詢”命令。在qbe窗口中選擇“學(xué)生”表的“學(xué)號(hào)”、“姓名”作為行標(biāo)題,“課程名”作為列標(biāo)題,“成績(jī)”總計(jì)后作為值。運(yùn)行查詢。3進(jìn)行參數(shù)查詢通過參數(shù)查詢指定日期以后出生的某個(gè)民族的學(xué)生信息。啟動(dòng)選擇查詢?cè)O(shè)計(jì)窗口,將“學(xué)生”表加入設(shè)計(jì)窗口,在qbe窗口中選擇“*”表示輸出學(xué)生表所有字段。然后選中“生日”字段,去掉“顯示”行的復(fù)選框,在條件行輸入>sr;按同樣方式設(shè)置“民族”字段。然后選擇“查詢”“參數(shù)”命令,彈出“查詢參數(shù)”對(duì)話框,分別設(shè)置sr和mz的類型,單擊“確定”按鈕,設(shè)置完畢。(四)動(dòng)作查詢操作1生成表查詢操作練習(xí)將“查詢平均成績(jī)?cè)?0分以上的各位學(xué)生的學(xué)號(hào)、姓名和平均分”的結(jié)果生成新表,表名“優(yōu)秀學(xué)生名單”。輸入sql命令后,選擇“查詢”“生成表”查詢,彈出“生成表”對(duì)話

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論