常见的约束

4 篇文章 1 订阅

常见约束

一种限制,限制表中的数据,为了保证表中数据的准确和可靠性

create table 表名(
	字段名 字段类型 约束
)

分类 六大约束

  1. not NULL : 非空约束,用于保证该字段的值不能为空,比如姓名、学号等
  2. DEFAULT : 默认,用于保证该字段有默认值,比如:性别、
  3. PRIMARY KEY:用于保证该字段的值具有唯一性,并且非空,比如学号、员工编号
  4. unique : 唯一约束,用于保证该字段的值具有唯一性,但可以为空,比如:座位号,
  5. check : 检查约束,mysql中不支持(语法不包括,但不报错,只是不执行),比如:年龄、性别
  6. foreign key,用于限制两个表的关系,用于保证该字段的值必须来自主表关联列的值。在从表添加外键约束,用于引用在主表中某列的值,比如:专业编号,员工表的部门编号,工种编号

添加约束的时机

  1. 创建表时
  2. 修改表时
    一定是在数据添加之前

约束添加的分类

  1. 列级约束 : 语法上来说,六大约束都可以,但外键约束没有效果(即写也白写)
  2. 表级约束: 除了 默认、非空,其它都支持
create table 表名(
	字段名 字段类型 列级约束,
	字段名 字段类型,
	表级约束
)

创建表时添加约束

添加列级约束

直接在字段名和类型后面追加约束即可,只支持默认、非空、主键、唯一。

create database students;
use students;

create table major(
	id int primary key,
	majorName varchar (20)
)
create table stuinfo(
	id INT primary key, # 主键
	stuName varchar(20) not null, # 非空
	gender char(1) check (gender='男' or gender = '女'), #检查约束
	seat int unique, #唯一
	age int default 18 # 默认约束
	majorId int references myjor(id) # 外键 
)

添加表级约束

在最后加,加表级约束前应该加上分号区分
在各个字段的最下面
【constraint 约束名】 约束类型(字段名)

drop table if exists stuinfo;
create table stuinfo(
	id int,
	constraint pk primary key(id) # 表示为id添加主键,这里主键的名字可以随意,反正最后都是primary
	constraint uq unique(seat), # 唯一键
	constraint ck check (gender = '男' or '女'), #检查约束
	# 外键, 注意,这里需要加foreign key
	# 最好用 fk_当前表名_主表名 命名,因为一个表可能有多个外键
	constraint fk_当前表名_主表名 foreign key (majorid) references major(id) 
)

什么时候添加列级、表级约束

create table if exists stuinfo(

)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值