数据库查询习题整理(一)

select * from student
select * from teacher
select * from course
select * from score

上面原有几个新建的表从中查询一些数据

--1、 查询Student表中的所有记录的Sname、Ssex和Class列。
select Sname,Ssex,Class from student

--2、 查询教师所有的单位即不重复的Depart列。用distinct去重
select distinct depart  from teacher

--3、 查询Student表的所有记录。
select *from student

--4、 查询Score表中成绩在60到80之间的所有记录。用between也可以用大于小于来做
select *from score where degree between 60 and 80

--5、 查询Score表中成绩为85,86或88的记录。用in来取离散的值
select *from score where degree in (85,86,88)

--6、 查询Student表中“95031”班或性别为“女”的同学记录。
select *from student where class='95031' or ssex='女'

--7、 以Class降序查询Student表的所有记录。
select *from student order by class desc

--8、 以Cno升序、Degree降序查询Score表的所有记录。
select *from score order by cno,degree desc

--9、 查询“95031”班的学生人数。count(*)统计函数统计有几个值
select count (*)from student where class='95031'

--10、查询Score表中的最高分的学生学号和课程号。

第一种方法:按分数排序,取top 1也就是取最高的
select top 1 sno,cno from score order by degree desc

--第二种方法:先查询出最高分,然后查询最高分的学号课程号
select sno,cno from score where degree=
(select max(degree)from score)

--11、查询‘3-105’号课程的平均分。利用avg统计函数
select AVG(degree)from score where cno='3-105'

--12、查询Score表中至少有5名学生选修的并以3开头的课程的平均分数。先要选出cno以3开头的,然后再进行分组求平均值
select AVG(degree)from score where cno like '3%' group by cno having count(*)>=5 

--13、查询最低分大于70,最高分小于90的Sno列。
select sno from score group by sno having MAX(degree)<90  and MIN(degree)>70

--14、查询所有学生的Sname、Cno和Degree列。先将student表和score表join起来,然后查询需要的列
select sname,cno,degree from student
join score on student.sno= score.sno

--15、查询所有学生的Sno、Cname和Degree列。
select sno,cname,degree from score
join course on score.cno=course.cno

--16、查询所有学生的Sname、Cname和Degree列。第一步写三个表,第二步join起来,第三步筛选需要的列
select sname,cname,degree
from student
join score on score .sno=student.sno
join course on score .cno=course.cno

--17、查询“95033”班所选课程的平均分。先将score和student两个表join起来,然后按照class条件筛选,最后求平均值
select AVG(degree)from score
join student on student .sno=score .sno
where class='95033'

--也可以用分组做:
select cno,avg(degree)from score where sno in
(select student.sno
from score
join student on student .sno=score .sno
where class='95033') group by cno

--18、假设使用如下命令建立了一个grade表:
select * from grade
create table grade(low  int,upp  int,rank  varchar(1))
insert into grade values(90,100,'A')
insert into grade values(80,89,'B')
insert into grade values(70,79,'C')
insert into grade values(60,69,'D')
insert into grade values(0,59,'E')
--现查询所有同学的Sno、Cno和rank列。
select sno,cno,rank from score
join grade on degree between low and upp

--19、查询选修“3-105”课程的成绩高于“109”号同学成绩的所有同学的记录。//无关子查询

先将student表和score表join起来,查询选修3-105课程的109号学生的成绩,然后选出选修3-105学生的成绩大于此成绩的同学记录
select *from student where sno in(
select sno from score where cno='3-105' and degree>
(select degree from score where cno='3-105'and sno='109'))

--20、查询score中选学多门课程的同学中分数为非最高分成绩的记录。//相关子查询

外层条件拿到里层进行比较,符合条件的查询返回

找出选修多门课程的同学的sno;里层查询找出每门课程的最高分,前天条件是里层的cno和外层的cno一样

select *from score a where sno in
(
  select sno from score group by sno having COUNT(*)>1
)
and degree not in
(
select MAX(degree) from score b where a.cno=b.cno group by cno
)

--21、查询成绩高于学号为“109”、课程号为“3-105”的成绩的所有记录。

先查询学号为109课程号为3-105的学生的成绩,然后查询score中分数大于此学生成绩的记录
select *from score where  degree>
(select degree from score where cno='3-105'and sno='109')

--22、查询和学号为108的同学同年出生的所有学生的Sno、Sname和Sbirthday列。

用year函数来取出sbirthday中的年份

查询sno=108同学的出生年份,查询出生年份等于此同学的学生的记录
select sno,sname,sbirthday from student where year(sbirthday) =
(select year(sbirthday) from student where sno='108')

--23、查询“张旭“教师任课的学生成绩。三个表join起来,然后满足条件tname为张旭
select *from score
join course on course.cno=score.cno
join teacher on  course.tno=teacher.tno
 where teacher.tname='张旭'

--24、查询选修某课程的同学人数多于5人的教师姓名。将teacher和course连接起来,然后查询人数多于5人的cno
select tname from teacher
join course on teacher.tno=course.tno
where course.cno in(
select cno from score group by cno having COUNT(*)>5 )

--25、查询95033班和95031班全体学生的记录。
select *from student where class='95033'or class='95031'

 

转载于:https://www.cnblogs.com/Alvin-ftd/p/3963405.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。
Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。
Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值