📄 sql.txt
字号:
看清楚下面的要求。理解好题目, 做下面的题目:
为管理岗位业务培训信息,建立3个表:
S (S#,SN,SD,SA) S#,SN,SD,SA分别代表学号、学员姓名、所属单位、学员年龄;
C (C#,CN ) C#,CN分别代表课程编号、课程名称;
SC ( S#,C#,G ) S#,C#,G分别代表学号、所选修的课程编号、学习成绩。
1.使用标准SQL嵌套语句查询选修课程名称为’JAVA基础教程’的学员学号和姓名
2.使用标准SQL嵌套语句查询选修课程编号为'c2’的学员姓名和所属单位
3.使用标准SQL嵌套语句查询不选修课程编号为’c5’的学员姓名和所属单位
4.使用标准SQL嵌套语句查询选修全部课程的学员姓名和所属单位
5.查询选修了课程的学员人数
6.查询选修课程超过5门的学员学号和所属单位
自己添加数据,自己建立表,全部自己写SQL 完成。不要用工具生成,自己写SQL建立表。
S 表的 SN 字段不能为空,为varchar2型,S# 为主键。
创建表S:
create table S
(
S# NUMBER not null,
SN VARCHAR2(30),
SD VARCHAR2(30) default '没有添写',
SA NUMBER
)
-- Add comments to the columns
comment on column S.S#
is '学生学号';
comment on column S.SN
is '学员姓名';
comment on column S.SD
is '所属单位';
comment on column S.SA
is '学员年龄';
创建主键:
alter table S
add constraint S_ID primary key (S#)
创建表 C:
create table C
(
C# VARCHAR2(30) not null,
CN VARCHAR2(50),
CTEACHER VARCHAR2(20)
)
-- Add comments to the columns
comment on column C.C#
is '课程编号';
comment on column C.CN
is '课程名称';
comment on column C.CTEACHER
is '老师';
创建表 C:
create table SC
(
S# VARCHAR2(20),
C# VARCHAR2(30),
G NUMBER
)
-- Add comments to the columns
comment on column SC.S#
is '学号';
comment on column SC.C#
is '课程编号';
comment on column SC.G
is '学习成绩';
第一个问题的答案:
SELECT S.S#,S.SN FROM S,SC,C WHERE S.S#=SC.S# AND SC.C#=C.C# AND C.CN='JAVA基础教程'
第二个问题的答案:
Select S.SN,S.SD FROM S,SC
Where S.S#=SC.S#
AND SC.C#='002'
第三个问题的答案:
SELECT S.SD, S.SN
FROM S
WHERE S.S# NOT IN (SELECT S#
FROM SC, C
WHERE SC.C# = C.C#
AND SC.C# = 'C2')
第四个问题的答案:
第一种写法:
select distinct S.SN, S.SD
from S,C,SC,(select count(*) num from C) t
where SC.S#=S.S# and
SC.C#=C.C#
having count(SC.C#)=t.num
group by S.SN, S.SD,t.num
第二种写法:
SELECT S.S#,S.SN,S.SD
FROM S
WHERE (SELECT COUNT(*) FROM SC WHERE S.S# = SC.S#) =
(SELECT COUNT(*) FROM C)
第五个问题的答案:
SELECT COUNT(DISTINCT SC.S#) FROM SC
第六个问题的答案:
select s.s#, s.sn, s.sd
from s
where s.s# in (select s# from sc group by s# having count(distinct sc.c#)>1)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -