数据库练习题:学生表(学号,姓名,性别,系部,年龄)选课表(学号,课程号,成绩)课程表(课程号,课程名,学分)

时间:2021-11-23 00:28:45

数据库中有如下三个表:

学生表(学号,姓名,性别,系部,年龄)选课表(学号,课程号,成绩)课程表(课程号,课程名,学分)

(1)、写出创建以上三个表的sq语句

(2)、从选课表中查询所有选课信息,即学号、课程号、成绩,并给成绩加8分

(3)、从选课表中查询选修课程号C02且该]课程考试及格的学生的学号

(4)、查找成绩介于80和90之间的学生姓名,结果按成绩和姓名升序排序

(5)、查找成绩高于90分的学生姓名、学号及系别

答案:

-- (1)创建表
create table student(            -- 学生表
    S_no char(9) primary key,           -- 学号 设置主键
    S_name char(20),                    -- 姓名
    S_sex char(2),                      -- 性别
    S_department char(20),              -- 系部
    S_age int                           -- 年龄
);
create table course (            -- 选课表
    C_no char(10) primary key,         -- 学号
    C_course char(20),                 -- 课程号
    C_grade char(20)                  -- 成绩
);
create table choice (            -- 课程表
    C_course char(9) primary key,      -- 课程号
    C_course_name char(10),            -- 课程名
    C_score int                        -- 学分
);

-- (2)从选课表中查询所有选课信息,即学号、课程号、成绩,并给成绩加8分
select S_no, C_course, C_grade=C_grade+8 from course;

-- (3)从选课表中查询选修课程号C02且该课程考试及格的学生的学号
select C_no, C_course from course;
where C_course='C02' and C_grade>=60;

-- (4)、查找成绩介于80和90之间的学生姓名,结果按成绩和姓名升序排序
select student.S_name
from course join student on student.S_no=course.C_no
where course.C_grade between 80 and 90
order by course.C_grade, student.S_no;

-- (5)、查找成绩高于90分的学生姓名、学号及系别
select student.S_name, student.S_no, student.S_department
from student join course on student.S_no=course.C_no
where course.C_grade>=90;