2. 往表中插入數(shù)據(jù):
運(yùn)動(dòng)員((1001, 李明,男,計(jì)算機(jī)系)
1002,張三,男,數(shù)學(xué)系
1003, 李四,男,計(jì)算機(jī)系
1004, 王二,男,物理系
1005, 李娜,女,心理系
1006, 孫麗,女,數(shù)學(xué)系)
項(xiàng)目( x001, 男子五千米,一操場(chǎng)
x002,男子標(biāo)槍,一操場(chǎng)
x003, 男子跳遠(yuǎn),二操場(chǎng)
x004, 女子跳高,二操場(chǎng)
x005, 女子三千米,三操場(chǎng))
積分( 1001, x001, 6
1002, x001, 4
1003, x001, 2
1004, x001, 0
1001, x003, 4
1002, x003, 6
1004, x003, 2
1005, x004, 6
1006, x004, 4)
3. 完成如下查詢
athlete(a#,aname,sex,dno)
project(p#,pname,address)
grade(a#,p#,jf)
找出參加了張三所參加的所有項(xiàng)目的其他同學(xué)的姓名
SELECT ANAME
FROM W193_ATHLETE Y
WHERE NOT EXISTS
(SELECT * FROM W193_GRADE X
WHERE A# IN
(SELECT A# FROM W193_GRADE
WHERE A# IN (SELECT A# FROM W193_ATHLETE WHERE ANAME='張三' )
)
AND NOT EXISTS
(SELECT * FROM W193_GRADE WHERE A#=Y.A# AND P#=X.P# )
)
a) 求出目前總積分的系名,及其積分。
SELECT DNO,SUM(JF) AS JF
FROM W193_GRADE X,W193_ATHLETE Y
WHERE X.A#=Y.A#
GROUP BY DNO
HAVING SUM(JF)>=ALL
(SELECT SUM(JF)
FROM W193_GRADE X,W193_ATHLETE Y
WHERE X.A#=Y.A#
GROUP BY DNO
)
b) 找出在一操場(chǎng)進(jìn)行比賽的各項(xiàng)目名稱及其冠軍的姓名
SELECT PNAME,ANAME
FROM W193_ATHLETE X, W193_GRADE Y, W193_PROJECT Z
WHERE X.A#=Y.A# AND Z.P#=Y.P# AND
ADDRESS='一操場(chǎng)' AND JF>=ALL(SELECT MAX(JF) FROM W193_GRADE
WHERE P# IN (SELECT P# FROM W193_PROJECT WHERE ADDRESS='一操場(chǎng)')
GROUP BY P#)
c) 找出參加了張三所參加的所有項(xiàng)目的其他同學(xué)的姓名
SELECT ANAME
FROM W193_ATHLETE Y
WHERE A# NOT IN (SELECT A# FROM W193_ATHLETE WHERE ANAME='張三')
AND NOT EXISTS
(SELECT * FROM W193_GRADE X
WHERE A# IN
(SELECT A# FROM W193_GRADE
WHERE A# IN (SELECT A# FROM W193_ATHLETE WHERE ANAME='張三' )
)
AND NOT EXISTS
(SELECT * FROM W193_GRADE WHERE A#=Y.A# AND P#=X.P# )
)
運(yùn)動(dòng)員((1001, 李明,男,計(jì)算機(jī)系)
1002,張三,男,數(shù)學(xué)系
1003, 李四,男,計(jì)算機(jī)系
1004, 王二,男,物理系
1005, 李娜,女,心理系
1006, 孫麗,女,數(shù)學(xué)系)
項(xiàng)目( x001, 男子五千米,一操場(chǎng)
x002,男子標(biāo)槍,一操場(chǎng)
x003, 男子跳遠(yuǎn),二操場(chǎng)
x004, 女子跳高,二操場(chǎng)
x005, 女子三千米,三操場(chǎng))
積分( 1001, x001, 6
1002, x001, 4
1003, x001, 2
1004, x001, 0
1001, x003, 4
1002, x003, 6
1004, x003, 2
1005, x004, 6
1006, x004, 4)
3. 完成如下查詢
athlete(a#,aname,sex,dno)
project(p#,pname,address)
grade(a#,p#,jf)
找出參加了張三所參加的所有項(xiàng)目的其他同學(xué)的姓名
SELECT ANAME
FROM W193_ATHLETE Y
WHERE NOT EXISTS
(SELECT * FROM W193_GRADE X
WHERE A# IN
(SELECT A# FROM W193_GRADE
WHERE A# IN (SELECT A# FROM W193_ATHLETE WHERE ANAME='張三' )
)
AND NOT EXISTS
(SELECT * FROM W193_GRADE WHERE A#=Y.A# AND P#=X.P# )
)
a) 求出目前總積分的系名,及其積分。
SELECT DNO,SUM(JF) AS JF
FROM W193_GRADE X,W193_ATHLETE Y
WHERE X.A#=Y.A#
GROUP BY DNO
HAVING SUM(JF)>=ALL
(SELECT SUM(JF)
FROM W193_GRADE X,W193_ATHLETE Y
WHERE X.A#=Y.A#
GROUP BY DNO
)
b) 找出在一操場(chǎng)進(jìn)行比賽的各項(xiàng)目名稱及其冠軍的姓名
SELECT PNAME,ANAME
FROM W193_ATHLETE X, W193_GRADE Y, W193_PROJECT Z
WHERE X.A#=Y.A# AND Z.P#=Y.P# AND
ADDRESS='一操場(chǎng)' AND JF>=ALL(SELECT MAX(JF) FROM W193_GRADE
WHERE P# IN (SELECT P# FROM W193_PROJECT WHERE ADDRESS='一操場(chǎng)')
GROUP BY P#)
c) 找出參加了張三所參加的所有項(xiàng)目的其他同學(xué)的姓名
SELECT ANAME
FROM W193_ATHLETE Y
WHERE A# NOT IN (SELECT A# FROM W193_ATHLETE WHERE ANAME='張三')
AND NOT EXISTS
(SELECT * FROM W193_GRADE X
WHERE A# IN
(SELECT A# FROM W193_GRADE
WHERE A# IN (SELECT A# FROM W193_ATHLETE WHERE ANAME='張三' )
)
AND NOT EXISTS
(SELECT * FROM W193_GRADE WHERE A#=Y.A# AND P#=X.P# )
)