CREATE DATABASE IF NOT EXISTS StudentCourseDB;
USE StudentCourseDB;
CREATE TABLE Student (
学号 VARCHAR(10) PRIMARY KEY,
姓名 VARCHAR(20) NOT NULL,
性别 ENUM('男','女') NOT NULL,
年龄 INT CHECK (年龄 > 0)
);
CREATE TABLE Course (
课程号 VARCHAR(10) PRIMARY KEY,
课程名 VARCHAR(30) NOT NULL,
学分 INT NOT NULL
);
CREATE TABLE SC (
学号 VARCHAR(10),
课程号 VARCHAR(10),
成绩 INT,
PRIMARY KEY (学号, 课程号),
FOREIGN KEY (学号) REFERENCES Student(学号),
FOREIGN KEY (课程号) REFERENCES Course(课程号)
);
INSERT INTO Student VALUES
('S001', '张三', '男', 20),
('S002', '李四', '女', 19),
('S003', '王五', '男', 21);
INSERT INTO Course VALUES
('C001', '数据库原理', 3),
('C002', '数据结构', 4);
INSERT INTO SC VALUES
('S001', 'C001', 85),
('S002', 'C001', 90),
('S003', 'C002', 78);
SELECT 姓名, 年龄 FROM Student WHERE 性别='男';
SELECT s.姓名, sc.成绩
FROM SC sc
JOIN Student s ON sc.学号 = s.学号
JOIN Course c ON sc.课程号 = c.课程号
WHERE c.课程名 = '数据库原理';
SELECT c.课程名, AVG(sc.成绩) AS 平均成绩
FROM SC sc
JOIN Course c ON sc.课程号 = c.课程号
GROUP BY c.课程号;
UPDATE Student SET 年龄 = 21 WHERE 学号 = 'S001';