100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > mysql数据库 外键约束

mysql数据库 外键约束

时间:2023-05-20 08:06:39

相关推荐

mysql数据库 外键约束

外部关键字

在以后我们统一将外部关键字叫做外键,外键就是另一张表中的主键

问:外键有啥用啊?

答:外键的主要作用就是保持数据的一致性,完整性。

再问:怎么保证的呢?

答:看图。

如图有两张表,classIdT_Student的外键,是T_class表的主键, 如果我们要删除T_class表中classId1的字段,程序是会报错的,因为t_student表中有数据和classId1的字段关联了,是不能删除的,这样子就保证了数据的一致性和完整性

继续问:那怎么才能删除呢?

接着答:需要先删除T__student表中classId1的两个字段。

如何给表添加外部关键字

MySQL中给表中字段添加外键约束的语法规则如下:

CONSTRAINT 外键名 FOREIGN KEY 字段名 REFERENCES 主表名(主键名)

举个例子:现在有两张表,t_empt_dept如下。

t_dept表

t_emp表

我们来创建两张表,并给员工表(t_emp)添加外键:

CREATE TABLE t_dept(deptId INT PRIMARY KEY,name VARCHAR(22),location VARCHAR(50));

CREATE TABLE t_emp(id INT PRIMARY KEY,name VARCHAR(22),deptId INT,CONSTRAINT fk_emp_dept1 FOREIGN KEY(deptId) REFERENCES t_dept(deptId));

实际操作如图:

编程要求

创建两张表如下,给t_student表添加外键约束,外键为classId,外键名称为fk_stu_class1

表t_class

表t_student

mysql> create database MyDb-> ;Query OK, 1 row affected (0.01 sec)mysql> use MyDb;Database changedmysql> create table t_class(-> id int primary key,-> name varchar(22)-> );Query OK, 0 rows affected (0.00 sec)mysql> desc t_class;+-------+-------------+------+-----+---------+-------+| Field | Type | Null | Key | Default | Extra |+-------+-------------+------+-----+---------+-------+| id | int(11)| NO | PRI | NULL | || name | varchar(22) | YES || NULL | |+-------+-------------+------+-----+---------+-------

mysql> CREATE TABLE t_student(-> id int primary key,-> name varchar(22),-> classId int,-> CONSTRAINT fk_stu_class1 FOREIGN KEY(classId) REFERENCES t_class(id)-> );Query OK, 0 rows affected (0.01 sec)

在创建表之前你需要先创建数据库:MyDb,并且将两张表创建在MyDb数据库中

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。