第1关 等值连接:求S表和J表城市相同的等值连接(列顺序还是按照S、J表)

sql
1
2
3
4
5
6
7
8
USE mydata;
#请在此处添加实现代码
########## Begin ##########
select *
from S,J
WHERE S.CITY = J.CITY

########## End ##########

第2关 查询供应情况,并显示供应商、零件和工程三者的名称

sql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
USE mydata;
#请在此处添加实现代码
########## Begin ##########
SELECT SNAME,PNAME,JNAME,QTY
FROM SPJ
JOIN S USING (SNO)
JOIN P USING(PNO)
JOIN J USING(JNO)

-- 第二种写法
SELECT SNAME,PNAME,JNAME,QTY
FROM SPJ
JOIN S ON SPJ.SNO = S.SNO
JOIN P ON SPJ.PNO = P.PNO
JOIN J ON SPJ.JNO = J.JNO
########## End ##########

第3关 找出上海厂商供应的所有零件号码

sql
1
2
3
4
5
6
7
8
USE mydata;
#请在此处添加实现代码
########## Begin ##########
SELECT DISTINCT PNO
FROM SPJ,S
WHERE SPJ.SNO = S.SNO AND S.CITY = '上海'

########## End ##########

第4关 找出使用上海产的零件的工程名称

sql
1
2
3
4
5
6
7
8
9
10
11
12
13
USE mydata;
#请在此处添加实现代码
########## Begin ##########
SELECT JNAME
FROM J
WHERE JNO IN(
    SELECT JNO
    FROM SPJ,S
    WHERE SPJ.SNO = S.SNO AND S.CITY = '上海'
)
ORDER BY JNAME DESC

########## End ##########

第5关 找出没有使用天津产的零件的工程号码

sql
1
2
3
4
5
6
7
8
9
10
11
USE mydata;
#请在此处添加实现代码
########## Begin ##########
SELECT JNO
FROM J
WHERE JNO NOT IN (
    SELECT JNO
    FROM SPJ,S
    WHERE SPJ.SNO = S.SNO AND S.CITY = '天津'
);
########## End ##########

第6关 求供应工程J1零件为红色的供应商号码SNO

sql
1
2
3
4
5
6
7
8
USE mydata;
#请在此处添加实现代码
########## Begin ##########
SELECT SNO
FROM SPJ,P
WHERE SPJ.JNO = 'J1' AND SPJ.PNO = P.PNO AND P.COLOR = '红';

########## End ##########

第7关 求没有使用天津供应商生产的红色零件的工程号 JNO

sql
1
2
3
4
5
6
7
8
9
10
11
12
USE mydata;
#请在此处添加实现代码
########## Begin ##########
SELECT JNO
FROM J
WHERE JNO NOT IN (
    SELECT DISTINCT JNO
    FROM SPJ,S,P
    WHERE  SPJ.SNO = S.SNO AND SPJ.PNO = P.PNO AND
        P.COLOR = '红' AND S.CITY = '天津'
)
########## End ##########

第8关 查询所有“红色”的15公斤及以上的零件名

sql
1
2
3
4
5
6
7
USE mydata;
#请在此处添加实现代码
########## Begin ##########
SELECT PNAME
FROM P
WHERE COLOR = '红' AND WEIGHT >= 15;
########## End ##########

第9关 查询工程名称中含有“厂”字的工程明细

sql
1
2
3
4
5
6
7
8
USE mydata;
#请在此处添加实现代码
########## Begin ##########
SELECT *
FROM J
WHERE JNAME LIKE '%厂';

########## End ##########