本人已参与「新人创作礼」活动,一起开启掘金创作之路。
持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第2天,点击查看活动详情
目录
今天阿文介绍的内容:
- 什么是
外键? - 外键的语法格式
主表与从表- 什么是
非空约束? - 非空约束的语法格式
1.使用外键约束
外键用来在两个表的数据之间建立连接,可以是一列或者多列。一个表可以有一个或多个外键。外键对应的是参照完整性,一个表的外键可以为空值,若不为空值,则每一个外键值必须等于另一个表中主键的某个值。外键:首先它是表中的一个字段,虽可以不是本表的主键,但要对应另外一个表的主键。外键的主要作用是保证数据引用的完整性,定义外键后,不允许删除在另一个表中具有关联关系的行。外键的作用是保持数据的一致性、完整性。
主表(父表):对于两个具有关联关系的表而言,相关联字段中主键所在的那个表即是主表。
从表(子表):对于两个具有关联关系的表而言,相关联字段中外键所在的那个表即是从表。
1.1创建外键的语法
[CONSTRAINT <外键名>] FOREIGN KEY 字段名1 [ ,字段名2,…] REFERENCES <主表名> 主键列1 [ ,主键列2,…]
1.2代码演示
Firstly:创建一个主表(父表)person,SQL语句如下:
CREATE TABLE person
{
id INT(11) PRIMARY KEY,
name VARCHAR(22) NOT NULL,
location VARCHAR(50)
};
Secondly:创建一个从表(子表)student,让它的键deptId作为外键关联到person的主键id,SQL语句如下:
CREATE TABLE student
{
id INT(11) PRIMARY KEY,
name VARCHAR(25),
deptId INT(11),
score FLOAT,
CONSTRAINT fk_student_person FOREIGN KEY(deptId) REFERENCES person(id)
};
以上语句执行成功之后,在表student上添加了名称为fk_student_person的外键约束,外键名称为deptId,其依赖于表person的主键id。
提示:
关联指的是在关系型数据库中相关表之间的联系。它是通过相容或相同的属性或属性组来表示的。子表的外键必须关联父表的主键,且关联字段的数据类型必须匹配,如果类型不一样,则创建子表时,就会出现错误.
2.使用非空约束
非空约束(Not Null Constraint)指字段的值不能为空。对于使用了非空约束的字段,如果用户在添加数据时没有指定值,数据库系统会报错。
2.1非空约束的语法如下:
字段名 数据类型 not null
2.2代码演示
例如定义数据表teacher,员工名字不能为空,SQL语句如下:
CREATE TABLE teacher
{
id INT(11) PRIMARY KEY,
name VARCHAR(25) NOT NULL,
deptId INT(11),
salary FLOAT
};
以上SQL语句执行成功之后后,在表中name设置为了非空,id作为主键,当插入数据时,若name数据字段为空则系统将会报错。
总结
- 外键用来在两个表的数据之间建立连接
- 主表与从表的定义,关联的主键所在表为主表
- 非空约束是约束该字段不能为空,否则将会报错。
OK,阿文今天的介绍就到这里结束了。