Oracle数据库中实现两个外键的语句示例(oracle两个外键语句)
Oracle数据库中实现两个外键的语句示例
在Oracle数据库中,外键是一个非常重要的概念,它能够帮助我们在不同的表之间建立关联,方便我们进行数据查询和数据分析。在某些情况下,我们需要建立两个或多个外键,那么在Oracle数据库中要如何实现呢?本文将为大家介绍一个实现两个外键的语句示例。
创建两个表
我们需要创建两个表,分别为“学生信息表”和“课程信息表”。
学生信息表包括学生的ID、姓名、性别和年龄等基本信息,以及学生所选的课程ID。
CREATE TABLE student(
id INT PRIMARY KEY,
name VARCHAR2(10),
gender VARCHAR2(10),
age INT,
course_id INT,
CONSTRNT fk_course FOREIGN KEY(course_id) REFERENCES course(id)
);
课程信息表包括课程的ID、名称和授课教师等信息。
CREATE TABLE course(
id INT PRIMARY KEY,
name VARCHAR2(20),
teacher VARCHAR2(10),
CONSTRNT fk_teacher FOREIGN KEY(teacher) REFERENCES teacher(name)
);
在上述代码中,我们分别为学生信息表和课程信息表创建了两个外键,其中学生信息表的外键为“fk_course”,引用了课程信息表的ID字段;课程信息表的外键为“fk_teacher”,引用了教师信息表的name字段。
创建教师信息表
为了使课程信息表的外键引用到教师信息表中的name字段,我们需要再次创建一个教师信息表。
CREATE TABLE teacher(
name VARCHAR2(10) PRIMARY KEY,
subject VARCHAR2(20)
);
在上述代码中,我们创建了一个教师信息表,其中包括教师的姓名和所教授的科目。
创建外键
现在,我们已经创建了三个表,包括学生信息表、课程信息表和教师信息表。我们需要在课程信息表中创建一个外键,引用教师信息表中的name字段。
ALTER TABLE course
ADD CONSTRNT fk_teacher
FOREIGN KEY(teacher) REFERENCES teacher(name);
在上述代码中,我们使用ALTER TABLE语句来修改课程信息表,添加了fk_teacher外键。该外键引用了教师信息表中的name字段。
测试外键
现在,我们已经创建了两个外键,在进行数据插入和查询之前,我们需要测试它们是否能够正常工作。
插入教师信息
我们向教师信息表中插入一些数据。
INSERT INTO teacher(name, subject) VALUES(‘张三’, ‘数学’);
INSERT INTO teacher(name, subject) VALUES(‘李四’, ‘英语’);
INSERT INTO teacher(name, subject) VALUES(‘王五’, ‘物理’);
在上述代码中,我们向教师信息表中插入了三条数据,包括三个教师的姓名和所教授的科目。
插入课程信息
接着,我们向课程信息表中插入一些数据。
INSERT INTO course(id, name, teacher) VALUES(1, ‘高数’, ‘张三’);
INSERT INTO course(id, name, teacher) VALUES(2, ‘英语’, ‘李四’);
INSERT INTO course(id, name, teacher) VALUES(3, ‘物理’, ‘王五’);
在上述代码中,我们向课程信息表中插入了三条数据,包括三门课程的ID、名称和授课教师。
插入学生信息
我们向学生信息表中插入一些数据。
INSERT INTO student(id, name, gender, age, course_id) VALUES(1, ‘小明’, ‘男’, 18, 1);
INSERT INTO student(id, name, gender, age, course_id) VALUES(2, ‘小红’, ‘女’, 19, 2);
INSERT INTO student(id, name, gender, age, course_id) VALUES(3, ‘小张’, ‘男’, 20, 3);
在上述代码中,我们向学生信息表中插入了三条数据,包括三名学生的ID、姓名、性别、年龄和所选课程的ID。
查询结果
现在,我们已经成功插入了数据,我们可以通过查询语句来查看结果。
SELECT * FROM student;
在上述代码中,我们使用SELECT语句来查询学生信息表中的数据。查询结果如下:
ID NAME GENDER AGE COURSE_ID
1 小明 男 18 1
2 小红 女 19 2
3 小张 男 20 3
可以看到,在学生信息表中,每个学生都对应着一个课程ID,这个课程ID是通过外键fk_course与课程信息表中的ID字段关联起来的。
SELECT * FROM course;
在上述代码中,我们使用SELECT语句来查询课程信息表中的数据。查询结果如下:
ID NAME TEACHER
1 高数 张三
2 英语 李四
3 物理 王五
可以看到,在课程信息表中,每门课程都对应着一个教师的姓名,这个姓名是通过外键fk_teacher与教师信息表中的name字段关联起来的。
总结
通过上述示例,我们可以看到在Oracle数据库中实现两个外键的方法。我们可以使用ALTER TABLE语句来添加外键,也可以在表的创建语句中直接添加外键。同时,我们还需要使用引用字段来关联两个表。外键的使用可以帮助我们建立表与表之间的关联,并且方便我们进行数据的查询和分析。