IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 数据库实验四 -> 正文阅读

[大数据]数据库实验四

用Select语句检索下列问题,写成正确的Select语句并对检索结果进行截图(为便于实验结果的多样性,大家可以在STC的各个表中自行增加元组)。截图要求:包含SQL Server Management Studio的上菜单、右侧数据库菜单、查询编辑界面和结果显示,并要求结果的列名显示必须是无重复的、有意义的列名

1检索有薪水差额的任意两位教师的姓名及二者的工资差额;

select distinct T1.Tname,T2.Tname,T1.Salary-T2.Salary as'差额'
from Teacher as T1,Teacher as T2
where T1.Salary>T2.Salary

distinct //防止结果重复

Teacher as T1? ,Teacher as T2? ? ? //创建分表

2检索选修了001号课程的学生的学号和姓名;

select Student.S#,Sname
from Student,SC
where Student.S#=SC.S# and C#='001'

Student.S#? ? ? ? //?两个表都有同一域名时,要表明找的是那个表里的域名

Student.S#=SC.S#? ? ? ? ?// 链接两个表

3检索同时选修‘001’号课程的任意两位同学的学号、各自成绩和成绩差;

select S1.S#,S2.S#,S1.Score,S2.Score,S1.Score-S2.Score 
from SC as S1,SC as S2
where S1.S#=S2.S# and S1.C#='001' and S1.Score>S2.Score and S2.C#='001'  

Select Sname as '列明'? ? ? ? //自定义列明(域名)

4检索有两门及以上不及格课程同学的学号、姓名及该同学的平均成绩;

select Student.S#,Student.Sname,AVG(Score)
from Student,SC
where Student.S#=SC.S# and Score<60
group by Student.Sname,Student.S#
having COUNT(*)>1

group by? ? ? ? //将检索到的元组按照某一条件进行分类,具有相同条件值的元组划到一个组或一个集合中;

having COUNT(*)>1? ? ? ? //结果数量大于1

5当某同学001号课的成绩高于该课程平均成绩时,将该同学该门课成绩提高5%。

use SCT
update SC
set Score=Score*1.05
where C#='001' and Score>all(select AVG(Score)from SC where C#='001')

updata? ? ? ? //更新数据

Score>all(...)? ? ? ? //子句查询,

6找出001号课成绩不是最高的所有学生的学号、姓名和001号课成绩。

select Student.S#,Sname,Score
from Student,SC
where C#='001' and Student.S#=SC.S# and Score<some
(select Score from SC where C#='001')

>=all? ? 求最大? ? <=all? ?求最小? ? ?<same? 除了最大的? ? ? >same? ? ? 除了最小的

??7找出“全红婵”同学成绩最低的课程号、课程名及该课程成绩

select SC.C#,Course.Cname,Score
from Student,SC,Course
where  Student.S#=SC.S# and Sname='全红婵' and SC.C#=Course.C# 
and Score<=all (select Score from SC,Student 
where Student.S#=SC.S# and Sname='全红婵')

子查询锁定’全红婵‘的最低成绩,父查询锁定全红婵这门课

8列出选修了98030101号同学学过的所有课程的同学的学号和姓名;

 use SCT
select distinct Student.S#,Sname
from Student,SC
where C# in
(select C# from SC,Student where Student.S#='98030101')

9列出没学过“张五”老师讲授任何一门课程的所有同学的姓名;

select distinct Sname
from Student,SC
where Student.S#=SC.S# and C# not in
(select C# from Course,Teacher where Teacher.T#='张三')

not in(...)? ? ? ? //子查询,不在结果之中的

10新建Table: SCt(S#, C#, Score), 将检索到的成绩不及格同学的记录新增到该表中;

use SCT
create table SCt( S# char(20),C# char(20),Score char(20));use SCT
insert into SCt(S#,C#,Score)
select S#,C#,Score from SC
where Score<60

insert into? ? ? ? //新增元素,

11从SCt表中删除有两门不及格课程的所有同学;

delete from SCt 
where S# in(select S# from SCt 
where Score<60
group by S# 
having COUNT(*)=2)

delete? ? ? ? //删除元素

12找出001号课成绩最高的学生的学号、姓名和该同学的平均成绩;

use SCT
select  Student.S#,Sname,AVG(Score)'平均成绩'
from Student,SC where Student.S#=SC.S# and Student.S# in
(	select Student.S# from Student,SC
where Student.S#=SC.S# and Score>=all(select Score from SC where C#='001')
group by Student.S#,SC.S#,Student.Sname)
group by Student.S#,Student.Sname

在子查询中在嵌套一个子查询,子子查询锁定001最高成绩,子查询锁定这个人学号,父查询找出这个人的平均成绩

13将“马龙”同学001号课的成绩置为“该门课的平均成绩。我不理解

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-10-17 12:03:34  更:2021-10-17 12:05:25 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 2:49:15-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码