mysql综合性练习
题目描述
设定有一个数据库,里面有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综合性练习的更多相关文章
- Mysql性能优化一
下一篇:Mysql性能优化二 mysql的性能优化无法一蹴而就,必须一步一步慢慢来,从各个方面进行优化,最终性能就会有大的提升. Mysql数据库的优化技术 对mysql优化是一个综合性的技术,主要包 ...
- MySQL优化概述
一. MySQL优化要点 MySQL优化是一门复杂的综合性技术,主要包括: 1 表的设计合理化(符合 3NF,必要时允许数据冗余) 2.1 SQL语句优化(以查询为主) 2.2 适当添加索引(主键索引 ...
- mysql优化之索引篇
对mysql优化是一个综合性的技术,主要包括 a: 表的设计合理化(符合3NF) b: 添加适当索引(index) [四种: 普通索引.主键索引.唯一索引unique.全文索引] c: 分表技术(水平 ...
- mysql优化小技巧
对mysql优化时一个综合性的技术,主要包括 a: 表的设计合理化(符合3NF) b: 添加适当索引(index) [四种: 普通索引.主键索引.唯一索引unique.全文索引] c: 分表技术(水平 ...
- MySQL简单优化
1:对 MySQL 优化是一个综合性的技术,主要包括: a.标的设计合理(符合 3NF) b.添加适当索引(index)(普通索引.主键索引.唯一索引 unique.全文索引) ...
- MySql优化方案
mysql优化方案总结 u Mysql数据库的优化技术 对mysql优化时一个综合性的技术,主要包括 a: 表的设计合理化(符合3NF) b: 添加适当索引(index) [四种: 普通索 ...
- mysql优化方案总结
u Mysql数据库的优化技术 对mysql优化时一个综合性的技术,主要包括 a: 表的设计合理化(符合3NF) b: 添加适当索引(index) [四种: 普通索引.主键索引.唯一索引u ...
- Mysql数据库性能优化(一)
参考 http://www.jb51.net/article/82254.htm 今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显.关于数据库的性能,这并不只是DBA才需要 ...
- mysql常见操作语句,建表,增删改查
用户操作 新建用户 grant 权限 on 数据库.表名 to 用户名@'访问地址' identified by "密码"; 新建一个可以远程访问数据库的用户 test, 密码:p ...
随机推荐
- FCC---Use the CSS Transform scale Property to Change the Size of an Element
To change the scale of an element, CSS has the transform property, along with its scale() function. ...
- HTTP中的Accept-Encoding、Content-Encoding、Transfer-Encoding、Content-Type
Accept-Encoding和Content-Encoding Accept-Encoding和Content-Encoding是HTTP中用来对采用何种压缩格式传输正文进行协定的一对header. ...
- MySQL数据库:在命令提示符中使用mysql
服务启动 在命令提示符中 启动mysql服务 net start mysql 停止mysql服务 net sotp mysql 通过命令行进入 mysql -u 用户名 -p 键入后会提示输入密码 如 ...
- python脚本实现音频m4a格式转成MP3格式
群里看到有人询问:谁会用python将微信音频文件后缀m4a格式转成mp3格式,毫不犹豫回了句:我会.然后就私下聊起来了 解决方法介绍如下: 工具:windows系统,python2.7,转换库ffm ...
- 教你两招用纯CSS写Tab切换
说到Tab切换,你可能首先想到的就是使用jQuery,短短几行代码就可以轻松搞定一个Tab切换. 而今天所要分享的,是使用 0 行JS代码来实现Tab切换! 具体效果如下: Tab切换 方法一:模 ...
- (入门SpringBoot)SpringBoot加接口操作日志好方法(九)
用Spring的切面去做,慕课网上的大神的小妙招,被我拷贝下来了.import org.aspectj.lang.JoinPoint; import org.aspectj.lang.annotati ...
- 使用scale等比例缩放图片
功能需求: 在下拉框中选择你所需要缩放的比例, 选择好了之后,图片会按照你选择的比例进行缩放 1==>如何获取select中option选中的值 在select添加事件change 和双向绑定v ...
- 如何解决android 通知栏不显示的问题
android 8.0 以后的版本,在创建通知栏的时候,加了一个channelId的东西.要想在上述版本中显示通知,总共分两步 1.创建Channel if (Build.VERSION.SDK_IN ...
- jenkins报错:Problem accessing /jenkins/. Reason: HTTP ERROR 404
这是一个Jenkins的Bug.临时解决方法是:在浏览器中手工输入:http://<ip>:<port>.不要访问"/jenkins"这个路径.
- python之大作业
一.题目要求 获得网页中A-Z所有名字并且爬取名字详情页中的信息,如姓名,性别,,说明等,并存放到csv中(网址:http://www.thinkbabynames.com/start/0/A) 现在 ...