MySQL操作表的约束

时间:2022-03-15 06:35:34
DROP DATABASE `test`;
CREATE DATABASE `test`;
SHOW DATABASES;
USE TEST;
CREATE TABLE `t_1`(
`id` INT PRIMARY KEY AUTO_INCREMENT,
# PRIMARY KEY用于设置主键约束(唯一标识所有记录,主键字段是唯一的,非空的)这是一个单字段主键
# AUTO_INCREMENT设置自动增加,在一个数据库中只能有一个字段使用这个约束,并且这个字段的数据类型必需为INT

`name` VARCHAR(20) NOT NULL, # NOT NULL用于约束字段的值不能为空
`phone` INT DEFAULT '123456789',# DEFAULT用于设置默认值
`employee` INT UNIQUE# UNIQUE 用于说明设置字段的值是唯一的
);
DESC `t_1`;
# 可以创建一个多字段主键
CREATE TABLE `t_2`(
`id` INT,
`name` VARCHAR(20),
CONSTRAINT pk PRIMARY KEY(`id`,`name`)
# 这是一个多字段的主键,pk为约束名
);
DESC `t_2`;
# 外键约束,设置外键约束的两个表之间往往有父子关系,即子表中某个字段的取值范围由父表所决定
CREATE TABLE `department`(
`id` INT PRIMARY KEY AUTO_INCREMENT,
`name` VARCHAR(20)
);

CREATE TABLE `man`(
`id` INT PRIMARY KEY AUTO_INCREMENT,
`name` VARCHAR(20),
`departnum` INT,
CONSTRAINT fk_name FOREIGN KEY(`departnum`)
REFERENCES `department`(`id`)
);
DESC MAN;
# 在上述的关系中,假如表man里面的那个外键约束的值不在department表中的id里面,就会产生错误,类似于设置了一个枚举类型
首发于我的个人网站:  点击打开链接