文章目录
外键
【什么是外键】
如果公共关键字在一个关系中是主关键字,那么这个公共关键字被称为另一个关系的外键。由此可见,外键表示了两个关系之间的相关联系。以另一个关系的外键作主关键字的表被称为主表,具有此外键的表被称为主表的从表。
假设我们有一个老师表(id,name)
其中id是老师表的主键,id可以唯一的标识一条记录,
和一个学生表(id,name,grade,tid)
其中id是学生表的主键,每个学生的id是唯一的,而tid则不是唯一的,但它和老师表中的id对应,且老师表中的id是主键,则称tid为学生表的外键(foreign key)
【外键的作用】
保持数据一致性,完整性,主要目的是控制存储在外键表中的数据。 使两张表形成关联,外键只能引用外表中的列的值或使用空值。
【创建外键】
<1.创建字表时同时定义外键
-- 创建老师表
CREATE TABLE `teacher` (
`id` INT(10) NOT NULL,
`name` VARCHAR(30) DEFAULT NULL,
PRIMARY KEY (`id`)
)
-- 创建学生表
CREATE TABLE `student` (
`id` INT(10) NOT NULL,
`name` VARCHAR(30) DEFAULT NULL,
`tid` INT(10) DEFAULT NULL,
PRIMARY KEY (`id`),
-- ===========================定义外键======================================
KEY `fktid` (`tid`),
CONSTRAINT `fktid` FOREIGN KEY (`tid`) REFERENCES `teacher` (`id`)
-- ===========================定义外键结束===================================
)
<2.创建完之后,添加外键
-- alter table 表名 add constraint FK_ID foreign key(外键字段名) references 外表表名(主键字段名)
ALTER TABLE student
ADD CONSTRAINT `fktid` FOREIGN KEY (`tid`) REFERENCES `teacher` (`id`)
【注意】
在删除具有主外键关系的表时,要先删除子表,再删除从表
通过DML语句管理数据库数据
【添加数据 INSERT】
语法:
INSERT INTO 表名[(字段1,字段2,字段3,...)] VALUES('值1','值2','值3')
如下:
【修改数据 UPDATE】
语法:
UPDATE 表名 SET name=value [where condition]
-- name 为要修改的字段属相列的名字
-- condition 为筛选条件 , 如不指定则修改该表的所有列数据
如下:
【删除数据 】
语法:
DELETE FROM 表名 [WHERE condition];
如下: