欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

MySQL中的外键约束

程序员文章站 2022-05-31 23:42:43
...

外键约束

外键约束的作用:
外键约束与主键约束不同,主键约束要求被约束的那个属性值不能有重复出现,而外键约束要求只能重复出现,不能超过这个已给定的范围。
外键约束的条件:

 1. *不在同一个表中,子表对父表的一个引用,避免了冗余*
 2. *子表约束的数据不能有其他约束,父表被引用的数据要为主键约束*
 
mysql> select * from dormitory;
+----+-------+------+
| no | name  | sex  |
+----+-------+------+
|  1 | shuai | boy  |
|  2 | se    | boy  |
|  3 | sa    | boy  |
|  4 | song  | boy  |
|  5 | zei   | boy  |
|  6 | bi    | boy  |
+----+-------+------+
6 rows in set (0.00 sec)
mysql> select * from information;
+------+-------+----------+
| no1  | birth | treasure |
+------+-------+----------+
|    1 |  2000 |  9000000 |
|    2 |  1997 |   100000 |
|    3 |  1995 |  1500000 |
|    4 |  1990 |   100000 |
|    5 |  1992 |  1000000 |
|    6 |  1989 |    90000 |
+------+-------+----------+
6 rows in set (0.00 sec)
//以上第一个表是父表,下面一个为子表
//具体代码如下
mysql> create table dormitory(
    -> no int primary key,//父表被引用的数据为主键约束
    -> name varchar(255),
    -> sex varchar(255));
Query OK, 0 rows affected (0.05 sec)
mysql> create table information(
    -> no1 int,//外键约束不能有其他约束
    -> birth year,
    -> treasure bigint,
    -> foreign key(no1) references dormitory(no));//外键约束语句
Query OK, 0 rows affected (0.05 sec)