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 ...
随机推荐
- 团队项目之Scrum1
小组:BLACK PANDA 时间:2019.11.16 部分 得分项 分数 完成内容 第 1 篇 Scrum 冲刺博客 各个成员在 Alpha 阶段认领的任务 3 明日各个成员的任务安排 3 用户登 ...
- MySql 筛选条件、聚合分组、连接查询
筛选条件 比较运算符 等于: = ( 注意!不是 == ) 不等于: != 或 <> 大于: > 大于等于: >= 小于: < 小于等于: <= IS NULL I ...
- linux 性能调优工具参考 (linux performance tools)
之前发现几张图对于linux使用者有着较强的参考意义,下面对其进行简单备忘: # linux 静态信息查看工具 # linux 性能测试工具 benchmark # linux 性能观测工具 # li ...
- Android程序中,内嵌ELF可执行文件-- Android开发C语言混合编程总结
前言 都知道的,Android基于Linux系统,然后覆盖了一层由Java虚拟机为核心的壳系统.跟一般常见的Linux+Java系统不同的,是其中有对硬件驱动进行支持,以避开GPL开源协议限制的HAL ...
- Java核心(一)深入理解BIO、NIO、AIO
目标: BIO.NIO.AIO 的区别是什么? 同/异步.阻/非阻塞的区别是什么? 文件读写最优雅的实现方式是什么? NIO 如何实现多路复用功能? 一,IO的介绍: (1)IO的全称其实是:Inpu ...
- nginx--代理和负载均衡
nginx代理 nginx的代理分为正向代理和反向代理 正向代理指的是,一个位于客户端和原始服务器之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原 ...
- 终于把Apollo存储加密这件事搞定了
本文摘自于<Spring Cloud微服务 入门 实战与进阶>一书. 一些比较重要的配置信息,比如密码之类的敏感配置,我们希望将配置加密存储,保证安全性.Apollo框架本身没有提供数据加 ...
- Python连载51-网络编程基础知识
一.网络编程 1.网络.网络协议(一套规则) 2.网络模型: (1)七层模型-七层 物理层(比如网线.锚).数据链路层(比如电压电流).网络层.传输层.会话层.表示层.应用层(我们的活动基本都在这一层 ...
- 码云git常用命令
Git常用操作命令: 1) 远程仓库相关命令 检出仓库:$ git clone git://github.com/jquery/jquery.git 查看远程仓库:$ git remote -v 添加 ...
- GO 数组
一.数组(Array) 1.1 什么是数组 Go 语言提供了数组类型的数据结构. 数组是具有相同唯一类型的一组已编号且长度固定的数据项序列,这种类型可以是任意的原始类型例如整形.字符串或者自定义类型. ...