create table tb_orderItem
(
orderItemId int primary key auto_increment,
orderId int,
bookId int,
price float,
bookNum int,
foreign key(orderId) references tb_order(orderId),
foreign key(bookId) references tb_book(bookId)
);
这是我设置外键的一个例子,供你参考.
①.、只有InnoDB类型的表才可以使用外键.mysql默认是MyISAM,这种类型不支持外键约束
保持数据一致性,完整性,主要目的是控制存储在外键表中的数据. 使两张表形成关联,外键只能引用外表中的列的值.
两个表必须是InnoDB表类型.
使用在外键关系的域必须为索引型(Index).
使用在外键关系的域必须与数据类型相似.
指定主键关键字: foreign key(列名).
引用外键关键字: references 外键表名(外键列名).
restrict(限制外表中的外键改动),set
Null(设空值),set Default(设默认值).
[默认]no action
outTable表 主键 id 类型 int
创建含有外键的表:
代码如下:
create table temp(
id int,
name
foreign key(id) references outTable(id) on delete cascade on update
cascade);
说明:把id列 设为外键 参照外表outTable的id列 当外键的值删除 本表中对应的列筛除 当外键的值改变 本表中对应的列值改变.
外键,就是引用别的表中的主键值.你这样写,那表示Goods表中的Ct_id的值,必需要在Commodity_type表的Ct_id字段中.
你再去写insert语句就可以体验到效果了
①外键的作用,主要有两个:
一个是让数据库自己通过外键来保证数据的完整性和一致性
一个就是能够增加ER图的可读性
①.)先创建一个主表,代码如下:
#创建表student,并添加各种约束
create table student
id int primary key , #主键约束
age int NOT NULL, #非空约束
) ;
再通过一个外键,创建一个分数表,这样的话,就可以方便查询.代码如下:
#创建分数表
create table score
id int primary key ,
sid int ,
china int ,
history int,
english int,
constraint FK_sid foreign key(sid) references student(id) #通过外键创建链接
创建外键的方法有很多,其中最常见创建外键的格式是:constraint FK_*** foreign key(**) references 链接的外表
删除外键:
alter table drop foreign key '外键名'.
注意:
只有在定义外键时,用constraint 外键名 foreign key .... 方便进行外键的删除
主键是唯一标示这一行的,就好像你的身份证号一样,每个人只有一个,也是唯一能证明你是你的东西.外键是别人执行你的东西.也就是说如果一个人想和你有点关系怎么办,那就要关联起来,怎么关联起来,就通过外键啊
定义主键和外键主要是为了维护关系数据库的完整性,最后提醒一下大家:
第一段:主键是能确定一条记录的唯一标识,比如,一条记录包括身份正号,姓名,年龄.身份证号是唯一能确定你这个人的,其他都可能有重复,所以,身份证号是主键.
外键用于与另一张表的关联.是能确定另一张表记录的字段,用于保持数据的一致性.比如,A表中的一个字段,是B表的主键,那他就可以是A表的外键.
通过工具NAVICAT 设计表时进行设计
打开NAVICAT,连接数据库
右键目标表,选择设计表
打开后选择外键菜单,具体如图:
也可以通过SQL方式完成对表外键的添加,如:
语法:alter table 表名 add constraint FK_ID foreign key(你的外键字段名) REFERENCES 外表表名(对应的表的主键字段名);
定义外键的方法和详细的操作步骤如下:
①.、第一步,创建一个主从表,如下图所示,然后进入下一步.
以上就是土嘎嘎小编为大家整理的MySQL外部键怎么用相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!