用sql写一个详细的学生选课系统
时间: 2023-12-24 22:03:48 浏览: 58
好的,以下是一个简单的学生选课系统的SQL示例:
```
CREATE TABLE students (
student_id INT PRIMARY KEY,
name VARCHAR(50),
age INT,
gender VARCHAR(10)
);
CREATE TABLE courses (
course_id INT PRIMARY KEY,
name VARCHAR(50),
teacher VARCHAR(50),
credit INT
);
CREATE TABLE student_courses (
student_id INT,
course_id INT,
PRIMARY KEY (student_id, course_id),
FOREIGN KEY (student_id) REFERENCES students(student_id),
FOREIGN KEY (course_id) REFERENCES courses(course_id)
);
-- 插入学生数据
INSERT INTO students (student_id, name, age, gender) VALUES
(1, '张三', 20, '男'),
(2, '李四', 21, '女'),
(3, '王五', 19, '男'),
(4, '赵六', 22, '女');
-- 插入课程数据
INSERT INTO courses (course_id, name, teacher, credit) VALUES
(1, '数学', '张老师', 4),
(2, '英语', '李老师', 3),
(3, '计算机', '王老师', 3),
(4, '物理', '赵老师', 4);
-- 学生选课
INSERT INTO student_courses (student_id, course_id) VALUES
(1, 1),
(1, 2),
(2, 2),
(3, 1),
(3, 3),
(4, 2),
(4, 4);
-- 查询某个学生的选课情况
SELECT students.name, courses.name, courses.credit
FROM students
JOIN student_courses ON students.student_id = student_courses.student_id
JOIN courses ON student_courses.course_id = courses.course_id
WHERE students.student_id = 1;
-- 查询某门课程的选课学生
SELECT students.name, courses.name, courses.credit
FROM students
JOIN student_courses ON students.student_id = student_courses.student_id
JOIN courses ON student_courses.course_id = courses.course_id
WHERE courses.course_id = 2;
```
这个系统包含了三个表:学生表(students)、课程表(courses)和学生选课表(student_courses)。学生表和课程表都包含了学生和课程的基本信息,学生选课表则记录了每个学生选了哪些课程。
在这个系统中,你可以使用INSERT语句来插入学生和课程的数据,使用INSERT语句来记录学生选课的情况。你也可以使用SELECT语句查询某个学生的选课情况,或者查询某门课程的选课学生。
阅读全文