当前位置: 澳门新濠3559 > 数据库 > 正文

 更简单的,其他都相同的学生冗余信息

时间:2019-12-27 19:58来源:数据库
SET FOREIGN_KEY_CHECKS=0;-- ------------------------------ Table structure for grade-- ----------------------------DROP TABLE IF EXISTS `grade`;CREATE TABLE `grade` ( `name` varchar(255) NOT NULL, `class` varchar(255) NOT NULL, `score` tiny
SET FOREIGN_KEY_CHECKS=0;

-- ----------------------------
-- Table structure for grade
-- ----------------------------
DROP TABLE IF EXISTS `grade`;
CREATE TABLE `grade` (
  `name` varchar(255) NOT NULL,
  `class` varchar(255) NOT NULL,
  `score` tinyint(4) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- ----------------------------
-- Records of grade
-- ----------------------------
INSERT INTO `grade` VALUES ('张三', '语文', '81');
INSERT INTO `grade` VALUES ('张三', '数学', '75');
INSERT INTO `grade` VALUES ('李四', '语文', '76');
INSERT INTO `grade` VALUES ('李四', '数学', '90');
INSERT INTO `grade` VALUES ('王五', '语文', '81');
INSERT INTO `grade` VALUES ('王五', '数学', '100');
INSERT INTO `grade` VALUES ('王五', '英语', '90');
SET FOREIGN_KEY_CHECKS=1;

查询所有同学的学号、姓名、选课数、总成绩

查询每门课都大于80分的同学的姓名:

查询至少有一门课与学号为“1001”的同学所学相同的同学的学号和姓名

select name, avg(score) as sc from grade g1 group by name having avg(score)>80 ;

SQL面试题

用一条SQL语句查出每门课都大于80分的学生的姓名,数据表结构如下:

查询没学过“叶平”老师课的同学的学号、姓名

 

查询每门功成绩最好的前两名

SELECT DISTINCT name FROM grade WHERE name NOT IN(SELECT DISTINCT name FROM grade WHERE score <=80);

查询姓“李”的老师的个数

SELECT name FROM grade GROUP BY name HAVING MIN(score) > 80;

澳门新濠3559 ,查询平均成绩大于60分的同学的学号和平均成绩

建表SQL如下:

查询各科成绩最高和最低的分:以如下形式显示:课程ID,最高分,最低分

 

删除除了自动编号不同, 其他都相同的学生冗余信息

 更简单的:

查询学过“叶平”老师所教的所有课的同学的学号、姓名

SELECT name FROM (SELECT COUNT(*) AS t,SUM(score) AS num,name FROM `grade` GROUP BY name) AS a WHERE a.num > 80*t;

查询学过“001”并且也学过编号“002”课程的同学的学号、姓名

 

用一条SQL语句,查询出每门课都大于80分的学生姓名

  更简单的:

查询各科成绩前三名的记录:(不考虑成绩并列情况)

查询平均分大于80的学生的姓名:

查询“001”课程比“002”课程成绩高的所有学生的学号

澳门新濠3559 1

查询没有学全所有课的同学的学号、姓名

查询学生平均成绩及其名次

成绩连续排列

查询所有课程成绩小于60分的同学的学号、姓名

删除学习“叶平”老师课的SC表记录

编辑:数据库 本文来源: 更简单的,其他都相同的学生冗余信息

关键词: