经典sql面试及答案(50)

经典sql面试及答案(50)

(新链接)SQL 经典五十道题

联想笔记本数据库csdn1010

复习

重点知识/关键词

 

数据库准备

1.学生表  Student(S#,Sname,Sage,Ssex)

  • S# 学生编号
  • Sname 学生姓名
  • Sage 出生年月
  • Ssex 学生性别

2.课程表  Course(C#,Cname,T#)

  • C# 课程编号
  • Cname 课程名称
  • T# 教师编号

3.教师表  Teacher(T#,Tname)

  • T# 教师编号
  • Tname 教师姓名

4.成绩表  SC(S#,C#,score)

  • S# 学生编号
  • C# 课程编号
  • score 分数
create table Student(S# varchar(10),Sname nvarchar(10),Sage datetime,Ssex nvarchar(10))
insert into Student values('01' , '赵雷' , '1990-01-01' , '男')
insert into Student values('02' , '钱电' , '1990-12-21' , '男')
insert into Student values('03' , '孙风' , '1990-05-20' , '男')
insert into Student values('04' , '李云' , '1990-08-06' , '男')
insert into Student values('05' , '周梅' , '1991-12-01' , '女')
insert into Student values('06' , '吴兰' , '1992-03-01' , '女')
insert into Student values('07' , '郑竹' , '1989-07-01' , '女')
insert into Student values('08' , '王菊' , '1990-01-20' , '女')
create table Course(C# varchar(10),Cname nvarchar(10),T# varchar(10))
insert into Course values('01' , '语文' , '02')
insert into Course values('02' , '数学' , '01')
insert into Course values('03' , '英语' , '03')
create table Teacher(T# varchar(10),Tname nvarchar(10))
insert into Teacher values('01' , '张三')
insert into Teacher values('02' , '李四')
insert into Teacher values('03' , '王五')
create table SC(S# varchar(10),C# varchar(10),score decimal(18,1))
insert into SC values('01' , '01' , 80)
insert into SC values('01' , '02' , 90)
insert into SC values('01' , '03' , 99)
insert into SC values('02' , '01' , 70)
insert into SC values('02' , '02' , 60)
insert into SC values('02' , '03' , 80)
insert into SC values('03' , '01' , 80)
insert into SC values('03' , '02' , 80)
insert into SC values('03' , '03' , 80)
insert into SC values('04' , '01' , 50)
insert into SC values('04' , '02' , 30)
insert into SC values('04' , '03' , 20)
insert into SC values('05' , '01' , 76)
insert into SC values('05' , '02' , 87)
insert into SC values('06' , '01' , 31)
insert into SC values('06' , '03' , 34)
insert into SC values('07' , '02' , 89)
insert into SC values('07' , '03' , 98)

重点https://blog.csdn.net/yunqishequ1/article/details/78435314?utm_source=blogxgwz16

17、按平均成绩从高到低显示所有学生的所有课程的成绩以及平均成绩

18、及格率sum(case when 成绩>=60 then 1 else 0 end)

#18、查询各科成绩最高分、最低分和平均分:
#以如下形式显示:课程ID,课程name,最高分,最低分,平均分,及格率,中等率,优良率,优秀率
#及格为>=60,中等为:70-80,优良为:80-90

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
面试题目:请解释下SQL中的索引是什么,为什么使用索引可以提高查询效率? 最佳答案: 索引是用于加速数据库查询的一种数据结构。它是在数据库表中的一个特殊的对象,可以帮助数据库系统快速地定位到匹配某个条件的数据。 使用索引可以提高查询效率的原因有以下几点: 1. 减少数据扫描:当数据库表中的数据量非常大时,如果没有索引,查询时需要逐行扫描整个表,这样的话查询速度会非常慢。而有了索引后,数据库会根据索引的特性,直接定位到满足查询条件的数据行,大大减少了数据的扫描量。 2. 减少磁盘IO:数据库的数据通常存储在磁盘上,而磁盘IO是一个相对较慢的操作。使用索引可以减少磁盘IO的次数,因为索引通常会存储在内存中,只有在查询匹配的数据时才会去磁盘读取。 3. 优化排序和分组:在执行排序和分组操作时,如果有合适的索引,数据库可以直接利用索引的排序信息,避免对大量的数据进行排序。这样不仅可以提高查询速度,还可以减少内存的消耗。 4. 加速连接操作:在进行连接操作时,如果连接的字段有索引,可以减少连接的时间复杂度。数据库可以直接利用索引的信息定位到匹配的数据,而不需要全表扫描。 总的来说,索引是一种优化数据库查询的重要手段。通过选择合适的索引和优化查询语句,可以大幅提高查询效率,减少系统资源的消耗。但同时,索引也会占用一定的存储空间并引起更新操作的额外开销,因此在使用索引时需要平衡查询效率和维护成本。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值