题目描述

设定有一个数据库,里面有4张表:

  • 学生表(student)
  • 课程表(course)
  • 成绩表(score)
  • 教师信息表(teacher)

表结构如下:

表一_学生表(student)

属性名 数据类型 含 义
sno int 学号(主键)
sname varchar 学生姓名
ssex varchar 学生性别
sbirthday date 学生出生年月
classid varchar 学生所在班级

表二_课程表(course)

属性名 数据类型 含 义
cno varchar 课程号(主键)
cname varchar 课程名称
tno int 教师编号(外键)

表三_成绩表(score)

属性名 数据类型 含 义
sno int 学号(外键)
cno varchar 课程号(外键)
sdegree float 成绩

表四_教师表(teacher)

属性名 数据类型 含 义
tno int 编号(主键)
tname varchar 教师姓名
tsex varchar 教师性别
tbirthday date 教师出生年月
professional varchar 职称
department varchar 教师所在部门

二、创建数据库和表

先创建数据库mysql_test,并且设置这个数据库的编码字符集为utf-8。

 学生表:

create table student(
sno int(10),
sname varchar(10),
ssex varchar(10),
sbirthday date,
classid varchar(10)
); alter table student add primary key(sno);

 教师表:

create table teacher(
tno int(10),
tname varchar(12),
tsex varchar(10),
tbirthday date,
professional varchar(20),
department varchar(20)
); alter table teacher add primary key(tno);

课程表:

create table course(
cno varchar(10),
cname varchar(20),
tno int(10)
); alter table course add primary key(cno);
alter table course add constraint fk_course_teacher foreign key(tno) references teacher(tno);

成绩表:

create table score(
sno int(10),
cno varchar(10),
sdegree float(5)
); alter table score add constraint fk_score_student foreign key(sno) references student(sno);
alter table score add constraint fk_score_course foreign key(cno) references course(cno);

三、添加数据

insert into student (sno,sname,ssex,sbirthday,classid)
values(108,'曾华','男','1996-9-1',''),(105,'匡明','男','1995-10-2',''),
(107,'王丽','女','1996-1-23',''),(101,'李军','男','1996-2-20',''),
(109,'王芳','女','1995-2-10',''),(103,'陆君','男','1994-6-3',''); insert into teacher(tno,tname,tsex,tbirthday,professional,department)
values(804,'李诚','男','1978-12-2','副教授','计算机系'),
(856,'张旭','男','1979-3-12','讲师','电子工程系'),
(825,'王萍','女','1982-5-5','助教','计算机系'),
(831,'刘冰','女','1984-8-14','助教','电子工程系'); insert into course(cno,cname,tno)
values('3-105','计算机导论',825),('3-245','操作系统',804),
('6-166','数字电路',856),('9-888','高等数学',831); insert into score(sno,cno,sdegree) values
(103,'3-245',86),
(105,'3-245',75),
(109,'3-245',68),
(103,'3-105',92),
(105,'3-105',88),
(109,'3-105',76),
(101,'3-105',64),
(107,'3-105',91),
(108,'3-105',78),
(101,'6-166',85),
(107,'6-166',79),
(108,'6-166',81);

学生表:

教师表:

 课程表:

 成绩表:

四、SQL题目

1、查询所有学生的姓名,性别及班级编号

 2、查询教师所有的部门名称(即不重复的DEPART列)

3、查询student表的所有记录

4、查询score表中成绩在60到80之间的所有记录

5、查询score表中成绩为85,86或88的记录

6、查询student表中班级编号为"95031"或性别为"女"的同学记录

7、查询student表的所有记录,以班级编号降序排列

8、查询score表的所有记录,先按照cno升序排列,若相同则按照sdegree降序排列

9、查询班级编号为"95031"班级的学生人数

10、查询score表中的最高分的学生学号和课程号

11、查询编号为"3-105"的课程平均分

12、查询score表中至少有5名学生选修的并以3开头的课程的平均分数

13、查询每科成绩均在70到90之间的学生编号

注意:having 后面只能跟聚合函数,如avg、min、max、sum等聚合函数

14、查询所有学生的姓名,所选课程编号和成绩

15、查询所有学生的学号,所选课程名和成绩

16、查询所有学生的姓名,所选课程名和成绩

17、查询"95033"班同学所选每个课程的平均分

18、假设使用如下命令建立了一个GRADE表:

CREATE TABLE GRADE(
LOW INT(3),
UPP INT(3),
RANK VARCHAR(1)
);
INSERT INTO GRADE VALUES(90,100,'A');
INSERT INTO GRADE VALUES(80,89,'B');
INSERT INTO GRADE VALUES(70,79,'C');
INSERT INTO GRADE VALUES(60,69,'D');
INSERT INTO GRADE VALUES(0,59,'E');

– 现查询所有同学的学号,所选课程号和等级(RANK列)

19、查询"3-105"课程的成绩高于学号为109同学这科成绩的所有同学记录

20、查询1995年之后出生的所有学生所选学的课程名及成绩

21、查询与学号108同学同年出生的所有学生的学号,姓名和生日

22、查询"张旭"教师任课的学生成绩

23、查询选修某课程的同学人数多于5人的教师姓名

24、查询"95033"班和"95031"班全体学生的记录

25、查询存在有85分以上成绩的课程编号

26、查询出"计算机系"教师所教课程每一科成绩的平均分

27、查询"计算机系"与"电子工程系"不同职称的教师的姓名和职称

28、查询所有教师和同学的姓名,性别和生日

29、查询所有"女"教师和"女"同学的姓名,性别和生日

30、查询所有任课教师的姓名和部门

31、查询所有未讲课的教师的姓名和部门

32、查询student表中不姓"王"的同学记录

33、查询student表中每个学生的姓名和年龄

34、查询student表中最大和最小的生日值

35、查询student表中的全部记录,按照班级编号降序排列,班级编号若相同则按照生日降序排列

36、查询所有"男"教师及其所上的课程名称

37、查询和"李军"同性别并同班的同学信息

38、查询所有选修"计算机导论"课程的"男"同学的成绩表

39、查询出同时选择"3-245"和"3-105"的课程的学生信息

40、查询既没有选修"3-245"课程也没有选修"3-105"课程的学生信息

mysql综合性练习的更多相关文章

  1. Mysql性能优化一

    下一篇:Mysql性能优化二 mysql的性能优化无法一蹴而就,必须一步一步慢慢来,从各个方面进行优化,最终性能就会有大的提升. Mysql数据库的优化技术 对mysql优化是一个综合性的技术,主要包 ...

  2. MySQL优化概述

    一. MySQL优化要点 MySQL优化是一门复杂的综合性技术,主要包括: 1 表的设计合理化(符合 3NF,必要时允许数据冗余) 2.1 SQL语句优化(以查询为主) 2.2 适当添加索引(主键索引 ...

  3. mysql优化之索引篇

    对mysql优化是一个综合性的技术,主要包括 a: 表的设计合理化(符合3NF) b: 添加适当索引(index) [四种: 普通索引.主键索引.唯一索引unique.全文索引] c: 分表技术(水平 ...

  4. mysql优化小技巧

    对mysql优化时一个综合性的技术,主要包括 a: 表的设计合理化(符合3NF) b: 添加适当索引(index) [四种: 普通索引.主键索引.唯一索引unique.全文索引] c: 分表技术(水平 ...

  5. MySQL简单优化

    1:对 MySQL 优化是一个综合性的技术,主要包括:     a.标的设计合理(符合 3NF)     b.添加适当索引(index)(普通索引.主键索引.唯一索引 unique.全文索引)     ...

  6. MySql优化方案

    mysql优化方案总结 u       Mysql数据库的优化技术 对mysql优化时一个综合性的技术,主要包括 a: 表的设计合理化(符合3NF) b: 添加适当索引(index) [四种: 普通索 ...

  7. mysql优化方案总结

    u       Mysql数据库的优化技术 对mysql优化时一个综合性的技术,主要包括 a: 表的设计合理化(符合3NF) b: 添加适当索引(index) [四种: 普通索引.主键索引.唯一索引u ...

  8. Mysql数据库性能优化(一)

    参考 http://www.jb51.net/article/82254.htm 今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显.关于数据库的性能,这并不只是DBA才需要 ...

  9. mysql常见操作语句,建表,增删改查

    用户操作 新建用户 grant 权限 on 数据库.表名 to 用户名@'访问地址' identified by "密码"; 新建一个可以远程访问数据库的用户 test, 密码:p ...

随机推荐

  1. SAP SD如何将销售订单其它ITEM加入到一个已创建好的交货单里

    SAP SD如何将销售订单其它ITEM加入到一个已创建好的交货单里 如下的销售订单,有多个ITEM, 为其中的第一个ITEM创建了DN 80016362, 如果业务发现需要修改该交货单,将销售订单里的 ...

  2. Shell—输入输出重定向

    大多数 UNIX 系统命令从你的终端接受输入并将所产生的输出发送回​​到您的终端.一个命令通常从一个叫标准输入的地方读取输入,默认情况下,这恰好是你的终端.同样,一个命令通常将其输出写入到标准输出,默 ...

  3. 面向对象程序设计(JAVA) 第14周学习指导及要求

    2019面向对象程序设计(Java)第14周学习指导及要求 (2019.11.29-2019.12.2)   学习目标 (1)掌握GUI布局管理器用法: (2)掌握Java Swing文本输入组件用途 ...

  4. CF620C Pearls in a Row

    CF620C Pearls in a Row 洛谷评测传送门 题目描述 There are nn pearls in a row. Let's enumerate them with integers ...

  5. 关于scanf的一些知识

    10.22,对现阶段已知道的scanf的一些用法或注意事项的一些总结: 1.scanf中,赋值的那个数据前面一定加&! 2.若情景要求必须输入空格的,scanf("%d%c%d&qu ...

  6. celery定时器

    Celery 1.什么是Clelery Celery是一个简单.灵活且可靠的,处理大量消息的分布式系统 专注于实时处理的异步任务队列 同时也支持任务调度 Celery架构 Celery的架构由三部分组 ...

  7. 基于Django的Rest Framework框架的url控制器

    本文目录 一 自定义路由(原始方式) 二 半自动路由(视图类继承ModelViewSet) 三 全自动路由(自动生成路由) 回到目录 一 自定义路由(原始方式) from django.conf.ur ...

  8. Feign原理 (图解)

    疯狂创客圈 Java 高并发[ 亿级流量聊天室实战]实战系列 [博客园总入口 ] 疯狂创客圈 正在进行分布式和高并发基础原理的研习,进行已经发布一些基础性的文章: 一.版本1 :springcloud ...

  9. 多网卡做team

    简明的说,就是把多个物理网卡绑定成一个逻辑上的网卡,以增加带宽,或者实现主备功能,增加硬件冗余,以实现更高的系统稳定性,目前主要有bond和team两种做法,而bond主要是针对双网卡的情况来说,而t ...

  10. 《js高程》笔记总结二(变量,作用域,内存问题)

    理解基本类型和引用类型的值,理解执行环境,理解垃圾收集 基本类型的值和引用类型的值 基本类型:简单的数据段,引用类型:指可能由多个值构成的对象(在将一个值赋值的时候,解析器必须知道这个值是基本类型值还 ...