您的位置:首页 > 数据库 > SQL

SQL第一次内部培训-gosun

2016-03-28 20:16 591 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/lotus_lau/article/details/51000857

SQL第一次内部培训

              

SQL建表:

实体:S(Sno学号、Sname姓名、SD系、Sage年龄、Sex性别)                     学生             
             T(Tno教师工号,Tname教师名、Age年龄、 Sex性别)                    教师           
             C(Cno课程号,Cname课程名、Pcno先修课程号,Tno教师工号) 课程   
            SC(Sno学号、Cno课程号、   Grade得分)                                                学生选课


create table S
(
   Sno char(4),
   Sname varchar(10),
   SD    varchar(50),
   Sage  int,
   Sex   char(2)
)    --S(Sno学号、Sname姓名、SD系、Sage年龄、Sex性别)  学生
insert into S select '0001','张man','税务,20,'女'         union select '0002','区霞','体系',18,'女'
        union select '0003','丁立','计算机网络',22,'男' union select '0004','周萍','数学',20,'女'

go
select * from S
go
create table T
(
  Tno char(3),
  Tname varchar(10),
  Age  int,
  Sex char(2)
)
--T(Tno教师工号,Tname教师名、Age年龄、 Sex性别) 教师
insert into T select '001','梁勇,29,'男' union select '002','巫远',35,'男' union select '003','刘雪梦',32,'女'

go
select * from T
go
create table C
(
  Cno   char(4),
  Cname varchar(50),
  Pcno  char(4),
  Tno char(3)
)
go
--drop table C
--C(Cno课程号,Cname课程名、Pcno先修课程号,Tno教师号)      课程
insert into C select 'C001','关系代数','','003' union select 'C002','中国税制','','002'    union  select 'C003','体系管理','','001' union
              select 'C004','网络工程','','001' union select 'C005','微积分','C001','003'  union  select 'C006','宏观经济','C002','002'
go
select * FROM C
go
create table SC
(
  Sno   char(4),
  Cno   char(4),
  Grade int
)
--SC(Sno学号、Cno课程号、   Grade得分)       学生选课
insert into SC select '0001','C002',90 union select '0001','C006',96 union   --张man   中国税制、宏观经济
               select '0002','C003',96 union select '0002','C001',96 union   --区霞 体系管理、关系代数
               select '0003','C001',96 union select '0004','C001',96 union   --丁立 关系代数、网络工程
               select '0004','C001',87 union select '0004','C005',89         --周萍 关系代数、微积分       
               union select '0004','C005',96    
insert into SC select '0004','C005',96 

 

        课后作业:   

1.       查询学生课程数据库中“税务”系学生的学号、姓名及年龄;

 select S.Sno 学号,S.Sname 姓名,S.Sage 年龄,S.SD 专业   from S where SD='税务'

 

2.       查询数学系的所有学生的详细信息;

 select S.Sno 学号,S.Sname 姓名,S.Sage 年龄,S.Sex 性别,S.SD 专业   from S where SD='数学'

 

3.       查询学生的出生年份;

 select S.Sname 姓名,2016-S.Sage as 出生年份 from S

 

4.       查询选修了课程号为“C001”的学生号及学生姓名;

 select S.Sno 学号,s.Sname 姓名 from S,SC   where S.Sno=SC.Sno and SC.Cno='C001'

 

5.       查询选修课程名为“中国税制”的学生号及学生姓名;

 select S.Sno 学号,S.Sname 姓名 from S,SC,C    where S.Sno=SC.Sno and SC.Cno=C.Cno and Cname='中国税制'

 

6.       查询至少选修了课程号为“C001”和“C005”学生信息;

 select  distinct S.Sno 学号,S.Sname 姓名 from S,SC A,SC B   where S.Sno=A.Sno and  A.Cno='C001' and B.Cno='C005'

select sno,sname from S where sno in                -----祥哥写
(select distinct a.Sno from SC as a,SC as b
where a.Sno=b.Sno and a.Cno='C001' and b.Cno='C005')

7.       查询成绩在90分以上的同学学号、姓名;

select distinct S.Sno 学号,S.Sname 姓名 ,SC.Grade from S,SC
  where S.Sno=SC.Sno and SC.Grade>90

 

8.       查询课程“C001” 的最高分、最低分及最高低分之间的差距;

 select max(Grade) 最高分,min(Grade) 最低分,max(Grade)-min(Grade) 最高分与最低分之差
  from SC where Cno='C001' 

 

9.       查询比投资学最小年龄更小的其它系学生学号、年龄;

 select Sno 学号,Sname 姓名,Sage 年龄 from S where Sage<(select min(Sage)   from S where SD='税务') and SD<>'税务'

  

10.   查询其它系比投资学系张漫同学年龄小的学生姓名及年龄。

 select Sname 姓名,Sage 年龄 from S   where Sage<(select Sage from S where Sno='0001')

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: