当前位置:首页 > 数据库
供应商.所在城市=’上海’;
7)SELECT 工程号码 FROM 工程
WHERE NOT EXISTS(SELECT *
FORM 供应零件
WHERE 工程.工程代码=供应零件.工程代码 AND
供应商代码IN(SELECT供应商代码
FROM供应商
WHERE所在城市=‘天津‘));
8)UPDATE 零件 SET 颜色=‘蓝色‘ WHERE 颜色=‘红色’; 9)UPDATE 供应零件 SET 供应商代码= ' S3 '
WHERE 供应商代码= ' S5 ’AND工程代码= ' J4 ' AND 零件代码=‘P6 ' ; 10)DELETE
FROM 供应零件
WHERE 供应商代码= ' S2 ' ; DELETE FROM 供应商
WHERE 供应商代码= ' S2 ' ;
7. 关系数据模型如下:
学生 S ( SNO , SN , SEX , AGE ) ;
课程 C ( CNO,CN,PCNO ) , PCNO 为直接先行课号; 选课 SC ( SNO , CNO,GR),GR为课程考试成绩。 用 SQL 写出查询程序:
l)将选修课程“DB”的学生学号SNO,姓名SN建立视图 SDB 。 2)选修课程“DB”的学生姓名 SN 。 答:
1)CREATE VIEW SDB AS SELECT SNO , SN FROM S , SC , C
WHERE S . SNO = SC . SNO AND SC . CNO = C . CNO AND C . CN=’DB '; 或者
CREATE VIEW SDB AS SELECT SNO , SN FROM S
WHERE SNO = ( SELECT SNO
FROM SC
WHERE CNO=(SELECT CNO FROM C
WHERE CN=‘DB’));
2)SELECT SN
FROM S WHERE SNO =( SELECT SNO
FROMS SC
WHERE CNO =( SELECT CNO FROM C
WHERE CN =’DB ‘) ) ;
或者 SELECT SN FROMS S, SC , C
WHERE S . SNO =SC . SNO AND SC . CNO = C . CNO AND C . CN=’DB’;
8.学生表S 、课程表 C 和学生选课表 SC ,它们的结构如下,试用 SQL 完成下列操作。
S ( S#,SN , SEX , AGE , DEPT ) ; C ( C # , CN TEACHER ) ; SC ( S # , C # , CRADE ) .
其中,S#为学号, SN为姓名, SEX为性别, AGE为年龄, DEPT为系别, C #为课程号, CN为课程名,TEACHER 为任课教师,GRADE为成绩。
l)用 SQL 找出选修了“程军”老师教的所有课程的学生姓名。 2)用 SQL 找出“程序设计”课程成绩在 90 分以上的学生姓名。 3)检索所有比“王华”年龄大的学生姓名、年龄和性别。 4)检索选修课程“C2”的学生中成绩最高的学生的学号。 5)检索学生姓名及其所选修课程的课程号和成绩。
6)检索选修4 门以上课程的学生总成绩(不统计不及格的课程),并要求按总成绩的降序排列出来。
7)检索全是女同学选修的课程的课程号。
8)检索不学C6 课程的男学生的学号和姓名( S # , SN )。
9)把SC表中每门课程的平均成绩插到另一个已存在的表SC _ C ( CNO , CNAME , AVG_GRADE)中。其中,CNO为课程号, CNAME为课程名,AVG_GRADE为平均成绩。
10)从 SC 表中把吴老师的女学生选课元组删去。
11)从 SC 表中把数学课程中低于数学平均成绩的选课元组全部删去。 12)把吴老师的女同学选课成绩增加4%。 答:
1 ) SELECT S. SN
FROM S
WHERE NOT EXISTS ( SELECT *
FROM C
WHERE C . TEACHER = ‘程军’ AND NOT EXISTS
( SELECT *
FROM SC
WHERE SC.C#=C.C# AND SC.S井=S.S# ) ) ;
2 ) SELECT SN
FROM S , SC , C
WHERE S .S # = SC . S# AND SC . C # = C. C # AND GRADE > = 90 AND
CN =’程序设计’; 或者
SFLECT SN FROM S
WHERER S.S# IN ( SELECT S#
FROM SC
WHERE GRADE > =90 AND C.C# IN(
SELECT C# FROM C
WHERE CN=’程序设计’ ) ;
3 ) SELECT SN , AGE , SEX
FROM S S1
WHERE AGE > ( SELECT AGE
FROM S S2 WHERE SN =’王华’) ;
4 ) SELECT S #
FROM SC SC1
WHERE C # = ' C2 ' AND GRADE = ( SELECT MAX (G RADE )
FRROM SC SC2 WHERE C # =’C2’) ;
5 ) SELECT SN , C # , GRADE
FROM S , SC
WHERE S . S # = SC . S # ; 6 ) SELECT S # , SUM ( GRADE )
FROM SC
GROUP BY S# HAVING COUNT (C #)>= 4 ; 7 ) SELECT C #
FROM SC
WHERE C# NOT IN ( SELECT C #
FROM S, SC SC1
共分享92篇相关文档