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