file-type

"2022年SQL常见面试题及解析"

DOC文件

75KB | 更新于2023-12-31 | 85 浏览量 | 1 下载量 举报 收藏
download 立即下载
2022年SQL常见面试题.doc中有两个问题需要回答: 问题1:用一条SQL语句查询出每门课都不小于80分的学生姓名name、课程名称kecheng、分数fenshu。 解答:根据提供的样例数据,可以使用以下SQL语句实现: ```SQL SELECT t1.name, t2.课程名称, t2.分数 FROM (SELECT DISTINCT name FROM 表名) t1 JOIN 表名 t2 ON t1.name = t2.姓名 WHERE t2.分数 >= 80; ``` 该语句首先通过子查询获得所有不重复的学生姓名,然后与原表进行JOIN操作,筛选出每门课都不小于80分的学生记录。 问题2:学生表中有冗余信息,删除除了自动编号不一样之外其他相似的学生冗余信息。 解答:根据提供的样例数据,可以使用以下SQL语句实现: ```SQL DELETE FROM 表名 WHERE 自动编号 NOT IN ( SELECT MIN(自动编号) FROM 表名 GROUP BY 学号, 姓名, 课程编号, 课程名称, 分数 ); ``` 该语句使用子查询找出每组相似的学生记录中最小的自动编号,然后在主表中删除其他相似的学生记录。这样可以保留每组相似记录中的一条,同时删除其他冗余信息。 综上所述,根据提供的面试题内容,可以生成如下总结: 2022年SQL常见面试题.doc中提供了两个关于SQL语句的问题。第一个问题要求使用一条SQL语句查询出每门课都不小于80分的学生姓名、课程名称和分数。根据提供的样例数据,我们可以利用子查询和JOIN操作来实现这个需求,首先在一个子查询中获取所有不重复的学生姓名,然后通过JOIN操作将该子查询的结果与原表中的记录进行匹配,并筛选出分数不小于80的记录。第二个问题要求删除学生表中除了自动编号不一样之外的其他相似的冗余信息。根据提供的样例数据,我们可以利用子查询和DELETE语句来实现这个需求,首先通过子查询找出每组相似记录中最小的自动编号,然后在主表中删除其他相似记录,从而保留每组相似记录中的一条而删除其他冗余信息。以上是对提供的面试题内容的总结。

相关推荐

智慧安全方案
  • 粉丝: 3921
上传资源 快速赚钱