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