1[SS'J自动化21
2昊丽计算机20
3补珊自动化20
3)查询姓李的学生的姓名、学号和性别。
usejxskselectSN,SNO,SEXfromSwhereSNlike'李%'
□usejxskselect^NOfSEXfrom5wriereEE丄是'李虽「
4)查询名字中第二个字为明”字的男学生的姓名和系名
usejxskselectSN,DEPTfromS
whereSNlike'_%明’andSEX='男’
4
3usejxsfcaelectSM,DEFTfrom5
LwhereSNLike明■街id5EX=,^t|
G
1结果匡L消息
SNDEPT
i!
信息
h^iiiiauaBinki■■■■■&■■■■#
3、对查询结果排序
1)查询信息系、计算机系学生的姓名、系名,结果按系名升序,按姓名降序排序。
usejxskselectSN,DEPT
fromS
whereDEPT='信息’ORDEPT='计算机'
orderbyDEPT,SNDESC
□-Lii*_XBJCS*l*Ct52l.r
fromE
whereDEPT='信息・ORDEPT=・计算机・ariexbyDEPT,SND兀右匚
*H
口结果[Z5~谓息
机机机"
K算直惠巨
计计计“信禧
r-L
SN
1吴丽
2王青山
3战尔
4弓耐
5范思明
2)查询所有有课程号C2成绩的学生的学号、课程号和成绩,并按成绩降序排序。
usejxskselectSNO,CNO,SCORE
fromSCwhereCNO='C2'andSCOREisnotnullorderbySCOREDESC
7.15,Lsql-THlNIG^THINICXTliinktSl))
Quseixskselect5NOfCTIQ,SCORE
freir.SC:
■wKereCNG=11andSCC^Eisnetrr一丄1ordertsy5GGREDESc]
<■
口结果J港島
SHOCNOSCORE
4、使用聚集函数的查询
1)查询计算机系学生总人数。
usejxskselectCOUNT(*)fromSwhereDEPT='计算机
□selectecu:
IT
fromS
whereDEP二二'计巨机'
二]菇■果:
消息
氐列名}
1j31
Le—l,".fl,』
2)查询选修了微机原理课程的学生人数、平均成绩和最高成绩
usejxskselectCOUNT(*),AVG(SCORE),MAX(SCORE)
fromC,SC
whereCN='微机原理’andC.CNO=SC.CNO
□naejitglcselectCOUNT■',AVG(S亡ORE,MAX[SCORE
frcmCrSC
wtieie匚'微机原寸里'二;w*CNQ=SG.GNQ
二1结果區5鴨
氏列宕)「£?
&列名1优列自
1「0\NULLNULL
*f”■rrminr^^4
5、分组统计查询
1)查询各个课程号及相应的选择人数。
usejxskselectCNO,COUNT(SNO)as人数fromSC
groupby(CNC)
■
E
]usejxskselectCKO.匚OUTTTas人数
fIflffSC
-gioupBy(CNO}|
二结貝J消息
CNO人埶
2)查询选修了两门以上课程的学生姓名和平均成绩
usejxskselectSN,AVG(SCORE)
fromS,SC
whereS.SNO=SC.SNO
groupby(S.SN)
havingCOUNT(*)>2
E
3jataksei电ot51T,(SCORI
froanSfSC
^Jiere5・S^O=5C*5!
TOgroupby(S,SW)
-havingCOCJLTT()>2
旨结果L(i)消息
SN阮刿自
7.2连接查询
1、连接查询
1)查询所有选课学生的学号、姓名、选课名称及成绩
usejxskselectSN,S.SNO,CN,SCOREfromS,SC,C
whereS.SNO=SC.SNOandC.CNO=SC.CNO
2)查询每门课程的课程号、任课教师姓名及其选课人数。
usejxskselectC.CNO,TN,COUNT(SC.SNO)
fromSC,C,T,TC
whereC.CNO=SC.CNOAND
T.TNO=TC.TNOAND
C.CNO=TC.CNO
groupbyC.CNO,T.TN
□psejxskselecr匚.匚NOKTNrCCUtTTi5C,5NO)
from5匚,C,T,TC
whereC.CNO=SC.CNOANE
T.INQ=TC.INC初D
C・CNO=TC・CNQ
-grouptoyC.CNO,I.TN
j1——
J结果
CNOTM怒闾
2、自身连接
1)查询所有比刘伟”工资高的教师的姓名、工资以及刘伟的工资
usejxskselectX.TN,X.SAL,Y.SAL
fromTASX,TASY
whereX.SAL>Y.SALANDY.TN='文刘伟'
鼻1
二itsk占色丄色亡tX.TK.X..SAL,^,SAL
iiomTASX,TASY
-wliereX.SAL>Y.SAX.AWDY.TN-•刘伟・
□结果盘消息1
TNSALSAL
1i张兰i13W900
—■iilu■■Ir
2张雪1TO9M
3李力i™SM
2)查询同时选修了程序设计”和微机原理”的学生的姓名、课程名
usejxskselectdistinetSN,C1.CN,C2.C
fromCASC1,CASC2,SCASSC1,SCASSC2,S
whereC1.CNO=SC1.CNOAND
C2.CNO=SC2.CNOAND
C1.CN='程序设计'AND
C2.CN='微机原理'AND
SC1.SNO=SC2.SNOAND
SC1.SNO=S.SNO
□use->cskselectcIjls七丄netSNrC1.CNrC2.CM
盍H口皿G恥ASG2f5C疋55C1,5CA533吕
where匚1.CNO=SC1,CUOAND
C2.CNO^£C2.CNOAND
Cl..CN=,程序设计'AND
5C1,3WO=3C2,3NOAND
一SCI,SNO=S.SMO
<|nr
S结果
SNCNCN
3、外连接
查询所有学生的学号、姓名、选课名称及成绩(没有选课的学生的选课信息显示为空)
usejxsk
selectS.SNO,SN,CN,SCORE
fromS
LEFTOUTERJOINSC
ONS.SNO=SC.SNO
LEFTOUTERJOINC
ONC.CNO=SC.CNO
E]TioeJK5Kselec-t;3,SNQ^SN,CN,SCORErroms
:
LEFTOm/ERJOTNSC
ONS.SNO-5C.SNC]
E«EPTOUTERc
ONCECNO—S匚・CNO
打「
7.3嵌套查询
1、返回一个值的子查询
查询与刘伟”教师职称相同的教师号、姓名和职称。
usejxskselectTNO,TN,PROF
fromT
where(PROF=(selectPROFfromTwhereTN='文刘伟')
)
/EQLQu色呼74^ql-...TH!
NK\Thirtk(53))"
□usejxskselectTUO,TWfPROFfTomT
where[PROS'=select-FROFfrcitT
LwhereTN=,刘伟1
)
”h=艸h」「
□结果]冷I消息
I•---「——
IJNOTNPROF
1「〒亍一〕如伟井师
RBHiiiimuiHmr
2、返回一组值的子查询
1)使用ANY谓词查询讲授课程号为C5的教师姓名。
usejxskselectTN
fromT
where(TNO=ANY
(selectTNOfromTC
whereCNO='C5'))
E
3113^:
:
x=selectT2-J
fromT
wheie
seller二耳0fro.mTC
LwhereCNO^r€5*)1
41
PHI
4\.
1自结果至涓息1
TN
2)使用IN谓词查询讲授课程号为C5的教师姓名
usejxskselectTN
fromT
where(TNOIN
(selectTNOfromTC
whereCNO='c5'))
□ns*jxsk:
selectTN
wii&re(TNOI?
TselectTMOfrcnr.TC
-wH&ireCMO=*cE1i
nt
J结果
J消息
TN
3)使用ALL谓词查询其他系中比计算机系所有教师工资都高的教师的姓名、工资和所在系
usejxskselectTN,SAL,DEPT
fromTwhere(SAL>ALL
(selectSALfromT
whereDEPT='计算机')AND
(DEPT<>'计算机')
£QLQueky78LH;l_TMINK\ThinkCS1))*卫
QusejxakaelectTN,SAL(DEPT
£xcn,I
whcie(5AL>A1L
(.select5j^LfroinT
DEFT^1计算机,JANDL计算和))
1Pll
口结果
j消息
TN
SAL
DEPTn
filllinIllinilliiviii张雪」
自动化
4)使用EXISTS胃词查询没有讲授课程号为C5的课程的教师姓名、所在系
usejxskselectTN,DEPT
fromT
where(NOTEXISTS
(select*fromTC
whereTNO=T.TNOANDCNO='C5'))
口吉电丄■&亡七"N,DEFT
fromT
^elecc-fromTC
;LwriereI2Ic|=T.7:
:
?
JLWDCWO=*C51))
二I结果_J消息
dept
1IW^-l信息
n■■■■■■■■■imii.d
2张畫自幼化
3刘悟计罩机
<李办计筲机
5)使用NOTEXIST谓词查询至少选修了学生S2选修的全部课程的学生的学号。
usejxskselectDISTINCTSNO
fromSCSCX
whereNOTEXISTS
(select*fromSCSCY
whereSCY.SNO='S9'ANDNOTEXISTS
(select*fromSCSCZ
whereSCZ.SNO=SCX.SNOAND
SCZ.CNO=SCY.CNC))
[
3izse:
xskselectni^TIMCTSWC-
fromSC5GX
where耳匚工EXISTS
select-frcir;ECSCY
whereSCY^SNO'SQ1AHDNOTEXISTS
~frcir.5C^CZ
where5匚3・SM0=5CX・呂—心
L5匚Z.CNO=|SCY.CNO})
4
'□结杲
J消息
SNO
7.4集合查询
1、查询年龄不大于19岁或者属于计算机系的学生。
(使用UNION)
usejxskselect*fromSwhereDEPT='计算机
union
select*fromS
whereAGE<19
I
3use
:
xskselectunicii
seiner
rfr口血5
DEPT-计算机,
*lzoirS
^GE^19
rrr
屋
结果
J消息
SNO
SN一
SEX
AGE
DEPT
NATIVE
1
|ra■■■■■■■
\so
i王青山
19
计算机
NULL
2
S1
17
软件
NULL
3
S2
卑
19
计算机
NULL
_4
S3
弓縊明
卑
18
信息
NULL
&
Sfi
吴丽
20
计箕机
NULL
E
57
范思明
立
1B
信息
NULL