一、设有一数据库,包括四个表:学生表(一、设有一数据库,包括四个表:学生表(Student Student Student)、课程表)、课程表(Course Course)、成绩表()、成绩表()、成绩表(Score Score Score)以及教师信息表()以及教师信息表()以及教师信息表(Teacher Teacher Teacher)。四)。四个表的结构分别如表1-1的表(一)的表(一)~~表(四)所示,数据如表1-2的表(一)的表(一)~~表(四)所示。用SQL 语句创建四个表并完成相关题目。
表1-1数据库的表结构
表(一)表(一)Student Student 属性名 数据类型 可否为
空
含 义 Sno
Char(3) 否
学号(主键)
Sname Char(8) 否 学生姓名 Ssex Char(2) 否 学生性别 Sbirthday datetime 可 学生出生年月
Class
Char(5) 可
学生所在班级
表(二)表(二)Course Course 属性名 数据类型 可否为空 含 义 Cno
Char(5)
否
课程号(主
键)
Cname Varchar(10) 否 课程名称 Tno Char(3) 否
教师编号(外键)
表(三)表(三)Score Score 属性名 数据类型 可否为空
含 义 Sno Char(3) 否 学号(外键) Cno
Char(5)
否
课程号(外键)
Degree Decimal(4,1) 可 成绩
主码:主码:Sno+ Cno Sno+ Cno 表(四)表(四)Teacher Teacher 属性名 数据类型 可否为
空 含 义 Tno
Char(3)
否 教师编号(主键) Tname Char(4) 否 教师姓名 Tsex Char(2) 否 教师性别 Tbirthday datetime 可 教师出生年月 Prof Char(6)
可
职称 Depart
Varchar(10) 否
教师所在部门
表1-2数据库中的数据
表(一)表(一)Student Student Sno Sname Ssex Sbirthday class 108 曾华 男 1977-09-01 95033
105 匡明 男 1975-10-02 95031 107 王丽 女 1976-01-23 95033 101 李军 男 1976-02-20 95033 109 王芳 女 1975-02-10 95031 103 陆君 男
1974-06-03
95031
表(二)表(二)Course Course
Cno Cname Tno 3-105 计算机导论 825 3-245 操作系统 804 6-166 数字电路 856 9-888 高等数学
831
表(三)表(三)Score Score Sno Cno Degree 103 3-245 86 105 3-245 75 109 3-245 68 103 3-1
05 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
表(四)表(四)Teacher Teacher
Tno Tname Tsex Tbirthday Prof Depart 804 李诚 男 1958-12-02 副教授
计算机系
856 张旭 男 1969-03-12 讲师 电子工程
系 825 王萍 女 1972-05-05
助教 计算机系 831 刘冰 女 1977-08-14
助教 电子工程
系
-- 1、查询、查询Student 表中的所有记录的Sname Sname、、Ssex 和Class 列。
select sname,ssex,class from student;
、查询教师所有的单位即不重复的Depart列。
-- 2、查询教师所有的单位即不重复的
select distinct depart from Teacher;
、查询Student表的所有记录。
-- 3、查询
select * from student;
select distinct from、查询Score表中成绩在60到80之间的所有记录。
-- 4、查询
select * from score where degree between 60 and 80;
,86或88的记录。
85,
、查询Score表中成绩为85
-- 5、查询
select * from score where degree in(85,86,88);
、查询Student表中“95031”班或性别为“女”的同学记录。
-- 6、查询
select * from student where class = '95031' or ssex='
女';
、以Class降序查询Student表的所有记录。
-- 7、以
select * from student order by class desc;
升序、Degree
Degree降序查询Score表的所有记录。
、以Cno升序、
-- 8、以
select * from score order by cno,degree desc;
-- 9、查询“95031”班的学生人数。、查询“95031”班的学生人数。
select class,count(*) as 学生人数学生人数 from student from student group by class having class='95031';
-- 10、查询、查询Score 表中的最高分的学生学号和课程号。(子查询或者排序)
select sno,cno,degree,
(select max(degree) from score) as maxscore--计算最高分
from score where degree= (select max(degree) from score);
-- 11、查询‘3、查询‘3
、查询‘3--105’号课程的平均分。 select avg(degree) as avgdegree
from score group by cno having cno='3-105';
-- 12、查询、查询Score 表中至少有5名学生选修的并以3开头的课程的平均分数。
select avg(degree) as avgdegree from score group by cno --按照课程分组取平均值 having cno= (select cno from score group by cno having count(*)>=5)--count(*)>=5)--至少有至少有5名学生选修的课程 and cno like '3%';--以3开头的课程
-- 13、查询最低分大于、查询最低分大于7070,最高分小于,最高分小于90的Sno 列。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论