MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
MySQL所使用的SQL语言是用于访问数据库的最常用标准化语言.MySQL软件采用了双授权政策,分为社区版和商业版,由于其体积小,速度快,总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQL作为网站数据库。
我们可以在创建表时设置外键约束:
在CREATE TABLE语句中,通过外键关键字来指定外键,具体的语法格式如下:
[约束& lt;外键名祝辞)外键字段名[,字段名2,…) 引用& lt;主表名的在1(主键列,主键列2,…]
举例:
现在在test_db数据库中创建一个部门表tb_dept1,表结构如下图所示:
创建tb_dept1的SQL语句和运行结果如下所示。
mysql>创建表tb_dept1 →( →INT id(11)主键, →名字VARCHAR(22)不是零, →位置VARCHAR (50) →); 查询好,0行影响(0.37秒)
创建数据表tb_emp6,并在表tb_emp6上创建外键约束,让它的键deptId作为外键关联到表tb_dept1的主键id、SQL语句和运行结果如下所示。
mysql>创建表tb_emp6 →( →INT id(11)主键, →名字VARCHAR (25), →deptId INT (11), →工资浮动, →约束fk_emp_dept1 →外键(deptId)引用tb_dept1 (id) →); 查询好,0行影响(0.37秒) mysql>DESC tb_emp6; + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - + + | |字段类型零额外默认关键| | | | | + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - + + | | int id (11) | | PRI零| | | | |名称varchar(25) |是| |零| | | deptId | int(11) |是| MUL零| | | 零| | | |是的浮动工资| | | + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - + + 4行集(1.33秒)
以上语句执行成功之后,在表tb_emp6上添加了名称为fk_emp_dept1的外键约束,外键名称为deptId,其依赖于表tb_dept1的主键id。
注意:从表的外键关联的必须是主表的主键,且主键和外键的数据类型必须一致。例如,两者都是INT类型,或者都是字符类型。如果不满足这样的要求,在创建从表时,就会出现“错误1005 (HY000):停下来# 39;t create table”错误。
以上就是mysql外键约束怎么创建的详细内容,更多请关注其它相关文章!