现有教学管理数据库:teachingdb,在数据库中存在四张数据表:student、course、teach、score,使用SQL语言实现数据库和数据表的建立,并对数据表中的数据实现增、删、改、查。四张表之间的结构和数据如下:
时间: 2024-11-04 22:11:01 浏览: 42
首先,让我们来创建这四个表格:
1. Student 表(学生信息)
```sql
CREATE TABLE student (
id INT PRIMARY KEY,
name VARCHAR(50),
age INT,
gender CHAR(1)
);
```
2. Course 表(课程信息)
```sql
CREATE TABLE course (
id INT PRIMARY KEY,
name VARCHAR(50),
teacher_id INT,
FOREIGN KEY (teacher_id) REFERENCES teach(id)
);
```
3. Teach 表(教师信息)
```sql
CREATE TABLE teach (
id INT PRIMARY KEY,
name VARCHAR(50)
);
```
4. Score 表(学生成绩)
```sql
CREATE TABLE score (
student_id INT,
course_id INT,
grade FLOAT,
FOREIGN KEY (student_id) REFERENCES student(id),
FOREIGN KEY (course_id) REFERENCES course(id)
);
```
接下来是对数据的操作:
- 插入数据(INSERT):
```sql
-- 学生
INSERT INTO student VALUES (1, '张三', 20, 'M');
-- 教师
INSERT INTO teach VALUES (1, '李四');
-- 课程
INSERT INTO course VALUES (1, '数学课', 1);
-- 成绩
INSERT INTO score VALUES (1, 1, 90.0);
-- 更具体的插入示例...
```
- 更新数据(UPDATE):
```sql
UPDATE student SET age = 21 WHERE id = 1;
```
- 删除数据(DELETE):
```sql
DELETE FROM score WHERE student_id = 1 AND course_id = 1;
```
- 查询数据(SELECT):
```sql
-- 获取学生信息
SELECT * FROM student;
-- 获取学生张三的所有课程成绩
SELECT * FROM score WHERE student_id IN (SELECT id FROM student WHERE name = '张三');
```
-- 相关问题--
1. 如何在SQL中删除一条特定的学生记录?
2. 如果需要查询某个课程的所有教师信息,应该如何编写SQL语句?
3. 如果想修改某位教师教授的所有课程成绩,应该怎么做?
阅读全文