mysql综合_mysql综合性练习

本文通过创建和填充一个教育数据库,展示了SQL的基本操作,包括创建表、插入数据、查询学生、教师、课程和成绩信息。涉及的查询涵盖了学生基本信息、教师部门、成绩范围、课程平均分等多个方面,同时也涵盖了联表查询、聚合函数和条件过滤等复杂操作。
摘要由CSDN通过智能技术生成

题目描述

设定有一个数据库,里面有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。

db5ce5d5b9c16741c0c9d28d4443536b.png

学生表:

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','95033'),(105,'匡明','男','1995-10-2','95031'),

(107,'王丽','女','1996-1-23','95033'),(101,'李军','男','1996-2-20','95033'),

(109,'王芳','女','1995-2-10','95031'),(103,'陆君','男','1994-6-3','95031');

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);

学生表:

56758e07b572f3035984afef03419d96.png

教师表:

f4328939279f1db4f66cc0e37fdb4dc4.png

课程表:

e17d8dd0fe6e46d60b094d8b03f7bfbb.png

成绩表:

41b72c98c881ef647017c486b866efa8.png

四、sql题目

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

807b996296618b98b811d99c2f3b7e08.png

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

2c2142ba7edd2f59e5660b35a8bc7023.png

3、查询student表的所有记录

6e463a4a8872cfbb63781a739dba6921.png

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

3d21174af1e02e403c3327661acd9a6e.png

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

06af63c3bb6207c1e2c54e91d52a9bea.png

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

7744063743a8c2d17d670c9416bc60b9.png

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

635d9aaedbb2acdc008c1b90cfb3c817.png

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

69e5067aed1685c05c9ac015905cc3f7.png

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

31ffa707e597d359f645ceb85b226bd3.png

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

2a9fb72042b75439f17ba4878bce918d.png

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

9cd1440960853a1d2b4ed564f0efbc51.png

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

24774b5cca6567afddcdef8aebb7498f.png

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

521b0b9f46942638786988e6ce089dc5.png

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

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

dfa09cc95a995d8509f01cab32397d7e.png

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

5a5c5cb9bd465c6226c6f26c59f037cc.png

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

7a06fadaebe233b168add378dbb460bc.png

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

69d5ed758389b7971b62e8fed2102e87.png

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列)

bf0d028cbd872fa2af38e76158596d8b.png

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

8435cbcd7d8758c2dd18b45845aa79c5.png

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

1f49490cd6100e6928195bc267e3aa84.png

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

1f2fef878af5d9b3ac64aca8496684a4.png

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

60271308cb56984a60450d34174360c4.png

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

e7e76a5ead20a233afce408e95c28ced.png

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

3f64b0f26f90632ffa9ef85ef347fca9.png

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

348dbca23ac8b50b93ab58ef431175ac.png

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

bb4a0c00cbd97279fdd60a21c0deb724.png

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

c46c58c068cb60eecb1ca557c7eab3c3.png

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

7c6963b9b9d814a8d2623ba977539f10.png

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

732f15414cbd90ebe1ed691144ef7a76.png

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

5a4e0ec753fb739b23cd5a7631aef8ca.png

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

e5450f6c64cd5ce17852162566b874cb.png

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

35f83848e473117dbfb4945d6f7f9b6b.png

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

3e2be3f20d7f9d61123c056957a4e004.png

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

7a4cf986ebeda3546b4bc8f909e6eb94.png

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

083dd66f91040c1d9c5b6712a39765fb.png

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

fe022981ec26140014a17c3e0a8778b6.png

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

5249c2ab57255eb65fe7fcb252b6a381.png

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

5165f1d3db8c11788ef7441fffba9833.png

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

9e82f317d8cbbe7497855024aafa75ab.png

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

72284a82c386858529dfe178078e24ec.png

希望与广大网友互动??

点此进行留言吧!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值