mysql综合性练习

database

题目描述

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

 

 学生表:

createtable student(

sno int(10),

sname varchar(10),

ssex varchar(10),

sbirthday date,

classid varchar(10)

);

altertable student addprimarykey(sno);

 

 教师表:

createtable teacher(

tno int(10),

tname varchar(12),

tsex varchar(10),

tbirthday date,

professional varchar(20),

department varchar(20)

);

altertable teacher addprimarykey(tno);

 

课程表:

createtable course(

cno varchar(10),

cname varchar(20),

tno int(10)

);

altertable course addprimarykey(cno);

altertable course addconstraint fk_course_teacher foreignkey(tno) references teacher(tno);

 

成绩表:

createtable score(

sno int(10),

cno varchar(10),

sdegree float(5)

);

altertable score addconstraint fk_score_student foreignkey(sno) references student(sno);

altertable score addconstraint fk_score_course foreignkey(cno) references course(cno);

 

三、添加数据

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

insertinto teacher(tno,tname,tsex,tbirthday,professional,department)

values(804,"李诚","","1978-12-2","副教授","计算机系"),

(856,"张旭","","1979-3-12","讲师","电子工程系"),

(825,"王萍","","1982-5-5","助教","计算机系"),

(831,"刘冰","","1984-8-14","助教","电子工程系");

insertinto course(cno,cname,tno)

values("3-105","计算机导论",825),("3-245","操作系统",804),

("6-166","数字电路",856),("9-888","高等数学",831);

insertinto 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综合性练习 的全部内容, 来源链接: utcz.com/z/531342.html

回到顶部