《數(shù)據(jù)查詢試驗試驗》由會員分享,可在線閱讀,更多相關《數(shù)據(jù)查詢試驗試驗(6頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、
1.1 實驗目的
SQL查詢語言的了解,掌握相關查詢
通過對實驗二中建立的學生數(shù)據(jù)庫關系表和視圖的各種查詢的操作,加深對 語句的語法和使用方法.
1.2 實驗內(nèi)容
1.2.1 數(shù)據(jù)庫關系表查詢
1) 簡單的查詢操作,包括單表的查詢、選擇條件、結(jié)果排序等的練習;
2) 多表的連接查詢,包括等值連接、自然連接等;
3) 復雜的查詢操作,包括使用分組函數(shù)等庫函數(shù)的查詢操作;
(4) 練習帶有IN、比擬符的嵌套查詢.
1.2.2 視圖查詢
對實驗二建立的視圖進行相關的查詢操作,如:
查詢選修了課程編號為“ C01〞的學生的學號和成績; 查詢所有學生的學號、姓名、選修的課程
2、名稱和成績; 查詢選修了數(shù)據(jù)庫原理的學生的學號和姓名.
1.3 實驗要求
(1) 用SQL語句完成以上操作
(2) 要求學生獨立完成以上內(nèi)容.
(3) 實驗完成后完成要求的實驗報告內(nèi)容.
1.4 實驗環(huán)境
Windows8 pc 機 Mysql 配置的環(huán)境 Mysql 命令行工具
Workbench 可視化工具
1.5 實驗步驟及結(jié)果分析
1.5.1 數(shù)據(jù)庫關系表查詢
1.5.1.1 簡單查詢
具體內(nèi)容包括:
在簡單查詢實驗中,在 sql 語句完成以下查詢操作:
1. 查詢“數(shù)據(jù)庫原理〞課程的學分:
Mysql 語言:
select credit from cou
3、rse where cname=' 數(shù)據(jù)庫原理 ';
2. 查詢選修了課程編號為“ C01 〞的學生的學號和成績,并將成績按降序輸出:
Mysql 語言:
select sno,grade
from sc
where cno='C01'
order by grade desc;
3.
查詢學號為“ 31401〞的學生選修的課程編號和成績: Mysql 語言:
select cno,grade from sc where sno=31401;
4.
查詢選修了課程編號為“ C01 〞且成績高于85分的學生的學號和成績:
Mysql 語言:
select sno,g
4、rade
from sc
where cno='C01' and grade > 85;
查詢“數(shù)據(jù)庫原理〞課程的學分 查詢選修了課程編號為“ C01〞的學生 的學號和
成績,將成績按降序輸出
查詢學號為“ 31401 〞的學生選修的課程編號和成績 查詢選修了課程編號為“ C01〞且成績高于85分
的學生的學號和成績
1.5.1.2 連接查詢
在多表連接的查詢實驗中,在 SQL SERVER!供的交互式語言環(huán)境下用 Transact SQL語句完成以下查詢操作:
1.
查詢選修了課程編號為“ C01 〞且成績高于85分的學生的學號、姓名和成績:
Mysql 語言:
5、select sno,sname,grade
from student natural join sc
where cno='C01' and grade > 85;
2.
查詢所有學生的學號、姓名、選修的課程名稱和成績
Mysql 語言:
select sno,sname,cname,grade
from student natural join sc natural join course;
查詢選修了課程編號為“ C01 〞且成績高于85分的學生的學號、姓名和成績
查詢所有學生的學號、姓名、選修的課程名稱和成績
1.5.1.3
復雜查詢
在復雜查詢實驗中,
6、用 SQL語句完成以下查詢操作:
1. 查詢至少選修了三門課程的學生的學號和姓名:
2.
Mysql 語言:
select sno,sname,count(cno)
from student natural join sc
group by sno
having count(cno)>=3; 查詢所有學生的學號和他選修課程的最高成績,要求他的選修課程中沒有成績?yōu)榭盏? Mysql 語言:
select sno,max(grade)
from sc
where sno not in(select distinct sno from sc where grade is null
7、) group by sno;
查詢至少選修了三門課程的學生的學號和姓名
查詢所有學生的學號和他選修課程的最高成績,要求他的選修課程中沒有成績?yōu)榭盏?
1.5.1.4 嵌套查詢
在嵌套查詢實驗中,在 kingbase 提供的交互式語言環(huán)境下用 iSQL 語句完成以下查詢操作,要求寫嵌套查詢語句:
1. 查詢選修了數(shù)據(jù)庫原理的學生的學號和姓名:
Mysql 語言:
select sno,sname
from (select sno,sname,cname
from student natural join sc natural join course
)as a
where
8、cname=' 數(shù)據(jù)庫原理 ';
2. 查詢沒有選修數(shù)據(jù)庫原理的學生的學號和姓名:
Mysql 語言:
select distinct(sno),sname
from (select sno,sname,cname
from student natural join sc natural join course )as a
where cname<>' 數(shù)據(jù)庫原理 ';
3. 查詢至少選修了學號為“ 31401〞的學生所選修的所有課程的學生的學號和姓名: Mysql 語言:
select sno,sname
from student
where not exists(sel
9、ect * from (select cno from sc where sno=31401)as S where not exists(select * from sc where cno= and sno=);
查詢選修了數(shù)據(jù)庫原理的學生的學號和姓名
查詢沒有選修數(shù)據(jù)庫原理的學生的學號和姓名
查詢至少選修了學號為“ 31401 〞的學生所選修的所有課程的學生的學號和姓名
1.5.2 視圖查詢
對實驗二建立的視圖進行相關的查詢操作,如:
1. 查詢選修了課程編號為“ C01〞的學生的學號和成績:
Mysql 語言:
select sno,grade from new_view
10、 where cno='C01';
2. 查詢所有學生的學號、姓名、選修的課程名稱和成績:
Mysql 語言:
select sno,sname,cname,grade from new_view;
3. 查詢選修了數(shù)據(jù)庫原理的學生的學號和姓名:
Mysql 語言:
select sno,sname from new_view where cname=' 數(shù)據(jù)庫原理 ';
查詢選修了課程編號為“ C01〞的學生的學號和成績 查詢所有學生的學號、姓名、選修的課程名稱和成績
查詢選修了數(shù)據(jù)庫原理的學生的學號和姓名
1.6 實驗總結(jié) 本次實驗我們進行了多種多樣的 mysql 查詢
11、操作,在屢次的進行查書,查網(wǎng)絡資料后,我完成了本次的實驗. 首先,我感覺本次實驗最重要的便是本次實驗的結(jié)構(gòu)性,針對簡單查詢、連接查詢、復雜查詢、嵌套查詢分 塊操作,毫無疑問讓我對查詢有了更深一步的了解,不同的查詢方式對應著不同的特點,不同的語句.
exists
同時,實驗中,我遇到了各種語句的不熟悉等問題,在資料查詢過程中,讓我對各種語句有了更深一步的了 解,同時在使用過程中有了更多的熟練性.尤其是最后一個嵌套查詢,我查閱了很多網(wǎng)絡資料和例子,讓我對 和 not exists 語句有了更深一步的了解,同時再看解釋時也讓我對數(shù)據(jù)庫查詢的內(nèi)部過程有了一定的了解,即采用相 當于高級語言的循環(huán)操作方式類似.
毫無疑問,本次實驗讓我對理論的應用有了一定程度的適應,也大大增加了對實驗過程的興趣.