数据库试题:学生、课程和成绩表操作

1. 创建学生表、课程表、成绩表,并添加数据

创建学生表:

CREATE TABLE student(
  sno INT PRIMARY KEY,
  sname VARCHAR(20),
  sex VARCHAR(10),
  birthday DATE,
  depart VARCHAR(20)
);

插入数据:

INSERT INTO student(sno, sname, sex, birthday, depart) VALUES
(1001, '李明', '男', '2002-03-15', '计算机系'),
(1002, '张然', '女', '2003-11-05', '经管系'),
(1003, '许晴', '女', '2002-08-11', '电子系');

创建课程表:

CREATE TABLE course(
  cno CHAR(3) PRIMARY KEY,
  cname VARCHAR(20),
  credit INT
);

插入数据:

INSERT INTO course(cno, cname, credit) VALUES
('001', 'MySQL数据库', 4),
('002', '线性代数', 3),
('003', '专业英语', 2);

创建成绩表:

CREATE TABLE score(
  sno INT,
  cno CHAR(3),
  grade INT,
  PRIMARY KEY(sno, cno),
  FOREIGN KEY(sno) REFERENCES student(sno),
  FOREIGN KEY(cno) REFERENCES course(cno)
);

插入数据:

INSERT INTO score(sno, cno, grade) VALUES
(1001, '001', 90),
(1002, '001', 85),
(1002, '002', 76),
(1003, '003', 70);

2. SQL语句操作

(1) 查询MySQL数据库成绩为良好(80~89分)的学生:

SELECT s.sno, s.sname
FROM student s
JOIN score sc ON s.sno = sc.sno
WHERE sc.grade BETWEEN 80 AND 89;

(2) 把course表中课程号为002的课程的学分修改为4:

UPDATE course
SET credit = 4
WHERE cno = '002';

(3) 在student表中查询2002年出生的学生的所有信息,并按学号降序排列:

SELECT *
FROM student
WHERE YEAR(birthday) = 2002
ORDER BY sno DESC;

(4) 查询年龄最大的2名学生的学号、姓名和出生日期:

SELECT sno, sname, birthday
FROM student
ORDER BY birthday DESC
LIMIT 2;

(5) 查询选修了“专业英语”课程的学生的学号、姓名及成绩:

SELECT s.sno, s.sname, sc.grade
FROM student s
JOIN score sc ON s.sno = sc.sno
JOIN course c ON sc.cno = c.cno
WHERE c.cname = '专业英语';

(6) 统计每个学生的平均分:

SELECT s.sno, s.sname, AVG(sc.grade) AS average_grade
FROM student s
JOIN score sc ON s.sno = sc.sno
GROUP BY s.sno, s.sname;

3. 在score表后增加一列成绩等级grade,将90及以上列为“优秀”,80~89列为良好,70~79列为中等,60~69为及格,否则为不及格:

ALTER TABLE score
ADD COLUMN grade_level VARCHAR(10);

UPDATE score
SET grade_level = CASE 
  WHEN grade >= 90 THEN '优秀'
  WHEN grade >= 80 AND grade <= 89 THEN '良好'
  WHEN grade >= 70 AND grade <= 79 THEN '中等'
  WHEN grade >= 60 AND grade <= 69 THEN '及格'
  ELSE '不及格'
END;

注意: 以上SQL语句是在MySQL数据库环境下执行的,如果使用其他数据库,请根据相应数据库的语法进行调整。

数据库试题:学生、课程和成绩表操作

原文地址: https://www.cveoy.top/t/topic/o2Y2 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录