- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
对于教学数据库的三个基本表
S(S#,SNAME,AGE,SEX)
SC(S#,C#,GRADE)
C(C#,CNAME,TEACHER)
试用 SQL的查询语句表达下列查询:
3.2.1 检索年龄小于 17 岁的女学生的学号和姓名
select s#,sname from S
where age<17 and sex=F;
3.2.2 检索男生所学课程的课程号和课程名
select c#,cname from C
where c# in (select distinct c#
from SC
where s# in (select s# from S where sex=M))
3.2.3 检索男生所学课程的任课老师的工号和姓名
select t#,tname from T
where t# in(select distinct t#
from C
where c# in(select distinct c#
from SC
where s# in(select s#
from S
where sex=1)));
3.2.4 检索至少选修两门课程的学生的学号
select s#
from SC
group by s#
having count(c#)>=2;
3.2.5 检索至少有学号为 S2 和 S4 所学的课程和课程名
select c#,cname
from C
where c# in((select c#
from sc where s#='S2')
intersect
(select c# from sc where s#='S4') ;)
3.2.6 检索 ‘WANG’同学不学的课程号
select c# from c
except
(select distinct c#
from sc
where s# =(select s# from s where sname='WANG'));
3.2.7 检索全部学生都选修的课程号和课程名
select c#,cname
from c
where not exists(select s#
from s
where # not in (select c# from sc where #=# ));
3.2.8 检索选修课程包含 'LIU'老师所授课程的全部课程的学生的学号和姓名
select s#,sname
from s
where not exists((select c#
from c
where t#=(select t#
from t
where tname='LIU')) except(select c# from sc where #=#) );
设有两个基本表 R(A,B,C)和 S(A,B,C),试用 SQL查询语句表达下列关
系代数表达式:
① R∪ S
② R∩S
③ R-S
④ R×S
⑤ π A,B(R)
(S)
π B,C
⑥ π1, 6(σ 3=4( R× S)
⑦π 1,2, 3(R
S) ⑧ R÷π C(S)
3=3
解:① (SELECT * FROM R)
UNION
(SELECT * FROM ;S)
(SELECT * FROM R)
INTERSECT
(SELECT * FROM ;S)
(SELECT * FROM R)
MINUS
(SELECT * FROM ;S)
SELECT *
SELECT , ,
FROM R, S
SELECT , FROM R, S
SELECT R.*( R.*表示 R 中全部属性)
⑧ R÷π C(S)的元组表达式如下:
{ t |(u)( v)(w)( R(u)∧ S(v)∧ R( w)∧ w[1]=u[1] ∧ w[2]=u[2]
w[3]=v[3] ∧ t[1]=u[1] ∧ t[2]=u[2] )}
据此,可写出 SELECT语句:
SELECT A, B
FROM R RX
WHERE NOT EXISTS
( SELECT *
FROM S
WHERE NOT EXISTS
( SELECT *
FROM R RY
WHERE = AND = AND ;=)
试叙述 SQL语言的关系代数特点和元组演算特点。
答: SQL的关系代数特点如下:
① 有关系代数运算的并、交、差、自然联接等运算符;
FROM 子句体现了笛卡尔积操作, WHERE子句体现了选择操作, SELECT 子句体现了投影操作。
FROM子句中的基本表名应视为 “元组变量”,属性名应视为“元组分量”;
② 有存在量词 EXISTS符号。
试用 SQL更新语句表达对题教学数据库中关系 S、 SC、C 的更新操作:
① 往关系 C 中插一个课程元组( 'C8','VC++','
文档评论(0)