为 Student、Course、SC 三张表添加数据
时间: 2024-10-10 15:06:44 浏览: 26
在为Student、Course、SC(学生选课)这三张表添加数据之前,我们需要知道每张表的基本结构。例如,Student表可能包含字段如ID(学号)、Name(姓名)、Age(年龄),Course表可能有课程ID(CID)、CourseName(课程名),而SC表可能包括StudentID(学号)、CID(课程ID)、Grade(成绩)等。
以下是一个简单的示例,我们将分别为每个表添加一些基础数据。注意实际操作时应使用实际的数据类型,并根据需要填充更多的记录:
```sql
-- 插入Student表数据
INSERT INTO Student (ID, Name, Age)
VALUES (1, '张三', 18),
(2, '李四', 19);
-- 插入Course表数据
INSERT INTO Course (CID, CourseName)
VALUES (1, '数学'),
(2, '英语'),
(3, '物理');
-- 插入SC表数据(模拟学生选择课程)
INSERT INTO SC (StudentID, CID, Grade)
VALUES (1, 1, 90),
(1, 2, 85),
(2, 1, 95),
(2, 3, 92);
```
上述数据仅用于演示,实际情况可能会更复杂,比如有更多字段,或者还需要处理关联的外键约束。
相关问题
给定Student、SC、Course 三张表,请用集合查询选出没选C1和C2课程的学生学号(没选C1,同时没有选C2
假设我们有三张表:
1. `Student` (学生表)
- `id` (学生ID,主键)
- `name` (学生姓名)
2. `SC` (选课表)
- `student_id` (学生ID,外键引用Student.id)
- `course_id` (课程ID)
- `status` (选课状态,如"选中"或"未选")
3. `Course` (课程表)
- `id` (课程ID,主键)
- `name` (课程名称,这里我们假设"C1"和"C2")
为了找出没有选修C1和C2课程的学生学号,你可以构造一个SQL查询,例如在MySQL或PostgreSQL中:
```sql
SELECT s.id
FROM Student s
LEFT JOIN SC sc ON s.id = sc.student_id AND sc.course_id IN ('C1', 'C2')
WHERE sc.id IS NULL;
```
这个查询做了两件事情:
1. LEFT JOIN: 将`Student`表与`SC`表通过`student_id`连接,如果学生没有选修C1或C2,则`sc.id`将为空(NULL)。
2. WHERE条件: 过滤出那些在关联结果中`sc.id`为空的学生,也就是他们没有选修C1或C2。
sql借助student course sc表删除计算机系全体学生的选课记录
如果要删除计算机系全体学生的选课记录,我们可以利用`student`、`course`和`sc`三张表进行联合查询,并使用`DELETE`命令进行删除操作。具体的SQL语句如下:
```
DELETE FROM sc WHERE student_id IN (SELECT student_id FROM student WHERE department='计算机系') AND course_id IN (SELECT course_id FROM course WHERE department='计算机系');
```
该语句中,首先使用了两个子查询,分别从`student`和`course`表中选出了所属部门为`计算机系`的学生和课程。然后,使用`IN`关键字将查询结果作为条件,筛选出`sc`表中对应的选课记录,并将其删除。
阅读全文