数据库:student,course,teacher,
时间: 2023-09-04 09:15:17 浏览: 174
好的,你可以使用以下 SQL 语句来查询已选课学生的姓名,课程名称和讲师:
```
SELECT student.name, course.name, teacher.name
FROM student_course
INNER JOIN student ON student.id = student_course.student_id
INNER JOIN course ON course.id = student_course.course_id
INNER JOIN teacher ON teacher.id = course.teacher_id;
```
需要注意的是,这里的 `student_course` 表是学生和课程之间的关联表,它包含了学生和课程的 ID。你可以根据实际情况修改表名和字段名。
相关问题
综合练习: 创建一个数据库:school 创建表:student, sc, course
好的,综合练习涉及创建一个名为“school”的数据库,并在这个数据库下建立两个关联的表:学生表(student)和课程成绩表(sc),以及另一个单独的课程表(course)。
1. 创建数据库 "school":
```sql
CREATE DATABASE school;
```
2. 创建课程表 (course):
```sql
USE school;
CREATE TABLE course (
id INT PRIMARY KEY,
name VARCHAR(50),
teacher VARCHAR(50)
);
```
3. 学生表 (student):
```sql
CREATE TABLE student (
id INT PRIMARY KEY,
name VARCHAR(50),
age INT,
class_id INT,
FOREIGN KEY (class_id) REFERENCES course(id)
);
```
4. 课程成绩表 (sc):
```sql
CREATE TABLE sc (
student_id INT,
course_id INT,
score DECIMAL(3, 1), -- 保留一位小数的成绩
date DATE,
FOREIGN KEY (student_id) REFERENCES student(id),
FOREIGN KEY (course_id) REFERENCES course(id)
);
```
现有教学管理数据库:teachingdb,在数据库中存在四张数据表:student、course、teach、score,使用SQL语言实现数据库和数据表的建立,并对数据表中的数据实现增、删、改、查。四张表之间的结构和数据如下:
首先,让我们来创建这四个表格:
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. 如果想修改某位教师教授的所有课程成绩,应该怎么做?
阅读全文