MySQL基础语法四(约束与设计)

数据库表的约束

概述

约束作用

对表中的数据进行限制,保证数据的正确性、有效性和完整性。一个表如果添加约束,不正确的数据将无法插入表中。约束在创建表的时候添加较为合适。

约束种类

约束名关键字
主键primary key
唯一unique
非空not null
默认值default
外键foreign key

主键约束

创建主键

主键的特点:非空,唯一。
在创建表的时候添加主键

字段名 字段类型 PRIMARY KEY

在已有字段添加主键

ALTER TABLE 表名 ADD PRIMARY KEY(字段名);

示例

-- 创建表学⽣表 st5, 包含字段(id, name, age)将 id 做为主键
create table st5 (
	id int primary key, -- id 为主键
	name varchar(20),
	age int
);

删除主键

示例

-- 删除 st5 表的主键
alter table st5 drop primary key;
-- 添加主键
alter table st5 add primary key(id);

主键自增

AUTO_INCREMENT表示自动增长
创建表时指定起始值

CREATE TABLE 表名(
列名 int primary key AUTO_INCREMENT
) AUTO_INCREMENT=起始值;

示例

-- 指定起始值为 1000
create table st4 (
id int primary key auto_increment,
name varchar(20)
) auto_increment = 1000;

创建好以后修改起始值

ALTER TABLE 表名 AUTO_INCREMENT=起始值;

示例

alter table st4 auto_increment = 2000;

delete和truncate对自增长影响
delete:删除所有记录后,自增长无影响
truncate:删除以后,自增长重新开始

唯一约束

示例

-- 创建学⽣表 st7, 包含字段(id, name),name 这⼀列设置唯⼀约束, 不能出现同名的学⽣
create table st7 (
	id int,
	name varchar(20) unique
);

非空约束

示例

-- 创建表学⽣表 st8, 包含字段(id, name, gender)其中 name 不能为 NULL
create table st8 (
	id int,
	name varchar(20) not null,
	gender char(1)
);

默认值

示例

-- 创建⼀个学⽣表 st9, 包含字段(id, name, address), 地址默认值是⼴州
create table st9 (
	id int,
	name varchar(20),
	address varchar(20) default '⼴州'
);

外键约束

外键约束概述

外键:在从表中与主表与主表主键对应的那一列。
主表:一方,用来约束别人的表
从表:多方,被别人约束的表
在这里插入图片描述

外键创建

新增表的外键

[CONSTRAINT] [外键约束名称] FOREIGN KEY(外键字段名) REFERENCES 主表名(主键字段名)

已有表添加外键

ALTER TABLE 从表 ADD [CONSTRAINT] [外键约束名称] FOREIGN KEY (外键字段名) REFERENCES 主表(主键字段名);

示例

-- 2) 创建从表employee并添加外键约束emp_depid_fk
-- 多⽅,从表
create table employee(
	id int primary key auto_increment,
	name varchar(20),
	age int,
	dep_id int, -- 外键对应主表的主键
	-- 创建外键约束
	constraint emp_depid_fk foreign key (dep_id) references department(id)
);

删除外键

ALTER TABLE 从表 drop foreign key 外键名称;

示例

-- 删除 employee 表的 emp_depid_fk 外键
alter table employee drop foreign key emp_depid_fk;
-- 在 employee 表情存在的情况下添加外键
alter table employee add constraint emp_depid_fk
foreign key (dep_id) references department(id);

外键级联

在修改和删除表的主键时,同时更新或删除副表的外键值,称为级联操作。

级联操作语法描述
on update case级联更新,只能创建表的时候创建级联关系。更新主表中的主键,从表的外键也同步更新
on delete case级联删除

示例

create table employee(
	id int primary key auto_increment,
	name varchar(20),
	age int,
	dep_id int, -- 外键对应主表的主键
	-- 创建外键约束
	constraint emp_depid_fk foreign key (dep_id) references
	department(id) on update cascade on delete cascade
);
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值