佳木斯湛栽影视文化发展公司

主頁(yè) > 知識(shí)庫(kù) > 數(shù)據(jù)庫(kù)表的查詢(xún)操作(實(shí)驗(yàn)二)

數(shù)據(jù)庫(kù)表的查詢(xún)操作(實(shí)驗(yàn)二)

熱門(mén)標(biāo)簽:AI電銷(xiāo) 百度競(jìng)價(jià)排名 Linux服務(wù)器 服務(wù)外包 網(wǎng)站排名優(yōu)化 呼叫中心市場(chǎng)需求 鐵路電話(huà)系統(tǒng) 地方門(mén)戶(hù)網(wǎng)站

【實(shí)驗(yàn)?zāi)康摹?了解SQL語(yǔ)言的使用,進(jìn)一步理解關(guān)系運(yùn)算,鞏固數(shù)據(jù)庫(kù)的基礎(chǔ)知識(shí)。
【實(shí)驗(yàn)要求】:掌握利用Select語(yǔ)句進(jìn)行各種查詢(xún)操作:?jiǎn)伪聿樵?xún)、多表連接及查詢(xún)、嵌套查詢(xún)、集合查詢(xún)等。
【實(shí)驗(yàn)內(nèi)容】

一、單表查詢(xún)
1.簡(jiǎn)單查詢(xún)
打開(kāi)查詢(xún)分析器,根建立teacher表,并加入數(shù)據(jù)。從teacher表中分別檢索出教師的所有信息,以及僅查詢(xún)教工號(hào)、姓名和職稱(chēng)。語(yǔ)句如下:

select * from teacher
select tno, tname from teacher

如要查詢(xún)時(shí)改變列標(biāo)題的顯示,則從teacher表中分別檢索出教師教工號(hào)、姓名、電子郵箱信息并分別加上‘教師姓名'、‘教工號(hào)'、'電子郵箱'等標(biāo)題信息。

select tno 工號(hào), tname 姓名, temail 電子郵箱 from teacher

使用TOP關(guān)鍵字:分別從teacher中檢索出前2條及前面67%的教師的信息。

select top 2 * from teacher
select top 67 percent * from teacher

使用DISTINCT關(guān)鍵字:從teacher表中檢索出教師的職稱(chēng)并且要求顯示的職稱(chēng)不重復(fù)。select  distinct tposition   from  teacher

2.用計(jì)算列:將teacher表中各教師的姓名、教工號(hào)及工資按95%發(fā)放的信息,第2條語(yǔ)句將工資按95%發(fā)放后列名該為‘預(yù)發(fā)工資'。語(yǔ)句如下:

select tno tname ,tsalary*0.95 from teacher
select tno工號(hào), tname姓名, tsalary*0.95 AS 預(yù)發(fā)工資 from teacher

3.使用ORDER BY子句對(duì)查詢(xún)的結(jié)果進(jìn)行排序
使用ORDER BY語(yǔ)句可以對(duì)查詢(xún)的結(jié)果進(jìn)行排序,ASC、DESC分別是升序和降序排列的關(guān)鍵字,系統(tǒng)默認(rèn)的是升序排列。從teacher表中查詢(xún)工資大于2800的教師的教工號(hào)、姓名,并按升序排列,語(yǔ)句如下:

select tno, tname from teacher
WHERE tsalary>2800 order by tsalary ASC

4.條件查詢(xún)
(1)使用關(guān)系運(yùn)算符:從teacher表中查詢(xún)出工作量大于288的教師資料,語(yǔ)句如下:

select * from teacherWHERE tamount>288 order by tamount DESC

(2)使用BETWEEN AND謂詞:從teacher表中查詢(xún)出工作量界于144和288之間的教師資料,語(yǔ)句如下:

select * from teacher WHERE tamount between 144 and 288

(3) 使用IN謂詞:從teacher表中查詢(xún)出職稱(chēng)為“教授”或“副教授”的教師的教工號(hào)、教師姓名、職稱(chēng)及家庭住址,語(yǔ)句如下:

select tno,tname,tposition, taddress from teacher
WHERE tposition in ('教授','副教授')

(4)使用LIKE謂詞:從teacher表中分別檢索出姓'王'的教師的資料,或者姓名的第2個(gè)字是'莉'或'軒'的教師的資料,語(yǔ)句如下:

select * from teacher WHERE tname like '王%'
select * from teacher WHERE tname like '_[莉,軒]%'

 二、多表查詢(xún)
數(shù)據(jù)庫(kù)各表中存放著不同的數(shù)據(jù),用戶(hù)經(jīng)常需要用多個(gè)表中的數(shù)據(jù)來(lái)組合提煉出所需要的信息,如果一個(gè)查詢(xún)需要對(duì)多個(gè)表進(jìn)行操作,就稱(chēng)為關(guān)聯(lián)查詢(xún),關(guān)聯(lián)查詢(xún)的結(jié)果集或結(jié)果表稱(chēng)為表之間的連接。關(guān)聯(lián)查詢(xún)實(shí)際上是通過(guò)各各表之間共同列的關(guān)聯(lián)來(lái)查詢(xún)數(shù)據(jù)的,它是關(guān)系數(shù)據(jù)庫(kù)查詢(xún)最基本的特征。
1.SQL 2000兼容2種連接形式:用于FROM子句的ANSI連接語(yǔ)法和用于WHERE子句的SQL SERVER連接語(yǔ)法形式。
從student、course和SC三張表中檢索學(xué)生的學(xué)號(hào)、姓名、學(xué)習(xí)課程號(hào)、學(xué)習(xí)課程名及課程成績(jī),語(yǔ)句如下:

select student.sno, sname, cno, grade
from student inner join SC on student.sno=SC.sno

select student.sname,sc.grade
from student,sc
WHERE student.sno=sc.sno 

select student.sno,student.sname,sc.cno,course.cname,sc.grade
from student,sc,course 
WHERE student.sno=sc.sno and sc.cno=course.cno

2.使用UNION子句進(jìn)行查詢(xún)
使用UNION子句可以將一個(gè)或者多個(gè)表的某些數(shù)據(jù)類(lèi)型相同的列顯示在同一列上。如從teacher表中列出教工號(hào)、姓名并從student表中列出學(xué)號(hào)及學(xué)生姓名,語(yǔ)句及查詢(xún)結(jié)果如下:

select sno AS 學(xué)號(hào)或工號(hào), sname AS 姓名 from student 
union 
select tno, tname from teacher

3.用GROUP子句進(jìn)行查詢(xún) 
如果要在數(shù)據(jù)檢索時(shí)對(duì)表中數(shù)據(jù)按照一定條件進(jìn)行分組匯總或求平均值,就要在SELECT語(yǔ)句中與GROUP BY子句一起使用集合函數(shù)。使用GROUP BY子句進(jìn)行數(shù)據(jù)檢索可得到數(shù)據(jù)分類(lèi)的匯總統(tǒng)計(jì)、平均值或其他統(tǒng)計(jì)信息。
(1) 使用不帶HAVING的GROUP BY子句。
使用不帶HAVING 的GROUP BY子句匯總出SC表中的學(xué)生的學(xué)號(hào)及總成績(jī),語(yǔ)句如下:

select '學(xué)號(hào)'=sno,'總成績(jī)'=SUM(Grade) 
from SC
group by Sno

(2)使用帶HAVING 的GROUP BY子句。
使用帶HAVING 的GROUP BY子句匯總出SC表中總分大于450分的學(xué)生的學(xué)號(hào)及總成績(jī),語(yǔ)句如下:

select '學(xué)號(hào)'=sno,'總成績(jī)'=SUM(Grade) from SC
group by Sno 
Having SUM(Grade)>160 

4.用COMPUTE和COMPUTE BY子句進(jìn)行查詢(xún)
使用COMPUTE和COMPUTE BY 既能瀏覽數(shù)據(jù)又能看到統(tǒng)計(jì)的結(jié)果。
(1) 用COMPUTE子句匯總出SC表中每個(gè)學(xué)生的學(xué)號(hào)及總成績(jī),語(yǔ)句如下:

select '學(xué)號(hào)'=sno,'成績(jī)'=Grade from SC 
order by sno COMPUTE SUM(Grade)

(2)用COMPUTE BY 子句按學(xué)號(hào)匯總出SC表中每個(gè)學(xué)生的學(xué)號(hào)及總成績(jī),語(yǔ)句如下:

select '學(xué)號(hào)'=sno,'成績(jī)'=Grade from SC 
ORDER BY Sno COMPUTE SUM(Grade) by sno

觀(guān)察執(zhí)行COMPUTE和COMPUTE BY子句的結(jié)果有什么不同?

5.嵌套查詢(xún)
(1) 使用IN或NOT IN關(guān)鍵字
使用IN關(guān)鍵字查詢(xún)出j10011班所有男生的學(xué)號(hào)、課程號(hào)及相應(yīng)的成績(jī),語(yǔ)句如下:

select SC.sno , SC.cno,SC.grade
FROM SC 
WHERE sno IN 
 ( SELECT sno FROM student
 WHERE Sclass='j10011' AND Ssex='男')

使用IN關(guān)鍵字查詢(xún)出與教師不同名的學(xué)生(學(xué)號(hào),姓名),語(yǔ)句如下:

select sno 學(xué)號(hào), sname 姓名 
from student 
where sname not in (select tname from teacher)

(2) 使用EXISTS 或NOT EXISTS關(guān)鍵字。

使用EXISTS關(guān)鍵字查詢(xún)出‘j10011'班的學(xué)生的學(xué)號(hào)、課程號(hào)及相應(yīng)的成績(jī),語(yǔ)句如下:

SELECT SC.sno,SC.cno,SC.grade 
FROM SC
WHERE EXISTS 
( SELECT * FROM student
 WHERE SC.sno=student.sno AND student.sclass=‘j10011' )




以上就是表的查詢(xún)操作實(shí)驗(yàn)全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,大家親自動(dòng)手實(shí)踐一下。

您可能感興趣的文章:
  • MySQL學(xué)習(xí)筆記3:表的基本操作介紹
  • 單個(gè)select語(yǔ)句實(shí)現(xiàn)MySQL查詢(xún)統(tǒng)計(jì)次數(shù)
  • sql查詢(xún)出各科成績(jī)最好的學(xué)生信息
  • mysql查詢(xún)昨天 一周前 一月前 一年前的數(shù)據(jù)
  • mysql查詢(xún)今天、昨天、近7天、近30天、本月、上一月的SQL語(yǔ)句
  • MySql查詢(xún)時(shí)間段的方法
  • MySQL查詢(xún)和修改auto_increment的方法
  • 一個(gè)優(yōu)化MySQL查詢(xún)操作的具體案例分析
  • MySQL查詢(xún)倒數(shù)第二條記錄實(shí)現(xiàn)方法
  • 50條SQL查詢(xún)技巧、查詢(xún)語(yǔ)句示例
  • SQL查詢(xún)出表、存儲(chǔ)過(guò)程、觸發(fā)器的創(chuàng)建時(shí)間和最后修改時(shí)間示例
  • 大幅優(yōu)化MySQL查詢(xún)性能的奇技淫巧
  • SQL大量數(shù)據(jù)查詢(xún)的優(yōu)化及非用like不可時(shí)的處理方案
  • 如何使用MySQL查詢(xún)某個(gè)列中相同值的數(shù)量統(tǒng)計(jì)
  • SQL如何實(shí)現(xiàn)MYSQL的遞歸查詢(xún)
  • 數(shù)據(jù)庫(kù)表的創(chuàng)建、管理和數(shù)據(jù)操作(實(shí)驗(yàn)一)
  • 數(shù)據(jù)庫(kù)表的查詢(xún)操作實(shí)踐演練(實(shí)驗(yàn)三)

標(biāo)簽:蘭州 湘潭 仙桃 崇左 衡水 湖南 銅川 黃山

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《數(shù)據(jù)庫(kù)表的查詢(xún)操作(實(shí)驗(yàn)二)》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話(huà)咨詢(xún)

    • 400-1100-266
    建阳市| 绥宁县| 张掖市| 石景山区| 临城县| 喀什市| 五指山市| 襄城县| 肥城市| 哈尔滨市| 桃园市| 广元市| 井冈山市| 西吉县| 荆州市| 闻喜县| 宁德市| 黄平县| 建湖县| 陈巴尔虎旗| 麦盖提县| 新化县| 肃南| 井冈山市| 阆中市| 长武县| 昭苏县| 禄劝| 温泉县| 类乌齐县| 高州市| 蛟河市| 三原县| 分宜县| 灌南县| 绍兴市| 措美县| 广昌县| 元阳县| 当涂县| 鄂托克前旗|