创建下列表并创建相关约束

问题

1:查询出成绩表,而且student_id 后面要有对应的学生名,course_id 后面要有对应的课程名.

1 SELECT2 score.sid,3 score.student_id,4 student.sname,5 score.course_id,6 course.cname,7 score.number8 FROM score9 LEFT JOIN student10 ON student.sid =score.student_id11 LEFT JOIN course12 ON course.cid = score.course_id

参考答案

2:查询平均成绩大于60分的同学的学号和平均成绩

1 SELECT student_id,SUM(number)/COUNT(student_id) AS avg_number FROM score GROUP BY student_id HAVING avg_number>60;

View Code

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

1 SELECT student.sid,student.sname,COUNT(score.student_id),SUM(number) FROM student,score WHERE student.sid=score.student_id GROUP BY score.student_id

View Code

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

1 SELECT COUNT(*) FROM teacher WHERE tname LIKE "李%";

View Code

5:查询学过“李平”老师课的同学的学号、姓名

1 SELECT student.sid,student.sname FROM student,score WHERE student.sid=score.student_id AND score.course_id = (SELECT tid FROM teacher WHERE tname='李平老师');

View Code

6:查询学过“1”并且也学过编号“2”课程的同学的学号、姓名

1 SELECT student.sid,student.sname FROM student,score WHERE student.sid=score.student_id AND score.course_id IN (1,2) GROUP BY student.sname HAVING COUNT(*)=2;

View Code

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

1 SELECT2 sid,3 sname4 FROM student5 WHERE sid NOT IN(SELECT6 student.sid7 FROM score,8 student9 WHERE student.sid =score.student_id10 AND score.course_id IN(SELECT11 tid12 FROM teacher13 WHERE tname = '李平老师'));

View Code

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

1 SELECT student.sid,student.sname FROM student,score WHERE student.sid=score.student_id AND number<60 GROUP BY student.sname;

View Code

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

1 SELECT student.sid,student.sname FROM student,score WHERE student.sid=score.student_id GROUP BY student.sid HAVING COUNT(*)

View Code

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

1 SELECT *

2 FROM student,3 score4 WHERE student.sid =score.student_id5 GROUP BY student.sid6 HAVING score.course_id IN(SELECT7 score.course_id8 FROM score,9 student10 WHERE student.sid = 1

11 AND student.sid =score.student_id)12 AND student.sid != 1;

View Code

11:查询和“2”号的同学学习的课程完全相同的其他同学学号和姓名

1 SELECT2 student.sid,3 student.sname4 FROM student,5 score6 WHERE student.sid =score.student_id7 GROUP BY student.sid8 HAVING COUNT(student.sid) =(SELECT9 COUNT(*)10 FROM score11 WHERE student_id = 2)12 AND SUM(course_id) =(SELECT13 SUM(course_id)14 FROM score15 WHERE student_id = 2)16 AND student.sid != 2;

View Code

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

1 SELECT course_id,MAX(number),MIN(number) FROM score GROUP BY course_id;

View Code

13:查询每门课程被选修的学生数

1 SELECT course_id,COUNT(student_id) FROM score GROUP BY course_id;

View Code

14:查询出只选修了一门课程的全部学生的学号和姓名

1 SELECT student.sid,student.sname FROM score,student WHERE student.sid=score.student_id GROUP BY student_id HAVING COUNT(course_id)=1;

View Code

15:查询男生、女生的人数

1 SELECT gender,COUNT(gender) FROM student GROUP BY gender;

View Code

16:查询姓“张”的学生名单

1 SELECT sid,sname FROM student WHERE sname LIKE '张%';

View Code

17:查询同名同姓学生名单,并统计同名人数

1 SELECT sid,sname,COUNT(sname) FROM student GROUP BY sname HAVING COUNT(sname)>1;

View Code

18:查询每门课程的平均成绩,结果按平均成绩升序排列,平均成绩相同时,按课程号降序排列

1 SELECT course_id,AVG(number) FROM score GROUP BY course_id ORDER BY AVG(number) ASC ,course_id DESC;

View Code

19:查询平均成绩大于85的所有学生的学号、姓名和平均成绩

1 SELECT student.sid,student.sname,AVG(number) FROM score,student WHERE student.sid=score.student_id GROUP BY score.student_id HAVING AVG(number)>85;

View Code

20:查询课程名称为“生物”,且分数低于60的学生姓名和分数

1 SELECT2 student.sid,3 student.sname,4 score.number5 FROM score,6 student7 WHERE student.sid =score.student_id8 AND score.course_id =(SELECT9 cid10 FROM course11 WHERE cname = "生物")12 AND score.number < 60;

View Code

21:查询课程编号为3且课程成绩在80分以上的学生的学号和姓名

1 SELECT student.sid,student.sname,score.number FROM score,student WHERE student.sid=score.student_id AND score.course_id=3 AND number>80;

View Code

22:求选了课程的学生人数

1 SELECT COUNT(*) FROM (SELECT * FROM score GROUP BY student_id) AS e;

View Code

23:查询选修“刘海燕”老师所授课程的学生中,成绩最高的学生姓名及其成绩

1 SELECT student.sid,student.sname,MAX(number) FROM score,student WHERE student.sid=score.student_id AND score.course_id=(SELECT tid FROM teacher WHERE tname='刘海燕老师')

View Code

24:查询不同课程但成绩相同的学生的学号、课程号、学生成绩*****

1 SELECT * FROM score AS sc WHERE EXISTS(SELECT 1 FROM score WHERE number=sc.number AND course_id<>sc.course_id) ORDER BY number DESC;

View Code

25:查询至少选修两门课程的学生学号

1 SELECT student_id FROM score GROUP BY student_id HAVING COUNT(student_id)>=2;

View Code

26:查询“生物”课程比“物理”课程成绩高的所有学生的学号

1 SELECT2 a.student_id3 FROM (SELECT *

4 FROM score5 WHERE course_id =(SELECT6 cid7 FROM course8 WHERE cname = '生物')) AS a,9 (SELECT *

10 FROM score11 WHERE course_id =(SELECT12 cid13 FROM course14 WHERE cname = '物理')) AS b15 WHERE a.student_id =b.student_id16 and a.number > b.number;

View Code

创建表和数据

1 /*

2 Navicat Premium Data Transfer3

4 Source Server : localhost5 Source Server Type : MySQL6 Source Server Version : 50624

7 Source Host : localhost8 Source Database : sqlexam9

10 Target Server Type : MySQL11 Target Server Version : 50624

12 File Encoding : utf-8

13

14 Date: 10/21/2016 06:46:46AM15 */

16

17 SET NAMES utf8;18 SET FOREIGN_KEY_CHECKS =0;19

20 -- ----------------------------

21 -- Table structure for `class`22 -- ----------------------------

23 DROP TABLE IF EXISTS `class`;24 CREATE TABLE `class` (25 `cid` int(11) NOT NULL AUTO_INCREMENT,26 `caption` varchar(32) NOT NULL,27 PRIMARY KEY (`cid`)28 ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;29

30 -- ----------------------------

31 -- Records of `class`32 -- ----------------------------

33 BEGIN;34 INSERT INTO `class` VALUES ('1', '三年二班'), ('2', '三年三班'), ('3', '一年二班'), ('4', '二年九班');35 COMMIT;36

37 -- ----------------------------

38 -- Table structure for`course`39 -- ----------------------------

40 DROP TABLE IF EXISTS `course`;41 CREATE TABLE `course` (42 `cid` int(11) NOT NULL AUTO_INCREMENT,43 `cname` varchar(32) NOT NULL,44 `teacher_id` int(11) NOT NULL,45 PRIMARY KEY (`cid`),46 KEY `fk_course_teacher` (`teacher_id`),47 CONSTRAINT `fk_course_teacher` FOREIGN KEY (`teacher_id`) REFERENCES `teacher` (`tid`)48 ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;49

50 -- ----------------------------

51 --Records of `course`52 -- ----------------------------

53 BEGIN;54 INSERT INTO `course` VALUES ('1', '生物', '1'), ('2', '物理', '2'), ('3', '体育', '3'), ('4', '美术', '2');55 COMMIT;56

57 -- ----------------------------

58 -- Table structure for`score`59 -- ----------------------------

60 DROP TABLE IF EXISTS `score`;61 CREATE TABLE `score` (62 `sid` int(11) NOT NULL AUTO_INCREMENT,63 `student_id` int(11) NOT NULL,64 `course_id` int(11) NOT NULL,65 `num` int(11) NOT NULL,66 PRIMARY KEY (`sid`),67 KEY `fk_score_student` (`student_id`),68 KEY `fk_score_course` (`course_id`),69 CONSTRAINT `fk_score_course` FOREIGN KEY (`course_id`) REFERENCES `course` (`cid`),70 CONSTRAINT `fk_score_student` FOREIGN KEY (`student_id`) REFERENCES `student` (`sid`)71 ) ENGINE=InnoDB AUTO_INCREMENT=53 DEFAULT CHARSET=utf8;72

73 -- ----------------------------

74 --Records of `score`75 -- ----------------------------

76 BEGIN;77 INSERT INTO `score` VALUES ('1', '1', '1', '10'), ('2', '1', '2', '9'), ('5', '1', '4', '66'), ('6', '2', '1', '8'), ('8', '2', '3', '68'), ('9', '2', '4', '99'), ('10', '3', '1', '77'), ('11', '3', '2', '66'), ('12', '3', '3', '87'), ('13', '3', '4', '99'), ('14', '4', '1', '79'), ('15', '4', '2', '11'), ('16', '4', '3', '67'), ('17', '4', '4', '100'), ('18', '5', '1', '79'), ('19', '5', '2', '11'), ('20', '5', '3', '67'), ('21', '5', '4', '100'), ('22', '6', '1', '9'), ('23', '6', '2', '100'), ('24', '6', '3', '67'), ('25', '6', '4', '100'), ('26', '7', '1', '9'), ('27', '7', '2', '100'), ('28', '7', '3', '67'), ('29', '7', '4', '88'), ('30', '8', '1', '9'), ('31', '8', '2', '100'), ('32', '8', '3', '67'), ('33', '8', '4', '88'), ('34', '9', '1', '91'), ('35', '9', '2', '88'), ('36', '9', '3', '67'), ('37', '9', '4', '22'), ('38', '10', '1', '90'), ('39', '10', '2', '77'), ('40', '10', '3', '43'), ('41', '10', '4', '87'), ('42', '11', '1', '90'), ('43', '11', '2', '77'), ('44', '11', '3', '43'), ('45', '11', '4', '87'), ('46', '12', '1', '90'), ('47', '12', '2', '77'), ('48', '12', '3', '43'), ('49', '12', '4', '87'), ('52', '13', '3', '87');78 COMMIT;79

80 -- ----------------------------

81 -- Table structure for`student`82 -- ----------------------------

83 DROP TABLE IF EXISTS `student`;84 CREATE TABLE `student` (85 `sid` int(11) NOT NULL AUTO_INCREMENT,86 `gender` char(1) NOT NULL,87 `class_id` int(11) NOT NULL,88 `sname` varchar(32) NOT NULL,89 PRIMARY KEY (`sid`),90 KEY `fk_class` (`class_id`),91 CONSTRAINT `fk_class` FOREIGN KEY (`class_id`) REFERENCES `class` (`cid`)92 ) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=utf8;93

94 -- ----------------------------

95 --Records of `student`96 -- ----------------------------

97 BEGIN;98 INSERT INTO `student` VALUES ('1', '男', '1', '理解'), ('2', '女', '1', '钢蛋'), ('3', '男', '1', '张三'), ('4', '男', '1', '张一'), ('5', '女', '1', '张二'), ('6', '男', '1', '张四'), ('7', '女', '2', '铁锤'), ('8', '男', '2', '李三'), ('9', '男', '2', '李一'), ('10', '女', '2', '李二'), ('11', '男', '2', '李四'), ('12', '女', '3', '如花'), ('13', '男', '3', '刘三'), ('14', '男', '3', '刘一'), ('15', '女', '3', '刘二'), ('16', '男', '3', '刘四');99 COMMIT;100

101 -- ----------------------------

102 -- Table structure for`teacher`103 -- ----------------------------

104 DROP TABLE IF EXISTS `teacher`;105 CREATE TABLE `teacher` (106 `tid` int(11) NOT NULL AUTO_INCREMENT,107 `tname` varchar(32) NOT NULL,108 PRIMARY KEY (`tid`)109 ) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;110

111 -- ----------------------------

112 --Records of `teacher`113 -- ----------------------------

114 BEGIN;115 INSERT INTO `teacher` VALUES ('1', '张磊老师'), ('2', '李平老师'), ('3', '刘海燕老师'), ('4', '朱云海老师'), ('5', '李杰老师');116 COMMIT;117

118 SET FOREIGN_KEY_CHECKS = 1;

View Code

mysql题目_MySQL练习题相关推荐

  1. Mysql练习_mysql练习题

    一.数据准备 /* 数据导入: Navicat Premium Data Transfer Source Server : localhost Source Server Type : MySQL S ...

  2. mysql例题_mysql练习题1

    --为了方便做题创建了表--drop table if exists student;create table student( s_id bigint, s_name char(10), s_bir ...

  3. mysql练习题及答案_mysql练习题及答案.doc

    mysql练习题及答案 mysql练习题及答案 mysql查询语句练习题 Sutdent表的定义 字段名 字段描述 数据类型 主键 外键 非空 唯一 自增 Id 学号 INT 10 是 否 是 是 是 ...

  4. 互联网公司面试必问的mysql题目(下)

    这是mysql系列的下篇,上篇文章地址我附在文末. 什么是数据库索引?索引有哪几种类型?什么是最左前缀原则?索引算法有哪些?有什么区别? 索引是对数据库表中一列或多列的值进行排序的一种结构.一个非常恰 ...

  5. mysql数据库入门第二张试卷_2016计算机二级《MySQL数据库》练习题与答案

    2016计算机二级<MySQL数据库>练习题与答案 一.选择题 下列语句中,________不是表数据的基本操作语句. A)CREATE语句 B)INSERT语句 C)DELETE语句 D ...

  6. 2014年9月计算机二级mysql真题_2017年9月全国计算机二级MySQL考试章节练习题

    2017年9月全国计算机二级MySQL考试章节练习题 计算机二级考试成绩在"及格",即60~89分者,由教育部考试中心发合格证书,考试成绩在"优秀",即90~1 ...

  7. 互联网公司面试必问的mysql题目(上)

    又到了招聘的旺季,被要求准备些社招.校招的题库. 介绍:MySQL是一个关系型数据库管理系统,目前属于 Oracle 旗下产品.虽然单机性能比不上oracle,但免费开源,单机成本低且借助于分布式集群 ...

  8. mysql练习题解题_2016年计算机二级考试MySQL数据库章节练习题

    一.选择题 不可对视图执行的操作有_______. A)SELECT B)INSERT C)DELETE D)CREATE INDEX 二.填空题 1.在MySQL中,可以使用_______语句创建视 ...

  9. mysql查询的题目_mysql查询语句练习题

    一.设有一数据库,包括四个表:学生表(Student).课程表(Course).成绩表(Score)以及教师信息表(Teacher).四个表的结构分别如表1-1的表(一)~表(四)所示,数据如表1-2 ...

最新文章

  1. python线程池阻塞队列_福利又来啦!python多线程进阶篇
  2. 获取用户的IP地址的三个属性的区别
  3. 【C 语言】文件操作 ( 写文本文件 | Qt 创建 C 语言命令行项目 )
  4. Fiori 里周期性检查window size大小的变化
  5. 使用IntelliJ ..达2周,到目前为止一切正常
  6. 我的世界javamod怎么装_「装修细节」除了中央空调外的高颜值装空调大法
  7. hadoop 单机伪分布式安装步骤
  8. 【TensorFlow】TensorFlow是什么?
  9. 荣耀Magic 2 3D感光版来了,和苹果Face ID系统有何不同?
  10. Android 面试总结~~~
  11. python简明教程中备份脚本
  12. Dell笔记本周期性闪屏故障
  13. 局域网 广域网 IP TCP UDP
  14. 抓包工具QPA使用教程
  15. 【hadoop学习项目】10. 使用多级MR找出两两用户之间的共同好友
  16. word转pdf组合的图片出现灰线,如何处理
  17. 小程序“成语猜题”部分答案
  18. 佳能R3、佳能R5和佳能R6的区别
  19. 2022全网最全Java面试题-小米社招面试经验java,面试题整理(一面二面)
  20. 算法的数值稳定性实验报告用c语言,数值计算实验教案.doc

热门文章

  1. 【翻译】使用Ext JS设计响应式应用程序
  2. 基于FlashPaper的文档播放器
  3. MySQL字符集的基本类型与统一字符集
  4. 《C#本质论》读书笔记(十二)构造器 @ Lennon
  5. 几个常用SQL2000语句
  6. nodejs python 通信_Nodejs环境实现socket通信过程解析
  7. c++定义一个动态全局变量_静态链接与动态链接的宏观概述及微观详解
  8. 怎么快速写python自动化脚本_自动化脚本如何编写?
  9. 开发物体识别桌、_科研人员开发突破性的技术,允许盲人识别形状和物体
  10. linux 固定ip_linux固定IP