sql server多对多关系建表
时间: 2023-10-13 11:09:18 浏览: 111
mysql数据库建表– 一对多/多对一/一对一/多对多 关系
在 SQL Server 中建立多对多关系需要使用中间表来实现。以下是一个示例:
假设有两个表:学生(Student)和课程(Course),其中一个学生可以选修多门课程,一门课程也可以被多个学生选修。这就是一个典型的多对多关系。
首先,我们需要创建两个表:
```
CREATE TABLE Student
(
StudentID INT PRIMARY KEY,
StudentName VARCHAR(50)
)
CREATE TABLE Course
(
CourseID INT PRIMARY KEY,
CourseName VARCHAR(50)
)
```
然后,我们需要创建一个中间表来存储学生和课程之间的关系。这个中间表应该包含两个外键分别指向学生表和课程表。
```
CREATE TABLE StudentCourse
(
StudentID INT,
CourseID INT,
PRIMARY KEY (StudentID, CourseID),
FOREIGN KEY (StudentID) REFERENCES Student(StudentID),
FOREIGN KEY (CourseID) REFERENCES Course(CourseID)
)
```
在中间表中,主键由两个列 StudentID 和 CourseID 组成,这是因为同一个学生可以选修多门课程,同一门课程也可以被多个学生选修。同时,我们在中间表中创建了两个外键,分别指向学生表和课程表,以保证数据的完整性。
现在我们就可以通过向中间表中插入数据来建立多对多关系了。例如,如果学生1选修了课程1和课程2,我们可以这样插入数据:
```
INSERT INTO StudentCourse (StudentID, CourseID)
VALUES (1, 1), (1, 2)
```
这样,我们就建立了一个学生和两门课程之间的多对多关系。
阅读全文