maojianyun
2019-05-24 11:43:43
mysql最爱考到的sql笔试题
数据库比表:
CREATE TABLE `demo`.`student` ( `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '自动编号', `sno` bigint(20) NOT NULL COMMENT '学号', `name` varchar(15) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '学生姓名', `sex` int(2) NULL DEFAULT NULL COMMENT '1-男,2-女', `cno` bigint(20) NULL DEFAULT NULL COMMENT '课程号', `score` float(64, 0) NULL DEFAULT NULL COMMENT '分数', PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB AUTO_INCREMENT = 36 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Compact;
数据:
INSERT INTO `demo`.`student`(`sno`, `name`, `sex`, `cno`, `score`) VALUES (8, 'zhangsan8', 1, 2, 99); INSERT INTO `demo`.`student`(`sno`, `name`, `sex`, `cno`, `score`) VALUES (9, 'zhangsan9', 1, 1, 63); INSERT INTO `demo`.`student`(`sno`, `name`, `sex`, `cno`, `score`) VALUES (10, 'zhangsan10', 1, 6, 47); INSERT INTO `demo`.`student`(`sno`, `name`, `sex`, `cno`, `score`) VALUES (11, 'zhangsan11', 1, 1, 67); INSERT INTO `demo`.`student`(`sno`, `name`, `sex`, `cno`, `score`) VALUES (12, 'zhangsan12', 1, 7, 37); INSERT INTO `demo`.`student`(`sno`, `name`, `sex`, `cno`, `score`) VALUES (13, 'zhangsan13', 1, 1, 85); INSERT INTO `demo`.`student`(`sno`, `name`, `sex`, `cno`, `score`) VALUES (14, 'zhangsan14', 1, 7, 98); INSERT INTO `demo`.`student`(`sno`, `name`, `sex`, `cno`, `score`) VALUES (15, 'zhangsan15', 1, 1, 63); INSERT INTO `demo`.`student`(`sno`, `name`, `sex`, `cno`, `score`) VALUES (16, 'zhangsan16', 1, 6, 39); INSERT INTO `demo`.`student`(`sno`, `name`, `sex`, `cno`, `score`) VALUES (17, 'zhangsan17', 1, 1, 80); INSERT INTO `demo`.`student`(`sno`, `name`, `sex`, `cno`, `score`) VALUES (18, 'zhangsan18', 1, 2, 99); INSERT INTO `demo`.`student`(`sno`, `name`, `sex`, `cno`, `score`) VALUES (19, 'zhangsan19', 1, 1, 73); INSERT INTO `demo`.`student`(`sno`, `name`, `sex`, `cno`, `score`) VALUES (21, 'zhangsan20', 1, 7, 53); INSERT INTO `demo`.`student`(`sno`, `name`, `sex`, `cno`, `score`) VALUES (22, 'zhangsan21', 1, 1, 47); INSERT INTO `demo`.`student`(`sno`, `name`, `sex`, `cno`, `score`) VALUES (23, 'zhangsan22', 1, 6, 85); INSERT INTO `demo`.`student`(`sno`, `name`, `sex`, `cno`, `score`) VALUES (24, 'zhangsan23', 1, 1, 64); INSERT INTO `demo`.`student`(`sno`, `name`, `sex`, `cno`, `score`) VALUES (25, 'zhangsan24', 1, 2, 53); INSERT INTO `demo`.`student`(`sno`, `name`, `sex`, `cno`, `score`) VALUES (26, 'zhangsan25', 1, 2, 44); INSERT INTO `demo`.`student`(`sno`, `name`, `sex`, `cno`, `score`) VALUES (27, 'zhangsan26', 1, 6, 77); INSERT INTO `demo`.`student`(`sno`, `name`, `sex`, `cno`, `score`) VALUES (28, 'zhangsan27', 1, 7, 58); INSERT INTO `demo`.`student`(`sno`, `name`, `sex`, `cno`, `score`) VALUES (29, 'zhangsan28', 1, 7, 97); INSERT INTO `demo`.`student`(`sno`, `name`, `sex`, `cno`, `score`) VALUES (30, 'zhangsan29', 1, 6, 68); INSERT INTO `demo`.`student`(`sno`, `name`, `sex`, `cno`, `score`) VALUES (31, 'zhangsan30', 1, 2, 59); INSERT INTO `demo`.`student`(`sno`, `name`, `sex`, `cno`, `score`) VALUES (32, 'zhangsan31', 1, 1, 38); INSERT INTO `demo`.`student`(`sno`, `name`, `sex`, `cno`, `score`) VALUES (33, 'zhangsan32', 1, 2, 74); INSERT INTO `demo`.`student`(`sno`, `name`, `sex`, `cno`, `score`) VALUES (34, 'zhangsan33', 1, 6, 66); INSERT INTO `demo`.`student`(`sno`, `name`, `sex`, `cno`, `score`) VALUES (35, 'zhangsan34', 1, 7, 89);
查询:
1. 查询每们课程的最高分、最低分、平均分
SELECT t.cno, MAX( t.score ), min(t.score ), AVG(t.score ) FROM student t GROUP BY t.cno;
2. 查询每门课的最高分学生信息
SELECT temp.cno, s.sno, s.`name`, temp.maxScore FROM student s INNER JOIN ( SELECT s.cno, MAX( s.score ) maxScore FROM student s GROUP BY s.cno ) temp on s.cno = temp.cno WHERE s.score = temp.maxScore
3. 查查询每个本门的前三名
SELECT e1.* FROM student e1 WHERE ( SELECT count( 1 ) FROM student e2 WHERE e2.cno = e1.cno AND e2.score >= e1.score ) <= 3 ORDER BY cno, score DESC;
4. 查询每门课程都大于80分的学生信息
SELECT * FROM student s GROUP BY s.`name` having min(s.score) > 80
5. 删除自动编编号不同其他信息相同的学生
DELETE FROM student WHERE id NOT IN ( SELECT min( temp.id ) AS id FROM ( SELECT * FROM student s ) AS temp GROUP BY temp.cno, temp.sno, temp.score, temp.sno, temp.`name` );
评论
最近浏览
idm_Sure LV3
2022年6月28日
一定要上心
2021年11月9日
暂无贡献等级
噜噜噜路口 LV2
2021年6月16日
xuxu002_long LV8
2021年3月4日
wwwbl123 LV2
2021年2月19日
123gsdas LV8
2020年12月8日
xgs630981048 LV1
2020年11月30日
sumalagu LV1
2020年9月19日
就叫小黄好了
2020年8月11日
暂无贡献等级
取经少年 LV1
2020年8月11日