第一篇:查詢(xún)練習(xí)題
《網(wǎng)絡(luò)數(shù)據(jù)庫(kù)》講稿
查詢(xún)練習(xí)題
簡(jiǎn)單的單表查詢(xún)
例1:檢索出1983年6月1日之后出生的學(xué)生的姓名、性別和民族,并按降序排列。
SELECT 姓名,性別,民族 FROM 學(xué)生 WHERE 出生日期>'1983-6-1' ORDER BY 出生日期 DESC
多表查詢(xún)
在FROM后跟隨多個(gè)表。
例1:查找出已修學(xué)分達(dá)到20分的學(xué)生的姓名、出生日期、班級(jí)名稱(chēng)、已修學(xué)分。
SELECT 姓名,出生日期,班級(jí)名稱(chēng),已修學(xué)分FROM 學(xué)生,班級(jí)WHERE 學(xué)生.班級(jí)編號(hào)=班級(jí).班級(jí)編號(hào)AND
已修學(xué)分>=20
解釋?zhuān)哼@里的“學(xué)生.班級(jí)編號(hào)=班級(jí).班級(jí)編號(hào)”是連接條件。如果在FROM短語(yǔ)中有兩個(gè)表,那么這兩個(gè)表必須具備可建立聯(lián)系的字段,否則無(wú)法查詢(xún)。如果FROM短語(yǔ)中的多個(gè)表中有同名字段,當(dāng)使用這些字段名時(shí),需要在字段名左邊加上表名和圓點(diǎn),作為字段名的前綴。
練習(xí)題01:查找出已修學(xué)分低于20分的學(xué)生的姓名、性別和班主任。練習(xí)題02:查找出學(xué)生“王林”的班主任。
練習(xí)題03:查找出班主任“劉成河”班的全部男生的信息。
例2:查找出課程“中國(guó)歷史”考試及格的全部學(xué)生的學(xué)號(hào)、姓名。
SELECT 學(xué)生.學(xué)號(hào),姓名 FROM 學(xué)生,課程,成績(jī) WHERE 分?jǐn)?shù)>=60 AND 課程名稱(chēng)='中國(guó)歷史' AND 學(xué)生.學(xué)號(hào)=成績(jī).學(xué)號(hào) AND 成績(jī).課程編號(hào)=課程.課程編號(hào)
練習(xí)題04:查找出課程“中國(guó)歷史”考試及格的全部學(xué)生的學(xué)號(hào)、姓名、班級(jí)名稱(chēng)和分?jǐn)?shù)。練習(xí)題05:查找出全部同學(xué)的所有考試的姓名、課程名稱(chēng)、分?jǐn)?shù),查找結(jié)果的格式如下:
嵌套查詢(xún)
P121-126
例1:查找出取得過(guò)95分及其以上考試成績(jī)的學(xué)生的學(xué)號(hào)和姓名。
SELECT 學(xué)號(hào),姓名 FROM 學(xué)生 WHERE 學(xué)號(hào)IN(SELECT 學(xué)號(hào) FROM 成績(jī) WHERE 分?jǐn)?shù)>=95)
解釋?zhuān)涸撁钪械腎N相當(dāng)于集合運(yùn)算的包含運(yùn)算符∈。括號(hào)外的查詢(xún)稱(chēng)為外層查詢(xún);括號(hào)內(nèi)的查詢(xún)稱(chēng)為內(nèi)層查詢(xún)(也稱(chēng)為“子查詢(xún)”)。內(nèi)層查詢(xún)的結(jié)果被當(dāng)做是一個(gè)集合。
P104
例2:查找出“計(jì)算機(jī)應(yīng)用”課程考試取得95分及其以上考試成績(jī)的學(xué)生的學(xué)號(hào)和姓名。
SELECT 學(xué)號(hào),姓名 FROM 學(xué)生 WHERE 學(xué)號(hào) IN(SELECT 學(xué)號(hào) FROM 成績(jī) WHERE 分?jǐn)?shù)>=95 AND 課程編號(hào) IN(SELECT 課程編號(hào) FROM 課程 WHERE 課程名稱(chēng)='計(jì)算機(jī)應(yīng)用'))
例3:查找出所有學(xué)生的考試都及格的班級(jí)名稱(chēng)。
答案一:
SELECT 班級(jí)名稱(chēng) FROM 班級(jí) WHERE 班級(jí)編號(hào) NOT IN(SELECT 班級(jí)編號(hào) FROM 學(xué)生 WHERE 學(xué)號(hào) IN(SELECT 學(xué)號(hào) FROM 成績(jī) WHERE 分?jǐn)?shù)<60))
答案二:
select 班級(jí)名稱(chēng) from 班級(jí)
where not exists(select * from 學(xué)生 where
exists(select * from 成績(jī)
where 分?jǐn)?shù)<60 and 班級(jí).班級(jí)編號(hào)=學(xué)生.班級(jí)編號(hào) and 成績(jī).學(xué)號(hào)=學(xué)生.學(xué)號(hào)))
答案三:
select 班級(jí)名稱(chēng) from 班級(jí) where not exists(select * from 成績(jī),學(xué)生
where 班級(jí).班級(jí)編號(hào)=學(xué)生.班級(jí)編號(hào) and 學(xué)生.學(xué)號(hào)=成績(jī).學(xué)號(hào) and 分?jǐn)?shù)<60)
練習(xí)題01:查找出班主任“劉成河”班的全部男生的信息。練習(xí)題02:查找出考試全及格的課程名稱(chēng)。
練習(xí)題03:查找出所有學(xué)生的考試都及格的班級(jí),并排除那些沒(méi)有學(xué)生的班級(jí)。練習(xí)題04:使用多表查詢(xún)實(shí)現(xiàn)例1。練習(xí)題05:使用多表查詢(xún)實(shí)現(xiàn)例2。
練習(xí)題06:查找出“數(shù)學(xué)專(zhuān)業(yè)”班全體同學(xué)的姓名和“數(shù)學(xué)”課程考試分?jǐn)?shù)。
三個(gè)特殊運(yùn)算符
一、謂詞EXISTS
P122
EXISTS判斷子查詢(xún)中是否為空集。
例1:查找出那些還沒(méi)有學(xué)生的班級(jí)名稱(chēng)。
SELECT 班級(jí)名稱(chēng) FROM 班級(jí) WHERE NOT EXISTS
(SELECT * FROM 學(xué)生 WHERE 學(xué)生.班級(jí)編號(hào)=班級(jí).班級(jí)編號(hào))
例2:檢索出每個(gè)學(xué)生都選修了的課程(并且考試都及格)。
SELECT 課程編號(hào),課程名稱(chēng) FROM 課程 WHERE NOT EXISTS(SELECT 學(xué)號(hào) FROM 學(xué)生 WHERE NOT EXISTS(SELECT * FROM 成績(jī)
WHERE 課程.課程編號(hào)=成績(jī).課程編號(hào)AND 學(xué)生.學(xué)號(hào)=成績(jī).學(xué)號(hào)AND 分?jǐn)?shù)>=60))
練習(xí)題01:寫(xiě)出可實(shí)現(xiàn)例1要求的其他命令。練習(xí)題02:寫(xiě)出可實(shí)現(xiàn)例2要求的其他命令。
二、范圍運(yùn)算符BETWEEN …AND…
P103 該范圍是一個(gè)閉區(qū)間,意思是在 …和… 之間,包括兩個(gè)端點(diǎn)的值。
例3:查找出1983年6月1日至1984年6月1日之間出生的學(xué)生的信息。
SELECT * FROM 學(xué)生 WHERE 出生日期 BETWEEN '1983-6-1' AND '1984-6-1' 練習(xí)題03:查找出已修學(xué)分在15和20之間的學(xué)生的信息。
練習(xí)題04:查找出1983年6月1日至1984年6月1日之間出生的少數(shù)民族學(xué)生的信息。
練習(xí)題05:查找出已修學(xué)分在15和20之間、且“自然辨證法”課程的考試分?jǐn)?shù)達(dá)到80分的學(xué)生的姓名、性別、所在班級(jí)。
三、字符串匹配運(yùn)算符LIKE
P105 例4:查找出姓名中包含有“林”的學(xué)生的信息。SELECT * FROM 學(xué)生WHERE 姓名LIKE '%林%' 例5:查找出姓名中第二個(gè)字是“林”的學(xué)生的信息。SELECT * FROM 學(xué)生WHERE 姓名LIKE '_林%'
練習(xí)題06:查找出湖北出生的學(xué)生的信息。練習(xí)題07:查找出武漢出生的學(xué)生的信息。
練習(xí)題08:查找出班主任“郭大壯”的班中出生地是武漢的學(xué)生的姓名、班級(jí)。
練習(xí)題09:查找出至少參加了辛有余老師所任課程中一門(mén)課程考試的男生的姓名。至少寫(xiě)出兩條不同的命令。
聚合函數(shù)及其分組查詢(xún)
為了完成后續(xù)題目,請(qǐng)首先計(jì)算出每位同學(xué)的已修學(xué)分
UPDATE 學(xué)生 SET 已修學(xué)分=(SELECT SUM(學(xué)分)FROM 成績(jī),課程
WHERE 學(xué)生.學(xué)號(hào)=成績(jī).學(xué)號(hào)AND 分?jǐn)?shù)>=60 AND 成績(jī).課程編號(hào)=課程.課程編號(hào))
一、常用統(tǒng)計(jì)(聚合)函數(shù)
P109表4-3 例1:計(jì)算出全部學(xué)生的平均已修學(xué)分。SELECT AVG(已修學(xué)分)FROM 學(xué)生
例2:計(jì)算出“軟件工程”班全體同學(xué)的平均已修學(xué)分。
SELECT AVG(已修學(xué)分)FROM 學(xué)生 WHERE 班級(jí)編號(hào)IN(SELECT 班級(jí)編號(hào)FROM 班級(jí)WHERE 班級(jí)名稱(chēng)='軟件工程')
練習(xí)題01:計(jì)算出“軟件工程”和“計(jì)算機(jī)應(yīng)用”兩個(gè)班全體同學(xué)的平均已修學(xué)分。
注意:當(dāng)子查詢(xún)的結(jié)果只有一個(gè)數(shù)據(jù)時(shí),可以用等號(hào);為多個(gè)數(shù)據(jù)時(shí),需用 IN。練習(xí)題02:計(jì)算出李建同學(xué)各門(mén)課程考試總分。
例3:查找出“數(shù)學(xué)專(zhuān)業(yè)”班“數(shù)學(xué)”課程考試的最高分?jǐn)?shù)。
SELECT MAX(分?jǐn)?shù))FROM 學(xué)生, 成績(jī) WHERE 學(xué)生.學(xué)號(hào)=成績(jī).學(xué)號(hào) AND 班級(jí)編號(hào)=(SELECT 班級(jí)編號(hào) FROM 班級(jí) WHERE 班級(jí)名稱(chēng)='數(shù)學(xué)專(zhuān)業(yè)')AND 課程編號(hào)=(SELECT 課程編號(hào) FROM 課程 WHERE 課程名稱(chēng)='數(shù)學(xué)')
另一個(gè)答案
SELECT MAX(分?jǐn)?shù))FROM 成績(jī) WHERE 學(xué)號(hào) IN(SELECT 學(xué)號(hào) FROM 學(xué)生 WHERE 班級(jí)編號(hào)=(SELECT 班級(jí)編號(hào) FROM 班級(jí) WHERE 班級(jí)名稱(chēng)='數(shù)學(xué)專(zhuān)業(yè)'))AND 課程編號(hào)=(SELECT 課程編號(hào) FROM 課程 WHERE 課程名稱(chēng)='數(shù)學(xué)')
例4:查找出“數(shù)學(xué)專(zhuān)業(yè)”班“數(shù)學(xué)”課程考試最高得分的同學(xué)姓名和分?jǐn)?shù)。
SELECT 姓名, 分?jǐn)?shù) FROM 學(xué)生, 成績(jī) WHERE 學(xué)生.學(xué)號(hào)=成績(jī).學(xué)號(hào)
AND 班級(jí)編號(hào)=(SELECT 班級(jí)編號(hào) FROM 班級(jí) WHERE 班級(jí)名稱(chēng)='數(shù)學(xué)專(zhuān)業(yè)')AND 課程編號(hào)=(SELECT 課程編號(hào) FROM 課程 WHERE 課程名稱(chēng)='數(shù)學(xué)')AND 分?jǐn)?shù)=(SELECT MAX(分?jǐn)?shù))FROM 學(xué)生, 成績(jī) WHERE 學(xué)生.學(xué)號(hào)=成績(jī).學(xué)號(hào)
AND 班級(jí)編號(hào)=(SELECT 班級(jí)編號(hào) FROM 班級(jí) WHERE 班級(jí)名稱(chēng)='數(shù)學(xué)專(zhuān)業(yè)')AND 課程編號(hào)=(SELECT 課程編號(hào)FROM 課程 WHERE 課程名稱(chēng)='數(shù)學(xué)'))
附:TOP … PERCENT
P98
二、GROUP BY短語(yǔ)
GROUP BY后面跟隨的是分組關(guān)鍵字段,按照關(guān)鍵字段的值,將記錄分成若干個(gè)組,每一組轉(zhuǎn)變?yōu)椴樵?xún)結(jié)果中的一行。
例5:計(jì)算出各班學(xué)生的平均已修學(xué)分。SELECT 班級(jí)編號(hào),AVG(已修學(xué)分)FROM 學(xué)生 GROUP BY 班級(jí)編號(hào)
練習(xí)題04:計(jì)算出各門(mén)課程考試的平均分?jǐn)?shù)。練習(xí)題05:計(jì)算出各位學(xué)生的考試總分。
練習(xí)題06:計(jì)算出辛有余老師所任課程中每門(mén)課程的課程編號(hào)和學(xué)生平均考試分?jǐn)?shù)。
三、別名及其應(yīng)用
P113-114, P99
例6:查找出已修學(xué)分低于本班平均已修學(xué)分的學(xué)生信息。
SELECT 姓名, 班級(jí)編號(hào), 已修學(xué)分 FROM 學(xué)生
WHERE 已修學(xué)分<(SELECT AVG(已修學(xué)分)FROM 學(xué)生 XS WHERE 學(xué)生.班級(jí)編號(hào)=XS.班級(jí)編號(hào))
說(shuō)明:在FROM短語(yǔ)中為表取別名也可省略AS,例如FROM 學(xué)生 XS。
例7:查找和計(jì)算出各位學(xué)生的姓名和考試總分。
SELECT 姓名, 總分
FROM 學(xué)生,(SELECT 學(xué)號(hào), SUM(分?jǐn)?shù))AS 總分 FROM 成績(jī) GROUP BY 學(xué)號(hào))AS ZF WHERE 學(xué)生.學(xué)號(hào)=ZF.學(xué)號(hào)
說(shuō)明:在FROM短語(yǔ)中可用子查詢(xún)的結(jié)果作為表,此時(shí),必須為該子查詢(xún)?nèi)e名。
在SELECT短語(yǔ)中可為查詢(xún)結(jié)果列取別名,其格式有三種,見(jiàn)P99。
練習(xí)題07:查找和計(jì)算出各門(mén)課程的名稱(chēng)及其考試的平均分?jǐn)?shù)。
練習(xí)題08:查找和計(jì)算出各門(mén)課程的名稱(chēng)及其考試達(dá)到90分的人數(shù)。
四、HAVING短語(yǔ)
HAVING后面跟隨的是篩選條件,作用是篩選滿(mǎn)足條件的組,即在分組之后過(guò)濾數(shù)據(jù),條件中經(jīng)常包含統(tǒng)計(jì)(聚合)函數(shù)。
例8:查找出講授多門(mén)課程的教師姓名及其授課門(mén)數(shù)。
SELECT 任課教師,COUNT(*)AS 授課門(mén)數(shù) FROM 課程 GROUP BY 任課教師 HAVING COUNT(*)>1 說(shuō)明:HAVING短語(yǔ)通常與GROUP BY短語(yǔ)配合使用,否則無(wú)使用價(jià)值。HAVING短語(yǔ)中使用的統(tǒng)計(jì)函數(shù)應(yīng)該是SELECT短語(yǔ)中使用的函數(shù)。
練習(xí)題10:查找出考試成績(jī)優(yōu)秀人數(shù)多于3人的課程編號(hào)及其學(xué)生人數(shù)(假定考試分?jǐn)?shù)達(dá)到90分為優(yōu)秀)。練習(xí)題11:查找出考試成績(jī)優(yōu)秀人數(shù)多于3人的課程名稱(chēng)及其學(xué)生人數(shù)(假定考試分?jǐn)?shù)達(dá)到90分為優(yōu)秀)。練習(xí)題12:查找出考試成績(jī)優(yōu)秀人次多于5人次的班級(jí)名稱(chēng)及其人次(假定考試分?jǐn)?shù)達(dá)到90分為優(yōu)秀)。
練習(xí)題13:查找出考試分?jǐn)?shù)標(biāo)準(zhǔn)差小于
10、且最高分與最低分之差小于20的各班(班級(jí)名稱(chēng))各門(mén)課程(課程名稱(chēng))的考試人數(shù),考試分?jǐn)?shù)的最高分、最低分、平均分、標(biāo)準(zhǔn)差、方差。
常用函數(shù)、連接
一、常用函數(shù)
P159
二、鏈接 P114 用于多表查詢(xún),實(shí)現(xiàn)表之間的鏈接。
例6:在多表查詢(xún)中,下面的命令可查找出已修學(xué)分達(dá)到17分的學(xué)生的姓名、出生日期和班級(jí):SELECT 姓名,出生日期,班級(jí)名稱(chēng) FROM 學(xué)生,班級(jí) WHERE 學(xué)生.班級(jí)編號(hào)=班級(jí).班級(jí)編號(hào) AND 已修學(xué)分>=17 用INNER JOIN … ON …,可將該命令改寫(xiě)為:
SELECT 姓名,出生日期,班級(jí)名稱(chēng) FROM 學(xué)生 INNER JOIN 班級(jí) ON 學(xué)生.班級(jí)編號(hào)=班級(jí).班級(jí)編號(hào)
WHERE 已修學(xué)分>=17 或
SELECT 姓名,出生日期,班級(jí)名稱(chēng) FROM 學(xué)生 INNER JOIN 班級(jí) ON 學(xué)生.班級(jí)編號(hào)=班級(jí).班級(jí)編號(hào) AND 已修學(xué)分>=17
解釋?zhuān)哼@里的“學(xué)生.班級(jí)編號(hào)=班級(jí).班級(jí)編號(hào)”是連接條件。如果在FROM短語(yǔ)中有兩個(gè)表,那么這兩個(gè)表必須具備可建立聯(lián)系的字段,否則無(wú)法查詢(xún)。如果FROM短語(yǔ)中的多個(gè)表中有同名字段,當(dāng)使用這些字段名時(shí),需要在字段名左邊加上表名和圓點(diǎn),作為字段名的前綴。
練習(xí)題01:查找出已修學(xué)分低于17分的學(xué)生的姓名、性別和班主任。練習(xí)題02:查找出學(xué)生“王林”的班主任。
練習(xí)題03:查找出班主任“劉成河”班的全部男生的信息。
例7:在多表查詢(xún)中,下面的命令可查找出課程“中國(guó)歷史”考試及格的全部學(xué)生的學(xué)號(hào)、姓名:SELECT 學(xué)生.學(xué)號(hào),姓名 FROM 學(xué)生,課程,成績(jī) WHERE 分?jǐn)?shù)>=60 AND 課程名稱(chēng)=“中國(guó)歷史” AND 學(xué)生.學(xué)號(hào)=成績(jī).學(xué)號(hào) AND 成績(jī).課程編號(hào)=課程.課程編號(hào)
用INNER JOIN … ON …,可將該命令改寫(xiě)為:
SELECT 學(xué)生.學(xué)號(hào),姓名 FROM 學(xué)生 INNER JOIN(成績(jī) INNER JOIN 課程 ON 成績(jī).課程編號(hào)=課程.課程編號(hào))ON 學(xué)生.學(xué)號(hào)=成績(jī).學(xué)號(hào) WHERE 分?jǐn)?shù)>=60 AND 課程名稱(chēng)=“中國(guó)歷史”
練習(xí)題04:查找出課程“中國(guó)歷史”考試及格的全部學(xué)生的學(xué)號(hào)、姓名、班級(jí)和分?jǐn)?shù)。練習(xí)題05:查找出全部同學(xué)的所有考試的姓名、課程名稱(chēng)、分?jǐn)?shù)。查找結(jié)果的格式如下:
練習(xí)題06:計(jì)算出每個(gè)同學(xué)實(shí)際取得的學(xué)分(不是學(xué)生表中的已修學(xué)分)。查找結(jié)果的格式如下:
操作查詢(xún)
一、生成表查詢(xún)
P136
例1:
SELECT 姓名, 出生日期, 班級(jí)名稱(chēng) INTO XYZ FROM 學(xué)生, 班級(jí)
WHERE 學(xué)生.班級(jí)編號(hào)=班級(jí).班級(jí)編號(hào) AND 已修學(xué)分>=17 例2:
SELECT 班級(jí)名稱(chēng), 課程名稱(chēng), 分?jǐn)?shù) INTO 考試分?jǐn)?shù)
FROM 課程 INNER JOIN((班級(jí) INNER JOIN 學(xué)生 ON 班級(jí).班級(jí)編號(hào) = 學(xué)生.班級(jí)編號(hào))INNER JOIN 成績(jī) ON 學(xué)生.學(xué)號(hào) = 成績(jī).學(xué)號(hào))ON 課程.課程編號(hào) = 成績(jī).課程編號(hào)
二、更新查詢(xún)
P137
例3:將每位同學(xué)的已修學(xué)分設(shè)置為0。
UPDATE 學(xué)生 SET 已修學(xué)分=0 將每位同學(xué)的已修學(xué)分設(shè)置為4。UPDATE 學(xué)生 SET 已修學(xué)分=4 省略WHERE短語(yǔ),表示無(wú)條件修改全部記錄。例4:為每個(gè)女生增加2學(xué)分。
UPDATE 學(xué)生 SET 已修學(xué)分=已修學(xué)分+2 WHERE 性別= “女”
練習(xí)題01:(綜合練習(xí))首先為“學(xué)生”表添加一個(gè)整型字段“年齡”,然后用UPDATE命令計(jì)算出每位同學(xué)的年齡并填入“年齡”字段。
例5:根據(jù)考試成績(jī),計(jì)算出每位同學(xué)的實(shí)際已修學(xué)分,并填入“學(xué)生”表的“已修學(xué)分”字段。
UPDATE 學(xué)生 SET 已修學(xué)分=(SELECT SUM(學(xué)分)FROM 成績(jī),課程
WHERE 學(xué)生.學(xué)號(hào)=成績(jī).學(xué)號(hào)AND 分?jǐn)?shù)>=60 AND 成績(jī).課程編號(hào)=課程.課程編號(hào))
練習(xí)題02:根據(jù)“學(xué)生”表,計(jì)算出每班的男生人數(shù)和女生人數(shù),并填入“班級(jí)”表中。
三、追加查詢(xún)
P134
四、刪除查詢(xún)
P141 例6:刪除XS表中已修學(xué)分低于4分的記錄。
DELETE FROM XS WHERE 已修學(xué)分<4 例7:刪除沒(méi)有學(xué)生的班級(jí)。
DELETE FROM 班級(jí) WHERE 班級(jí)編號(hào) NOT IN(SELECT 班級(jí)編號(hào) FROM 學(xué)生 WHERE 班級(jí)編號(hào) IS NOT NULL)
練習(xí)題03:刪除沒(méi)有參加過(guò)任何考試的學(xué)生。
練習(xí)題04:刪除考試平均分?jǐn)?shù)低于本班所有學(xué)生全部考試平均分?jǐn)?shù)的同學(xué)。
第二篇:access查詢(xún)練習(xí)題
考點(diǎn)7:查詢(xún)
1.若在“tEmployee”表中查找所有出生日期在“1970-1-1”和“1980-1-1”之間的記錄,可以在查詢(xún)?cè)O(shè)計(jì)視圖的準(zhǔn)則行中輸入()。答案:A
A)Between #1970-1-1# And #1980-1-1#
B)Between “1970-1-1” And “1980-1-1”
C)“1970-1-1” And “1980-1-1”
D)#1970-1-1# And #1980-1-1#
2.下面顯示的是查詢(xún)?cè)O(shè)計(jì)視圖,從設(shè)計(jì)視圖所示的內(nèi)容中判斷此查詢(xún)將顯示()。答案:B
A)出生日期字段值
B)所有字段值 C)除出生日期以外的所有字段值
D)雇員ID字段值
3.在SQL查詢(xún)中“GROUP BY”的含義是()。答案:D
A)選擇行條件
B)對(duì)查詢(xún)進(jìn)行排序
C)選擇列字段
D)對(duì)查詢(xún)進(jìn)行分組
4.若要將“產(chǎn)品”表中所有供貨商是“ABC”的產(chǎn)品單價(jià)下調(diào)50,則正確的SQL語(yǔ)句是()。答案:B
A)UPDATE 產(chǎn)品 SET 單價(jià)=50 WHERE 供貨商=“ABC”
B)UPDATE 產(chǎn)品 SET 單價(jià)=單價(jià)-50 WHERE 供貨商=“ABC”
C)UPDATE FROM 產(chǎn)品 SET 單價(jià)=50 WHERE 供貨商=“ABC”
D)UPDATE FROM 產(chǎn)品 SET 單價(jià)=單價(jià)-50 WHERE 供貨商=“ABC”
5.下面不是操作查詢(xún)的是()。答案:C
A)刪除查詢(xún)
B)更新查詢(xún)
C)參數(shù)查詢(xún)
D)生成表查詢(xún)
6.在SQL語(yǔ)言的SELECT語(yǔ)句中,用于實(shí)現(xiàn)選擇運(yùn)算的子句是()。答案:D
A)FOR
B)IF
C)WHILE
D)WHERE
7.在SQL查詢(xún)中,若要取得“學(xué)生”數(shù)據(jù)表中的所有記錄和字段,其SQL語(yǔ)法為()。答案:B
A)SELECT 姓名 FROM 學(xué)生
B)SELECT * FROM 學(xué)生
C)SELECT 姓名 FROM 學(xué)生 WHILE 學(xué)號(hào)=02650 D)SELECT * FROM 學(xué)生 WHILE 學(xué)號(hào)=02650
8.假設(shè)某數(shù)據(jù)表中有一個(gè)工作時(shí)間字段,查找1999年參加工作的職工記錄的準(zhǔn)則是()。答案:A
A)Between # 99-01-01# And # 99-12-31 #
B)Between “ 99-01-01 ” And “ 99-12-31 ”
C)Between “ 99.01.01 ” And “ 99.12.31 ”
D)# 99.01.01 # And # 99.12.31 #
9.SQL的含義是()。答案:A
A)結(jié)構(gòu)化查詢(xún)語(yǔ)言
B)數(shù)據(jù)定義語(yǔ)言
C)數(shù)據(jù)庫(kù)查詢(xún)語(yǔ)言
D)數(shù)據(jù)庫(kù)操縱與控制語(yǔ)言
10.在Access中已建立了“學(xué)生”表,表中有“學(xué)號(hào)”、“姓名”、“性別”和“入學(xué)成績(jī)”等字段。執(zhí)行如下SQL命令“Select 性別, avg(入學(xué)成績(jī))From 學(xué)生 Group by 性別”其結(jié)果是()。答案:B
A)計(jì)算并顯示所有學(xué)生的性別和入學(xué)成績(jī)的平均值
B)按性別分組計(jì)算并顯示性別和入學(xué)成績(jī)的平均值
C)計(jì)算并顯示所有學(xué)生的入學(xué)成績(jī)的平均值
D)按性別分組計(jì)算并顯示所有學(xué)生的入學(xué)成績(jī)的平均值
11.假設(shè)“公司”表中有編號(hào)、名稱(chēng)、法人等字段,查找公司名稱(chēng)中有“網(wǎng)絡(luò)”二字的公司信息,正確的命令是()。答案:D
A)SELECT * FROM 公司 FOR 名稱(chēng)= “*網(wǎng)絡(luò)*” B)SELECT * FROM 公司 FOR 名稱(chēng) LIKE “*網(wǎng)絡(luò)*”
C)SELECT * FROM 公司 WHERE 名稱(chēng)= “*網(wǎng)絡(luò)*” D)SELECT * FROM 公司 WHERE 名稱(chēng) LIKE “*網(wǎng)絡(luò)*”
12.下圖是使用查詢(xún)?cè)O(shè)計(jì)器完成的查詢(xún),與該查詢(xún)等價(jià)的SQL語(yǔ)句是()。
答案:A
A)select 學(xué)號(hào),數(shù)學(xué) from sc where 數(shù)學(xué)>(select avg(數(shù)學(xué))from sc)
B)select 學(xué)號(hào) where 數(shù)學(xué)>(select avg(數(shù)學(xué))from sc)
C)select 數(shù)學(xué) avg(數(shù)學(xué))from sc
D)select 數(shù)學(xué)>(select avg(數(shù)學(xué))from sc)
13.在查詢(xún)?cè)O(shè)計(jì)視圖中()。答案:A
A)可以添加數(shù)據(jù)庫(kù)表,也可以添加查詢(xún)
B)只能添加數(shù)據(jù)庫(kù)表
C)只能添加查詢(xún)
D)數(shù)據(jù)庫(kù)表和查詢(xún)都不能添加
14.檢索價(jià)格在30萬(wàn)~60萬(wàn)元的產(chǎn)品,可以設(shè)置條件為()。答案:C
A)“>30 Not <60”
B)“>30 Or <60”
C)“>30 And <60”
D)“>30 Like <60”
15.下列關(guān)于SQL語(yǔ)句的說(shuō)法中,錯(cuò)誤的是()。答案:D
A)INSERT語(yǔ)句可以向數(shù)據(jù)表中追加新的數(shù)據(jù)記錄
B)UPDATE語(yǔ)句用來(lái)修改數(shù)據(jù)表中已經(jīng)存在的數(shù)據(jù)記錄
C)DELETE語(yǔ)句用來(lái)刪除數(shù)據(jù)表中的記錄
D)CREATE語(yǔ)句用來(lái)建立表結(jié)構(gòu)并追加新的記錄
16.下列不屬于操作查詢(xún)的是()。答案:A
A)參數(shù)查詢(xún)
B)生成表查詢(xún)
C)更新查詢(xún)
D)刪除查詢(xún)
17.在Access數(shù)據(jù)庫(kù)中創(chuàng)建一個(gè)新表,應(yīng)該使用的SQL語(yǔ)句是()。答案:A
A)Create Table
B)Create Index
C)Alter Table
D)Create Database
18.下面顯示的是查詢(xún)?cè)O(shè)計(jì)視圖的“設(shè)計(jì)網(wǎng)格”部分:從所顯示的內(nèi)容中可以判斷出該查詢(xún)要查找的是()。答案:A
A)性別為“女”并且1980年以前參加工作的記錄
B)性別為“女”并且1980年以后參加工作的記錄
C)性別為“女”或者1980年以前參加工作的記錄
D)性別為“女”或者1980年以后參加工作的記錄
19.在一個(gè)操作中可以更改多條記錄的查詢(xún)是()。答案:B
A)參數(shù)查詢(xún)
B)操作查詢(xún)
C)SQL查詢(xún)
D)選擇查詢(xún)
20.直接將命令發(fā)送ODBC數(shù)據(jù),它使用服務(wù)器能接受的命令,利用它可以檢索或更改記錄的是()。答案:B
A)聯(lián)合查詢(xún)
B)傳遞查詢(xún)
C)數(shù)據(jù)定義查詢(xún)
D)子查詢(xún)
21.要求按學(xué)生學(xué)號(hào)統(tǒng)計(jì)出每名學(xué)生的借閱次數(shù),下列SQL語(yǔ)句中,正確的是()。答案:B
A)Select 學(xué)號(hào),Count(學(xué)號(hào))from 借閱
B)Select 學(xué)號(hào),Count(學(xué)號(hào))from 借閱 Group By 學(xué)號(hào)
C)Select 學(xué)號(hào),Sum(學(xué)號(hào))from 借閱
D)Select 學(xué)號(hào),Sum(學(xué)號(hào))from 借閱 Order By 學(xué)號(hào)
22.在一個(gè)Access的表中有字段“專(zhuān)業(yè)”,要查找包含“信息”兩個(gè)字的記錄,正確的條件表達(dá)式是()。答案:B
A)=left([專(zhuān)業(yè)],2)=“信息”
B)like “*信息*”
C)=“信息*”
D)Mid([專(zhuān)業(yè)],1,2)=“信息”
23.Access支持的查詢(xún)類(lèi)型有()。答案:A
A)選擇查詢(xún)、交叉表查詢(xún)、參數(shù)查詢(xún)、SQL查詢(xún)和操作查詢(xún)
B)基本查詢(xún)、選擇查詢(xún)、參數(shù)查詢(xún)、SQL查詢(xún)和操作查詢(xún)
C)多表查詢(xún)、單表查詢(xún)、交叉表查詢(xún)、參數(shù)查詢(xún)和操作查詢(xún)
D)選擇查詢(xún)、統(tǒng)計(jì)查詢(xún)、參數(shù)查詢(xún)、SQL查詢(xún)和操作查詢(xún)
24.要從數(shù)據(jù)庫(kù)中刪除一個(gè)表,應(yīng)該使用的SQL語(yǔ)句是()。答案:D
A)ALTER TABLE
B)KILL TABLE
C)DELETE TABLE
D)DROP TABLE
25.在Access中已建立了“教師”表,表中有“教師編號(hào)”、“職稱(chēng)”、“性別”和“年齡”等字段。執(zhí)行如下SQL命令:SELECT Count(“教師編號(hào)”)AS 各類(lèi)職稱(chēng)人數(shù) FROM 教師 GROUP BY 職稱(chēng)其結(jié)果是()。答案:B
A)計(jì)算并顯示各類(lèi)職稱(chēng)人數(shù)的職稱(chēng)和教師編號(hào)
B)按職稱(chēng)分組,并計(jì)算教師編號(hào)的個(gè)數(shù)以各類(lèi)職稱(chēng)人數(shù)顯示
C)計(jì)算所有教師編號(hào)的個(gè)數(shù),以各類(lèi)職稱(chēng)人數(shù)顯示
D)按各類(lèi)職稱(chēng)人數(shù)分組計(jì)算并顯示教師編號(hào)的個(gè)數(shù)和職稱(chēng)
26.在SELECT語(yǔ)句中使用ORDER BY子句是為了指定()。答案:B
A)查詢(xún)的表
B)查詢(xún)的結(jié)果順序
C)查詢(xún)的條件
D)查詢(xún)的字段
27.若要查詢(xún)成績(jī)?yōu)?0~80分之間(包括70分,不包括80分)的學(xué)生的信息,查詢(xún)準(zhǔn)則設(shè)置正確的是()。答案:C
A)>69 or <80
B)Between 70 with 80
C)>=70 and <80
D)IN(70,79)
28.對(duì)“將信息系1999年以前參加工作的教師的職稱(chēng)改為副教授”,合適的查詢(xún)?yōu)?)。答案:B
A)生成表查詢(xún)
B)更新查詢(xún)
C)刪除查詢(xún)
D)追加查詢(xún)
29.下圖是簡(jiǎn)單查詢(xún)向?qū)В浩渲邪粹o和按鈕分別代表的意思是()。答案:A
A)單擊按鈕一次選擇一個(gè)字段,單擊按鈕一次選擇全部字段
B)單擊按鈕一次選擇一個(gè)字段,單擊按鈕一次選擇全部字段
C)兩者的作用相同,都是選擇一個(gè)字段
D)以上說(shuō)法均錯(cuò)誤
30.下面對(duì)查詢(xún)功能的敘述中正確的是()。答案:C
A)在查詢(xún)中,選擇查詢(xún)可以只選擇表中的部分字段,通過(guò)選擇一個(gè)表中的不同字段生成同一個(gè)表
B)在查詢(xún)中,編輯記錄主要包括添加記錄、修改記錄、刪除記錄和導(dǎo)入、導(dǎo)出記錄
C)在查詢(xún)中,查詢(xún)不僅可以找到滿(mǎn)足條件的記錄,而且還可以在建立查詢(xún)的過(guò)程中進(jìn)行各種統(tǒng)計(jì)計(jì)算
D)以上說(shuō)法均不對(duì)
31.與SELECT TAB1.* FROM TAB1 WHERE InStr([簡(jiǎn)歷],“籃球”)<>0功能相同的語(yǔ)句是()。答案:C
A)SELECT TAB1.* FROM TAB1 WHERE TAB1.簡(jiǎn)歷 Like “籃球”
B)SELECT TAB1.* FROM TAB1 WHERE TAB1.簡(jiǎn)歷 Like “*籃球”
C)SELECT TAB1.* FROM TAB1 WHERE TAB1.簡(jiǎn)歷 Like “*籃球*”
D)SELECT TAB1.* FROM TAB1 WHERE TAB1.簡(jiǎn)歷 Like “籃球*”
32.在Access 數(shù)據(jù)庫(kù)的表設(shè)計(jì)視圖中,不能進(jìn)行的操作是()。答案:D
A)修改字段類(lèi)型
B)設(shè)置索引
C)增加字段
D)刪除記錄
33.關(guān)于準(zhǔn)則 Like![北京,上海,廣州],以下滿(mǎn)足條件的是()。答案:D
A)北京
B)上海
C)廣州
D)杭州
34.現(xiàn)有某查詢(xún)?cè)O(shè)計(jì)視圖(如下圖所示),該查詢(xún)要查找的是()。
答案:A
A)身高在160以上的女性和所有的男性
B)身高在160以上的男性和所有的女性
C)身高在160以上的所有人或男性
D)身高在160以上的所有人
35.Access中,以下不屬于查詢(xún)操作方式的是()。答案:C
A)選擇查詢(xún)
B)參數(shù)查詢(xún)
C)準(zhǔn)則查詢(xún)
D)操作查詢(xún)
36.“A Or B”準(zhǔn)則表達(dá)式表示的意思是()。答案:B
A)表示查詢(xún)表中的記錄必須同時(shí)滿(mǎn)足Or兩端的準(zhǔn)則A和B,才能進(jìn)入查詢(xún)結(jié)果集
B)表示查詢(xún)表中的記錄只需滿(mǎn)足Or兩端的準(zhǔn)則A和B中的一個(gè),即可進(jìn)入查詢(xún)結(jié)果集
C)表示查詢(xún)表中記錄的數(shù)據(jù)介于A、B之間的記錄才能進(jìn)入查詢(xún)結(jié)果集
D)表示查詢(xún)表中的記錄當(dāng)滿(mǎn)足Or兩端的準(zhǔn)則A和B不相等時(shí)即進(jìn)入查詢(xún)結(jié)果集
37.若在“tEmployee”表中查找所有姓“王”的記錄,可以在查詢(xún)?cè)O(shè)計(jì)視圖的準(zhǔn)則行中輸入()。答案:B
A)Like “王”
B)Like “王*”
C)=“王”
D)=“王*”
38.在SQL查詢(xún)中使用WHERE子句指出的是()。答案:D
A)查詢(xún)目標(biāo)
B)查詢(xún)結(jié)果
C)查詢(xún)視圖
D)查詢(xún)條件
39.將表A的記錄復(fù)制到表B中,且不刪除表B中的記錄,可以使用的查詢(xún)是()。答案:C
A)刪除查詢(xún)
B)生成表查詢(xún)
C)追加查詢(xún)
D)交叉表查詢(xún)
40.要將“90分以上學(xué)生情況”表中所有記錄和“學(xué)生成績(jī)查詢(xún)”中80分以下的記錄,顯示內(nèi)容為“學(xué)生編號(hào)”、“姓名”、“成績(jī)”3個(gè)字段。正確的表達(dá)式是()。答案:C
A)SELECT學(xué)生編號(hào),姓名,成績(jī)FROM學(xué)生成績(jī)查詢(xún) WHERE 成績(jī)<80
JOIN SELECT學(xué)生編號(hào),姓名,成績(jī)FROM 90分以上學(xué)生情況
B)SELECT學(xué)生編號(hào),姓名,成績(jī)FROM學(xué)生成績(jī)查詢(xún) WHERE 成績(jī)<80
UNION
SELECT學(xué)生編號(hào),成績(jī),姓名FROM 90分以上學(xué)生情況
C)SELECT學(xué)生編號(hào),姓名,成績(jī)FROM學(xué)生成績(jī)查詢(xún) WHERE 成績(jī)<80
NUION
SELECT學(xué)生編號(hào),姓名,成績(jī)FROM 90分以上學(xué)生情況
D)SELECT學(xué)生編號(hào),姓名,成績(jī)FROM學(xué)生成績(jī)查詢(xún) WHERE 成績(jī)<80
NUION
SELECT學(xué)生編號(hào),成績(jī)FROM 90分以上學(xué)生情況
41.假設(shè)已在Access中建立了包含“書(shū)名”、“單價(jià)”和“數(shù)量”3個(gè)字段的“tOfg”表。以該表為數(shù)據(jù)源創(chuàng)建的窗體中,有一個(gè)計(jì)算訂購(gòu)總金額的文本框,其控件來(lái)源為()。答案:B
A)[單價(jià)]*[數(shù)量]
B)=[單價(jià)]*[數(shù)量]
C)[圖書(shū)訂單表]![單價(jià)]*[圖書(shū)訂單表]![數(shù)量]
D)=[圖書(shū)訂單表]![單價(jià)]*[圖書(shū)訂單表]![數(shù)量]
第三篇:sql查詢(xún)練習(xí)題含答案
--(1)查詢(xún)20號(hào)部門(mén)的所有員工信息。select * from emp e where e.deptno=20;
--(2)查詢(xún)獎(jiǎng)金(COMM)高于工資(SAL)的員工信息。select * from emp where comm>sal;--(3)查詢(xún)獎(jiǎng)金高于工資的20%的員工信息。select * from emp where comm>sal*0.2;--(4)查詢(xún)10號(hào)部門(mén)中工種為MANAGER和20號(hào)部門(mén)中工種為CLERK的員工的信息。select * from emp e
where(e.deptno=10 and e.job='MANAGER')or(e.deptno=20 and e.job='CLERK')--(5)查詢(xún)所有工種不是MANAGER和CLERK,--且工資大于或等于2000的員工的詳細(xì)信息。select * from emp
where job not in('MANAGER','CLERK')and sal>=2000;
--(6)查詢(xún)有獎(jiǎng)金的員工的不同工種。select * from emp where comm is not null;--(7)查詢(xún)所有員工工資和獎(jiǎng)金的和。select(e.sal+nvl(e.comm,0))from emp e;--(8)查詢(xún)沒(méi)有獎(jiǎng)金或獎(jiǎng)金低于100的員工信息。select * from emp where comm is null or comm<100;--(9)查詢(xún)員工工齡大于或等于10年的員工信息。
select * from emp where(sysdate-hiredate)/365>=10;
--(10)查詢(xún)員工信息,要求以首字母大寫(xiě)的方式顯示所有員工的姓名。select initcap(ename)from emp;select upper(substr(ename,1,1))||lower(substr(ename,2))from emp;
--(11)顯示所有員工的姓名、入職的年份和月份,按入職日期所在的月份排序,--若月份相同則按入職的年份排序。
select ename,to_char(hiredate,'yyyy')year,to_char(hiredate,'MM')month from emp order by month,year;--(12)查詢(xún)?cè)?月份入職的所有員工信息。select * from emp where to_char(hiredate,'MM')='02'--(13)查詢(xún)所有員工入職以來(lái)的工作期限,用“**年**月**日”的形式表示。
select e.ename,floor((sysdate-e.hiredate)/365)||'年' ||floor(mod((sysdate-e.hiredate),365)/30)||'月' ||floor(mod(mod((sysdate-e.hiredate),365),30))||'日' from emp e;--(14)查詢(xún)從事同一種工作但不屬于同一部門(mén)的員工信息。select a.ename,a.job,a.deptno,b.ename,b.job,b.deptno from emp a,emp b where a.job=b.job and a.deptno<>b.deptno;
--(15)查詢(xún)各個(gè)部門(mén)的詳細(xì)信息以及部門(mén)人數(shù)、部門(mén)平均工資。select d.deptno,count(e.empno),avg(e.sal),d.dname,d.loc from emp e ,dept d where e.deptno=d.deptno group by d.deptno,d.dname,d.loc
--(16)查詢(xún)10號(hào)部門(mén)員工以及領(lǐng)導(dǎo)的信息。select * from emp where empno in(select mgr from emp where deptno=10)or deptno=10;
--(17)查詢(xún)工資為某個(gè)部門(mén)平均工資的員工信息。select * from emp where sal in(select avg(sal)from emp group by deptno);
--(18)查詢(xún)工資高于本部門(mén)平均工資的員工的信息。select * from emp e1
where sal >(select avg(sal)from emp e2 where e2.deptno=e1.deptno);
--(19)查詢(xún)工資高于本部門(mén)平均工資的員工的信息及其部門(mén)的平均工資。select e.*,a.avgsal from emp e,(select deptno,avg(sal)as avgsal from emp group by deptno)a where a.deptno=e.deptno and e.sal>a.avgsal;
--(20)統(tǒng)計(jì)各個(gè)工種的人數(shù)與平均工資。
select count(*),e.job,avg(e.sal)from emp e group by e.job
--(21)統(tǒng)計(jì)每個(gè)部門(mén)中各個(gè)工種的人數(shù)與平均工資。select deptno,job,count(empno),avg(sal)from emp e group by e.deptno,e.job--(22)查詢(xún)所有員工工資都大于1000的部門(mén)的信息。select * from dept where deptno in(select deptno from emp where deptno not in
(select distinct deptno from emp where sal<1000));
--(23)查詢(xún)所有員工工資都大于1000的部門(mén)的信息及其員工信息。select * from emp e join dept d on d.deptno in(select deptno from emp where deptno not in
(select distinct deptno from emp where sal<1000))and d.deptno=e.deptno;
--(24)查詢(xún)所有員工工資都在900~3000之間的部門(mén)的信息。select * from dept where deptno not in(select deptno from emp
where sal not between 900 and 3000);--(25)查詢(xún)所有工資都在900~3000之間的員工所在部門(mén)的員工信息。select * from emp a where a.deptno in(select distinct e.deptno from emp e where e.sal between 900 and 3000);
--(26)查詢(xún)每個(gè)員工的領(lǐng)導(dǎo)所在部門(mén)的信息。select d.* from dept d where d.deptno in(select distinct e2.deptno from emp e1,emp e2 where e1.empno=e2.mgr);--(27)查詢(xún)?nèi)藬?shù)最多的部門(mén)信息。select * from dept where deptno in(select deptno from(select count(*)count,deptno from emp group by deptno)where count in(select max(count)
from(select count(*)count ,deptno from emp group by deptno)));
--(28)查詢(xún)30號(hào)部門(mén)中工資排序前3名的員工信息。
select * from
(select sal from emp where deptno=30 order by sal desc)e where rownum<4
--(29)查詢(xún)'JONES'員工及所有其直接、間接下屬員工的信息。select e.* from emp e start with ename='JONES' connect by prior empno=mgr;
---(30)查詢(xún)SCOTT員工及其直接、間接上級(jí)員工的信息。select e.* from emp e start with ename='SCOTT' connect by prior mgr=empno;
--(31)以樹(shù)狀結(jié)構(gòu)查詢(xún)所有員工與領(lǐng)導(dǎo)之間的層次關(guān)系。select substr(sys_connect_by_path(ename,'->'),3),level from emp start with mgr is null connect by prior empno=mgr;
--(32)向emp表中插入一條記錄,員工號(hào)為1357,員工名字為oracle,--工資為2050元,部門(mén)號(hào)為20,入職日期為2002年5月10日。
--(33)將各部門(mén)員工的工資修改為該員工所在部門(mén)平均工資加1000。update emp e set sal= 1000+(select avg(sal)from emp where deptno=e.deptno);
--(34)查詢(xún)工作等級(jí)為2級(jí),1985年以后入職的工作地點(diǎn)為DALLAS的員工編號(hào)、--姓名和工資。
select e.ename,e.empno,e.sal from emp e,salgrade s,dept d where(e.sal between s.losal and s.hisal)and(s.grade=2)
and to_char(e.hiredate,'yyyy')>1985 and e.deptno=d.deptno and d.loc='DALLAS';
--35.部門(mén)平均薪水最高的部門(mén)編號(hào)
select * from(select avg(sal)avgsal,deptno
from emp group by deptno order by avgsal desc)
where rownum=1;
select deptno,avg(sal)from emp group by deptno having avg(sal)=(select max(avg(sal))avgsal
from emp group by deptno)
--36,部門(mén)平均薪水最高的部門(mén)名稱(chēng)
select d.* from dept d where deptno in(select deptno from emp group by deptno having avg(sal)=(select max(avg(sal))avgsal
from emp group by deptno))
--37.平均薪水最低的部門(mén)的部門(mén)名稱(chēng)
select d.* from dept d where deptno in(select deptno from emp group by deptno having avg(sal)=(select min(avg(sal))avgsal
from emp group by deptno))
--38.平均薪水等級(jí)最低的部門(mén)的部門(mén)名稱(chēng) select d.dname from dept d where d.deptno in(select a.deptno from
(select e.deptno from emp e,salgrade s where(e.sal between s.losal and s.hisal)group by e.deptno order by avg(s.grade))a where rownum=1);
--39.部門(mén)經(jīng)理人中,薪水最低的部門(mén)名稱(chēng) select dname from dept where deptno=(select deptno from
(select deptno from emp where job='MANAGER' group by deptno order by min(sal))where rownum=1)
--40.比普通員工的最高薪水還要高的經(jīng)理人名稱(chēng) select ename from emp where sal>(select max(sal)from emp where job not in('MANAGER','PRESIDENT'))and job='MANAGER' or job='PRESIDENT'
--41.刪除重復(fù)部門(mén),但是留下一項(xiàng)
insert into dept values(70,'RESEARCH','DALLAS')select deptno,dname,rowid from dept
delete from dept d where rowid<>(select min(rowid)from dept where dname=d.dname and d.loc=loc)
--42.更新員工工資為他的主管的工資,獎(jiǎng)金
update emp e set sal=(select sal from emp where empno=e.mgr), comm=(select comm from emp where empno=e.mgr)
update emp e set(sal,comm)=(select sal,comm from emp where empno=e.mgr)rollback;select * from emp;
第四篇:Oracle基礎(chǔ)練習(xí)題及答案(子查詢(xún))
子查詢(xún)
1.查詢(xún)和scott相同部門(mén)的員工姓名ename和雇用日期hiredate select ename,hiredate from emp where deptno=(select b.deptno from emp a,dept b where a.deptno=b.deptno and ename='SCOTT');
2.查詢(xún)工資比公司平均工資高的所有員工的員工號(hào)empno,姓名ename和工資sal。
select empno,ename,sal from emp where sal>(select avg(sal)from emp);
3.查詢(xún)和姓名中包含字母u的員工在相同部門(mén)的員工的員工號(hào)empno和姓名ename select empno,ename from emp a,dept b where a.deptno(+)=b.deptno and a.deptno=(select deptno from emp where ename like '%U%');
4.查詢(xún)?cè)诓块T(mén)的loc為newYork的部門(mén)工作的員工的員工姓名ename,部門(mén)名稱(chēng)dname和崗位名稱(chēng)job select ename,dname,job from emp a,dept b where a.deptno=b.deptno and loc='NEW YORK';
查詢(xún)管理者是king的員工姓名ename和工資sal select a.ename,a.sal from emp a,emp b where a.mgr=b.empno and b.ename='KING';
第五篇:查詢(xún)操作練習(xí)題4 - 分組(統(tǒng)計(jì))查詢(xún)
說(shuō)明:
根據(jù)題目要求編寫(xiě)下列題目的代碼,運(yùn)行代碼得出正確結(jié)果后把代碼復(fù)制到題號(hào)的下面,最后在文件名前加上學(xué)號(hào)和姓名(例:2013111055+張三+查詢(xún)操作練習(xí)4-分組查詢(xún)),并提交文件到教師機(jī)。(各數(shù)據(jù)表參考教材中的教務(wù)管理數(shù)據(jù)庫(kù))
1.統(tǒng)計(jì)每類(lèi)職稱(chēng)的教師人數(shù),顯示職稱(chēng)和人數(shù)。
2.統(tǒng)計(jì)每個(gè)系教師的人數(shù),顯示系名和人數(shù)。
3.統(tǒng)計(jì)每個(gè)系職稱(chēng)為講師的教師的人數(shù),顯示系名和人數(shù)。
4.分別統(tǒng)計(jì)男女教師的平均基本工資,顯示性別和均值。
5.顯示平均成績(jī)超過(guò)70分的課程號(hào)、課程名和平均成績(jī)。