关系数据库标准语言SQL练习题

发布时间 : 星期三 文章关系数据库标准语言SQL练习题更新完毕开始阅读

――――

(15)取出上海供应商不提供任何零件的工程的代号 SELECT DISTINCT JN FROM SPJB WHERE JN NOT IN

(SELECT DISTINCT SPJB.JN FROM SB,SPJB

WHERE SB.SN=SPJB.SN AND SB.CITY=“上海”)TO SCREEN; JN ―――― J2 J5 J6 ――――

(16)取出这样一些供应商代号,它们能够提供至少一种由红色零件的供应商提供的零件; SELECT DISTINCT SPJB.SN FROM PB,SPJB WHERE SPJB.PN IN

(SELECT SPJB.PN FROM SPJB,SB,PB

WHERE SB.SN=SPJB.SN AND PB.PN=SPJB.PN AND PB.COLOR=“红” TO SCREEN; SN ―――― S1 S2 S3 S4 S5 ――――

(17)取出由供应商S1提供零件的工程的代号: SELECT DISTINCT SPJB.JN FROM SB,PB,SPJB

WHIERE SB.SN=SPJB.SN AND PB.PN=SPJB.PN AND SB.SN=“S1” TO SCREEN; JN ———— J1 J4 ————

(18)取出所有这样的一些二元组,使得第1个城市的供应商为第2个城市的工程提供零件; SELECT DISTINCT SB.CITY,JB.CITY FROM SB,JB,SPJB WHERE SB.SN=SPJB.SN AND JB.JN=SPJB.JN TO SCREEN; CITY_A CITY_B

----------------------------------- 北京 广州 北京 南京 北京 上海 北京 武汉 南京 广州 南京 南京 南京 上海

上海 南京 上海 上海

-----------------------------------

(19)取出所有这样的三元组,使得第1个城市的供应商为第2个城市的工程提供指定的零件; SELECT DISTINCT SB.CITY,SPJB.PN,JB.CITY FROM SB,JB,SPJB WHERE SB.SN=SPJB.SN AND JB.JN=SPJB.JN TO SCREEN; CITY_A PN CITY_B

-------------------------------------- 北京 P3 广州 北京 P3 南京 北京 P3 上海 北京 P3 武汉 北京 P4 广州 北京 P5 广州 南京 P1 南京 南京 P2 广州 南京 P2 南京 南京 P3 南京 南京 P4 南京 南京 P5 南京 南京 P5 上海 南京 P6 广州 南京 P6 南京 上海 P1 南京 上海 P1 上海 上海 P6 南京 上海 P6 上海

--------------------------------------

(20)重复(19)题,但不检索两个CITY值相同的三元组。

SELECT DISTINCT SB.CITY,SPJB.PN,JB.CITY FROM SB,JB,SPJB WHERE SB.SN=SPJB.SN AND JB.JN=SPJB.JN AND SB.CITY<>JB.CITY TO SCREEN;

CITY_A PN CITY_B

-------------------------------------------- 北京 P3 广州 北京 P3 南京 北京 P3 上海 北京 P3 武汉 北京 P4 广州 北京 P5 广州 南京 P2 广州 南京 P5 上海 南京 P6 广州 上海 P1 南京 上海 P6 南京

---------------------------------------------

12.有样本表student、teacher、course 和score(如图),写出实现以下各题功能的SQL语句,并给出执行结果。 Student score

------------------------------------------------------- ------------------------------ NO NAME SEX BIRTHDAY CLASS NO CNO DEGREE

108 曾华 男 09/01/77 95033 103 3-245 86 105 匡明 男 10/02/75 95031 105 3-245 75 107 王丽 女 01/23/76 95033 109 3-245 68 101 李军 男 02/20/76 95033 103 3-105 92 109 王芳 女 02/10/75 95031 105 3-105 88 103 陆军 男 06/03/74 95031 109 3-105 76 101 3-105 64 101 3-105 91 101 3-105 78 101 6-166 85 101 6-166 79 101 6-166 81 teacher course

------------------------------------------------------------------- ------------------------------- NO NAME SEX BRITHDAY PROF DEPART CNO CNAME TNO

804 李诚 男 12/02/58 副教授 计算机 3-103 计算机导论 825 856 张旭 男 03/12/69 讲师 电子 3-245 操作系统 825 825 王萍 女 05/05/72 助教 计算机 6-166 数字电路 825 831 刘冰 女 08/14/77 助教 电子 9-888 高等数学 825 ⑴ 上列出至少有2名男生的班号。

SELECT class FROM student WHERE sex=“男” GROUP BY class HAVING COUNT(*)>=2 TO SCREEN; CLASS ------------- 95031 95033 -------------

⑵ 屏幕显示student表中不姓“王”的同学记录。

SELECT * FROM studen WHERE name not like “王%” TO SCREEN; NO NAME SEX BIRTHDAY CLASS

------------------------------------------------------------------------ 108 曾华 男 09/01/76 95033 105 匡明 男 10/02/75 95031 101 李军 男 02/20/76 95033 103 陆君 男 06/03/74 95031

------------------------------------------------------------------------ ⑶ 屏幕显示student表示每个学生的姓名和年龄。

SELECT name as “姓名”,year(date())-year(birthday)as“年龄” FROM student TO SCREEN; 姓名 年龄

----------------------- 曾华 23

匡明 24 王丽 23 李军 23 王芳 24 陆君 25

-----------------------

⑷ 屏幕显示student表中最大和最小的birthday日期值。

SELECT name,max(birthday),min(birthday) FROM student TO SCREEN; NAME MAX_BIRTHDAY MIN_BIRTHDAY

----------------------------------------------------------------------- 陆君 77.09.01 74.06.03

----------------------------------------------------------------------- ⑸ 以班号和年龄从大到小的顺序在屏幕上显示student表中的全部记录。 SELECT class,name,birthday FROM student DRDER BY class,birthday TO SCREEN; CLASS NAME BIRTHDAY

----------------------------------------------------- 95031 陆君 74.06.03 95031 王芳 75.02.10 95031 匡明 75.10.02 95033 王丽 76.01.23 95033 李军 76.02.20 95033 曾华 77.09.01

----------------------------------------------------- ⑹ 屏幕显示“男”教师及其所上的课程。

SELECT x.name,y.cname FROM teacher x,course y WHERE x.no=y.tno AND x.sex=“男” TO SCREEN; NAME CNAME

----------------------------------- 李诚 操作系统 张旭 数字电路

-----------------------------------

⑺ 在屏幕上列出最高分同学的no、cno和degree列。 SELECT no,cno,degree FROM score

WHERE degree=(SELECT max(degree) FROM score)TO SCREEN; NO CNO DEGREE

------------------------------------------ 103 3_105 92

------------------------------------------ ⑻ 在屏幕上列出和“李军”同性别的所有同学的name。 SELECT name FROM student

WHERE sex=(SELECT sex FROM student WHERE name=“李军”)TO SCREEN; NAME

------------------ 曾华 匡明

联系合同范文客服:xxxxx#qq.com(#替换为@)