【实验四】【使用Select 语句查询数据】

数据

这里为了体现查询语句的效果,下面根据查询语句的要求设计数据,结果如下:

KC表:
在这里插入图片描述

XSQK表:
在这里插入图片描述

XS_KC表:
在这里插入图片描述

  1. 打开“SQL Server Management Studio”窗口。
  2. 单击“标准”工具栏的“新建查询”按钮,打开“查询编辑器”窗口
  3. 在窗口中输入以下SQL查询命令并执行:

一、简单查询

a.在KC表中,查询第2学期开课的课程、授课教师

select  课程名, 授课教师, 开课学期
from  kc
where  开课学期=2

在这里插入图片描述

b.在XSQK表中,查询女同学的姓名和电话号码

select  姓名, 性别, 联系电话
from  xsqk
where  性别='女'

在这里插入图片描述

c.在XS_KC表中,查询成绩在80分以上的学号、课程号和成绩

select  学号, 课程号, 成绩
from  xs_kc
where  成绩>=80

在这里插入图片描述

d.在XS_KC表中,查询在80以上和不及格学生的信息

select  学号, 课程号, 成绩
from  xs_kc
where  成绩>=80  or 成绩<60

在这里插入图片描述

e.在XSQK表中,查询不在1980年7、8、9月出生的学生信息

select  学号, 姓名, 出生日期
from  xsqk
where  出生日期 not  between '1980-07-07' and '1980-09-30'

在这里插入图片描述

f. 在XSQK表中,查询陈姓且单名的信息

select  *
from  xsqk
where  姓名  like  '陈_'

在这里插入图片描述

g.在XSQK表中,查询学号中含有1的记录信息

select  *
from  xsqk
where  学号 like '%1%'

在这里插入图片描述

h.在XSQK表中,查询电话号码中非末位含有4或6的记录信息

select  *
from  xsqk
where  联系电话  like  '%[4,6]%[^4,6]'

在这里插入图片描述

i.在KC表中,查询第一、三、五学期开设的课程信息

select  *
from  kc
where  开课学期 in (1, 3, 5)

在这里插入图片描述

j.查询XSQK表,输出学号、姓名、出生日期、并使查询结构按出生日期升序排列

select 学号, 姓名, 出生日期
from  xsqk    order  by  出生日期

在这里插入图片描述

二、汇总查询

a.在KC表中,统计每学期的总分数

select  开课学期, sum(学分)  as  '各学期的学分合计'
from  kc
group by  开课学期

在这里插入图片描述

b.在XS_KC表中,统计每个学生的选修课程的门数

select  学号, count(*)  as  '每个学生选修的课程门数'
from  xs_kc
group by  学号

在这里插入图片描述

c.将XS_KC表中的数据记录按学号分类汇总,输出学号和平均分

select 学号, avg(成绩)  as  '学生的平均分'
from  xs_kc
group by  学号

在这里插入图片描述

d.查询平均分大于70且小于80的学生学号和平均分

select  学号, avg(成绩)  as  '学生的平均分'
from  xs_kc
group by  学号
having  avg(成绩)  between  70  and  80

在这里插入图片描述

e.查询XS_KC表,输出学号、课程号、成绩,并使查询结果首先按照课程号的升序排列,当课程号相同时再按照成绩降序排列,并将查询结果保存到新表TEMP_KC中

select  学号, 课程号, 成绩
into  temp_kc
from  xs_kc
order by  课程号, 成绩 desc

在这里插入图片描述
这里因为数据没有考虑周全,暂时没有体现“当课程号相同时再按照成绩降序排列”。

f.查询选修了“101”课程的学生的最高分和最低分

select  max(成绩)  as  '101课程的最高分', min(成绩)  as  '101课程的最低分'
from  xs_kc
where  课程号='101'

在这里插入图片描述

g.统计每个学期所开设的课程门数

select  开课学期, count(*)  as  '每学期开设的课程门数'
from  kc
group by  开课学期

在这里插入图片描述

h.查询各专业的学生人数

select  专业名, count(专业名)  as  '各专业人数'
from  xsqk
group by  专业名

在这里插入图片描述

三、连接查询和子查询

a.查询不及格学生的学号、课程名、授课教师、开课学期的信息

select  学号, xs_kc.课程号, 授课教师, 开课学期, 成绩
from  kc, xs_kc
where  kc.课程号=xs_kc.课程号  and 成绩<60

在这里插入图片描述

b.按学号分组汇总总分高于100的学生记录,并按总分的降序排列

select  学号, sum(成绩)  as  '各学生的总分'
from  xs_kc
group by  学号
having  sum(成绩)>=100
order by  sum(成绩)  desc

在这里插入图片描述

c.使用子查询求恰好有两门课程不及格的学生信息

select  学号, 姓名
from  xsqk
where  (select  count(课程号)
from  xs_kc
where   xsqk.学号=xs_kc.学号 and 成绩<=60 )=2

在这里插入图片描述

d.使用子查询查询每门课程的最高分的学生记录

select  *
from  xs_kc  a
where 成绩=(select  max(成绩)
from  xs_kc  b
where  b.课程号=a.课程号)

在这里插入图片描述

e.使用子查询查询每个学生的最低分的课程记录

select  *
from  xs_kc  a
where 成绩=(select  min(成绩)
from  xs_kc  b
where  b.学号=a.学号)

在这里插入图片描述

  • 10
    点赞
  • 50
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值