国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > 綜合 > 正文

數據庫查詢實例(包含所有where條件例子)

2024-07-21 02:48:36
字體:
來源:轉載
供稿:網友
數據庫查詢實例(包含所有where條件例子)

查詢指定列

[例1] 查詢全體學生的學號與姓名。

SELECT Sno,Sname

FROM Student;

[例2] 查詢全體學生的姓名、學號、所在系。

SELECT Sname,Sno,Sdept

FROM Student;

[例3] 查詢全體學生的詳細記錄。

SELECT Sno,Sname,Ssex,Sage,Sdept

FROM Student;

SELECT *

FROM Student;

[例4] 查全體學生的姓名及其出生年份。

SELECT Sname,2004-Sage /*假定當年的年份為2004年*/ FROM Student;

[例5] 查詢全體學生的姓名、出生年份和所有系,要求用小 寫字母表示所有系名

SELECT Sname,„Year of Birth: ‘,2004-Sage,

ISLOWER(Sdept)

FROM Student;

[例6] 查詢選修了課程的學生學號。

SELECT Sno FROM SC;

等價于:

SELECT ALL Sno FROM SC;

[例7] 查詢計算機科學系全體學生的名單。

SELECT Sname www.111cn.net

FROM Student

WHERE Sdept=„CS?;

[例8] 查詢所有年齡在20歲以下的學生姓名及其年齡。 SELECT Sname,Sage

FROM Student

WHERE Sage < 20;

[例9] 查詢考試成績有不及格的學生的學號。

SELECT DISTINCT Sno

FROM SC

WHERE Grade<60;

[例10] 查詢年齡在20~23歲(包括20歲和23歲)之間的學生的 姓名、系別和年齡

SELECT Sname,Sdept,Sage

FROM Student

WHERE Sage BETWEEN 20 AND 23;

[例11] 查詢年齡不在20~23歲之間的學生姓名、系別和年齡

SELECT Sname,Sdept,Sage

FROM Student

WHERE Sage NOT BETWEEN 20 AND 23;

[例12]查詢信息系(IS)、數學系(MA)和計算機科學系(CS)學生的姓名和 性別。

SELECT Sname,Ssex

FROM Student

WHERE Sdept IN ( ‘IS’,’MA’,’CS’ );

[例13]查詢既不是信息系、數學系,也不是計算機科學系的學生的姓名和性別。 SELECT Sname,Ssex

FROM Student

WHERE Sdept NOT IN ( ‘IS’,’MA’,’CS’ );

[例14] 查詢學號為200215121的學生的詳細情況。

SELECT *

FROM Student

WHERE Sno LIKE „200215121&PRime;;

等價于:

SELECT *

FROM Student

WHERE Sno = ‘ 200215121 ‘;

[例15] 查詢所有姓劉學生的姓名、學號和性別。

SELECT Sname,Sno,Ssex

FROM Student

WHERE Sname LIKE „劉%?;

[例16] 查詢姓”歐陽”且全名為三個漢字的學生的姓名。

SELECT Sname

FROM Student

WHERE Sname LIKE ‘歐陽__’;

[例17] 查詢名字中第2個字為”陽”字的學生的姓名和學號。

SELECT Sname,Sno

FROM Student

WHERE Sname LIKE „__陽%?;

[例18] 查詢所有不姓劉的學生姓名。

SELECT Sname,Sno,Ssex

FROM Student

WHERE Sname NOT LIKE ‘劉%’;

[例19] 查詢DB_Design課程的課程號和學分。

SELECT Cno,Ccredit

FROM Course

WHERE Cname LIKE ‘DB_Design’ ESCAPE ‘„;

[例20] 查詢以”DB_”開頭,且倒數第3個字符為 i的課程的詳細情況。 SELECT *

FROM Course

WHERE Cname LIKE ‘DB_%i_ _’ ESCAPE ‘ „;

[例21] 某些學生選修課程后沒有參加考試,所以有選課記錄,但沒 有考試成績。查詢缺少成績的學生的學號和相應的課程號。 SELECT Sno,Cno

FROM SC

WHERE Grade IS NULL

[例22] 查所有有成績的學生學號和課程號。

SELECT Sno,Cno

FROM SC

WHERE Grade IS NOT NULL;

[例23] 查詢計算機系年齡在20歲以下的學生姓名。

SELECT Sname

FROM Student

WHERE Sdept= ‘CS’ AND Sage<20;

改寫[例12]

[例12] 查詢信息系(IS)、數學系(MA)和計算機科學系 (CS)學生的姓名和性別。

SELECT Sname,Ssex

FROM Student

WHERE Sdept IN ( ‘IS’,’MA’,’CS’ )

可改寫為:

SELECT Sname,Ssex

FROM Student

WHERE Sdept= ‘ IS ‘ OR Sdept= ‘ MA’ OR Sdept= ‘ CS ‘;

[例24] 查詢選修了3號課程的學生的學號及其成績,查詢結果按分 數降序排列。

SELECT Sno,Grade

FROM SC

WHERE Cno= ‘ 3 ‘

ORDER BY Grade DESC;

[例25] 查詢全體學生情況,查詢結果按所在系的系號升序排 列,同一系中的學生按年齡降序排列。

SELECT *

FROM Student

ORDER BY Sdept,Sage DESC;

[例26] 查詢學生總人數。

SELECT COUNT(*)

FROM Student;

[例27] 查詢選修了課程的學生人數。

SELECT COUNT(DISTINCT Sno)

FROM SC;

[例28] 計算1號課程的學生平均成績。

SELECT AVG(Grade)

FROM SC

WHERE Cno= ‘ 1 ‘;

[例29] 查詢選修1號課程的學生最高分數。

SELECT MAX(Grade)

FROM SC

WHER Cno= „ 1 ?;

[例30]查詢學生200215012選修課程的總學分數。

SELECT SUM(Ccredit)

FROM SC, Course

WHER Sno=’200215012′ AND SC.Cno=Course.Cno;

[例31] 求各個課程號及相應的選課人數。

SELECT Cno,COUNT(Sno)

FROM SC

GROUP BY Cno;

[例32] 查詢選修了3門以上課程的學生學號。

SELECT Sno

FROM SC

GROUP BY Sno

HAVING COUNT(*) >3;

[例33] 查詢每個學生及其選修課程的情況

SELECT Student.*,SC.*

FROM Student,SC

WHERE Student.Sno = SC.Sno;

[例34] 對[例33]用自然連接完成。

SELECT Student.Sno,Sname,Ssex,Sage,Sdept,Cno,Grade FROM Student,SC

WHERE Student.Sno = SC.Sno;

[例35]查詢每一門課的間接先修課(即先修課的先修課)

SELECT FIRST.Cno,SECOND.Cpno

FROM Course FIRST,Course SECOND

WHERE FIRST.Cpno = SECOND.Cno;

[例 36] 改寫[例33]

SELECT Student.Sno,Sname,Ssex,Sage,Sdept,Cno,Grade FROM Student LEFT OUT JOIN SC ON (Student.Sno=SC.Sno);

[例37]查詢選修2號課程且成績在90分以上的所有學生

SELECT Student.Sno, Sname

FROM Student, SC

WHERE Student.Sno = SC.Sno AND

/* 連接謂詞*/

SC.Cno= „2? AND SC.Grade > 90; /* 其他限定條件 */

[例38]查詢每個學生的學號、姓名、選修的課程名及成績

SELECT Student.Sno,Sname,Cname,Grade

FROM Student,SC,Course /*多表連接*/

WHERE Student.Sno = SC.Sno

and SC.Cno = Course(www.111cn.net).Cno;

[例39] 查詢與“劉晨”在同一個系學習的學生。

此查詢要求可以分步來完成

① 確定“劉晨”所在系名

SELECT Sdept

FROM Student WHERE Sname= ‘ 劉晨 ‘;

結果為: CS

② 查找所有在IS系學習的學生。

SELECT Sno,Sname,Sdept

FROM Student

WHERE Sdept= ‘ CS ‘;

將第一步查詢嵌入到第二步查詢的條件中

SELECT Sno,Sname,Sdept

FROM Student

WHERE Sdept IN

(SELECT Sdept

FROM Student

WHERE Sname= „ 劉晨 ?);

此查詢?yōu)椴幌嚓P子查詢。

用自身連接完成[例39]查詢要求

SELECT S1.Sno,S1.Sname,S1.Sdept

FROM Student S1,Student S2

WHERE S1.Sdept = S2.Sdept AND

S2.Sname = ‘劉晨’;

[例40]查詢選修了課程名為“信息系統(tǒng)”的學生學號和姓名 SELECT Sno,Sname ③ 最后在Student關系中 FROM Student 取出Sno和Sname WHERE Sno IN

(SELECT Sno ② 然后在SC關系中找出選 FROM SC 修了3號課程的學生學號 WHERE Cno IN

(SELECT Cno ① 首先在Course關系中找出 FROM Course “信息系統(tǒng)”的課程號,為3號 WHERE Cname= „信息系統(tǒng)?

)

);

用連接查詢實現[例40]

SELECT Sno,Sname

FROM Student,SC,Course

WHERE Student.Sno = SC.Sno AND

SC.Cno = Course.Cno AND

Course.Cname=„信息系統(tǒng)?;

例:假設一個學生只可能在一個系學習,并且必須屬于一個 系,則在[例39]可以用 = 代替IN :

SELECT Sno,Sname,Sdept

FROM Student

WHERE Sdept =

(SELECT Sdept

FROM Student

WHERE Sname= „劉晨?);

[例41]找出每個學生超過他選修課程平均成績的課程

號。

SELECT Sno, Cno

FROM SC x

WHERE Grade >=(SELECT AVG(Grade)

FROM SC y

WHERE y.Sno=x.Sno);

[例42] 查詢其他系中比計算機科學某一學生年齡

小的學生姓名和年齡

SELECT Sname,Sage

FROM Student

WHERE Sage < ANY (SELECT Sage

FROM Student WHERE Sdept= ‘ CS ‘) AND Sdept <> „CS ‘ ; /*父查詢塊中 的條件 */

用聚集函數實現[例42]

SELECT Sname,Sage

FROM Student

WHERE Sage <

(SELECT MAX(Sage)

FROM Student www.111cn.net

WHERE Sdept= „CS ‘)

AND Sdept <> ‘ CS ?;

[例43] 查詢其他系中比計算機科學系所有學生年齡都小 的學生姓名及年齡。

方法一:用ALL謂詞

SELECT Sname,Sage

FROM Student

WHERE Sage < ALL

(SELECT Sage

FROM Student

WHERE Sdept= ‘ CS ‘)

AND Sdept <> ‘ CS ?;

方法二:用聚集函數

SELECT Sname,Sage

FROM Student

WHERE Sage <

(SELECT MIN(Sage)

FROM Student

WHERE Sdept= ‘ CS ‘)

AND Sdept <>’ CS ?;

[例44]查詢所有選修了1號課程的學生姓名。

用嵌套查詢

SELECT Sname

FROM Student

WHERE EXISTS

(SELECT *

FROM SC

WHERE Sno=Student.Sno AND Cno= ‘ 1 ‘);

用連接運算

SELECT Sname

FROM Student, SC

WHERE Student.Sno=SC.Sno AND SC.Cno= ’1′;

[例45] 查詢沒有選修1號課程的學生姓名。

SELECT Sname

FROM Student

WHERE NOT EXISTS

(SELECT *

FROM SC

WHERE Sno = Student.Sno AND Cno=’1′);

[例39]查詢與“劉晨”在同一個系學習的學生。

可以用帶EXISTS謂詞的子查詢替換:

SELECT Sno,Sname,Sdept

FROM Student S1

WHERE EXISTS

(SELECT *

FROM Student S2

WHERE S2.Sdept = S1.Sdept AND

S2.Sname = „劉晨?);

[例46] 查詢選修了全部課程的學生姓名。

SELECT Sname


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 海口市| 福安市| 托克逊县| 吉首市| 礼泉县| 平罗县| 娄烦县| 巴中市| 饶河县| 绥江县| 英德市| 莫力| 芮城县| 沂南县| 嘉禾县| 隆昌县| 浏阳市| 武山县| 磴口县| 扎囊县| 南昌市| 临夏县| 长寿区| 莎车县| 德惠市| 内黄县| 仲巴县| 金堂县| 申扎县| 通渭县| 得荣县| 萍乡市| 辽阳市| 溧水县| 武乡县| 即墨市| 南溪县| 田东县| 同德县| 山丹县| 德钦县|