微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

sqlserver面试中常用的sql语句

create database Text

go

 use Text

create table s

(

       S# int primary key,--代表学号

       SN varchar(10),--学员姓名

       SD varchar(30),--所属单位

       SA int  --学员年龄

)

 insert into s values(001,'张龙','鹏程集团',18)

 insert into s values(002,'赵虎','新星集团',19)

 insert into s values(003,'王朝','五粮液集团',17)

 insert into s values(004,'马汉','腾讯集团',22)

 insert into s values(005,'小桥','微软集团',30)

 insert into s values(006,'关羽','龙腾集团',64)

 insert into s values(007,'周瑜','荣归集团',60)

 insert into s values(008,'孙权','长兴国际',28)

create table sc

(

       S# int foreign key

              references s(s#),--学号

       C# varchar(5) foreign key

              references c(c#),--所选修课程的编号

       G int --学习成绩

)

insert into sc values(001,'c1',70)

insert into sc values(002,'c2',60)

insert into sc values(003,'c3',50)

insert into sc values(004,'c4',90)

insert into sc values(005,'c5',85)

insert into sc values(006,'c6',60)

insert into sc values(007,'c7',66)

insert into sc values(008,'c8',70)

create table c

(

       C# varchar(5) primary key,--课程编号

       CN varchar(20)--课程名称

)

select count(*)c# from c

insert into c values('c1','税收基础')

insert into c values('c2','软件')

insert into c values('c3','网络')

insert into c values('c4','数字动漫')

insert into c values('c5','网页')

insert into c values('c6','外贸')

insert into c values('c7','化学')

select * from c

--S (S#,SN,SD,SA)   S#,SA 分别代表学号、学员姓名、所属单位、学员年龄

--C (C#,CN )        C#,CN       分别代表课程编号、课程名称

--SC ( S#,C#,G )    S#,G     分别代表学号、所选修的课程编号、学习成绩

 

  -- 1. 使用标准sql嵌套语句查询选修课程名称为’税收基础’的学员学号和姓名

select s.s#,s.sn from s inner join sc

on s.s# = sc.s#

 inner join c

on sc.c# = c.c#

where c.cn = '税收基础'

  --2. 使用标准sql嵌套语句查询选修课程编号为’C2’的学员姓名和所属单位

select s.sn,s.sd from s inner join sc

on s.s# = sc.s#

where sc.c# = 'c2'

  --3. 使用标准sql嵌套语句查询不选修课程编号为’C5’的学员姓名和所属单位

select s.sn,s.sd from s inner join sc

on s.s# = sc.s#

where   sc.c# != 'c5'

--4. 使用标准sql嵌套语句查询选修全部课程的学员姓名和所属单位

select sn,sd from s where s# in(

select s.s# from s inner join sc

on s.s# = sc.s# group by s.sn,s.s#

having count(sc.c#) >= (select count(*) from c))

 

  --5. 查询选修了课程的学员人数

select count(*) from s where s# in (select s# from sc group by s#)

                           

  --6. 查询选修课程超过5门的学员学号和所属单位

select sn,sd from s where s# in(

select s.s# from s inner join sc on s.s# = sc.s# group by s.sn,s.s#

having count(sc.c#) >= 5)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐