问:
在StuDB数据库中存在两个表,
答:
我们来详细分析一下在StuDB数据库中存在两个表 tbl_student 和 tbl_course的情况。
1. 两个表的结构
- tbl_student 学生表
字段:
- stu_id 学生id
- stu_name 学生姓名
- stu_age 学生年龄
- stu_gender 学生性别
- tbl_course 课程表
字段:
- course_id 课程id
- course_name 课程名称
- course_credit 课程学分
- course_period 上课时间地点
2. 两个表之间的关系
tbl_student 学生表 和 tbl_course 课程表之间是多对多的关系。一个学生可以选择多门课程,一门课程也可以被多个学生选择。
3. 实现两个表之间的关系
可以建立一个中间表tbl_sc来实现两个表之间的多对多关系。
- tbl_sc 学生选课中间表
字段:
- stu_id 学生id
- course_id 课程id
- score 分数
stu_id和course_id作为外键分别关联到tbl_student和tbl_course表。score字段用来存储学生该门课程的成绩。
4. 相关的SQL语句
- 创建表
CREATE TABLE tbl_student
(...)
CREATE TABLE tbl_course
(...)
CREATE TABLE tbl_sc
(...)
- 学生选课
INSERT INTO tbl_sc(stu_id,course_id) VALUES(1,2);
- 查询学生所选课程
SELECT * FROM tbl_sc s
INNER JOIN tbl_course c ON s.course_id = c.course_id
WHERE s.stu_id = 1;
- 更新选课学生的成绩
UPDATE tbl_sc SET score = 80 WHERE stu_id = 1 AND course_id = 2;
综上,两张表通过建立第三张中间表,可以实现多对多的关系,相关的SQL语句也可以完成基本的插入、查询和更新等操作。请让我知道如果您有任何其他问题。