MySQL表的约束篇not null default auto_increment UK PK FK-章节2

MySQL表的约束

所谓完整性是指数据的准确性和一致性,而完整性检查就是值检查数据的确定性和一致性。

MySQL数据库管理系统提供了一致机制来检查数据库表中的数据是否满足规定的条件,以保证数据库表中数据的准确性和一致性,这种机制就是约束

完整性约束关键字含义
not null(NK)约束字段的值不能为空
default设置字段的默认值
unique key(UK)约束字段的值是唯一
primary key(PK)约束字段为表的主键,可以作为该表记录的唯一标识
auto_increment约束字段的值为自动增加
foreign key(FK)约束字段为表的外键
1、//设置非空约束(not null,NK)
create table table_name(

​		属性名 数据类型 not null...

);
2、//设置字段为默认值(default)
create table table_name(

​		属性名 数据类型 default 默认值

);

e.g.:

create table table_name(

​		dname varchar(10)  deafult '菠萝吹雪'

);

插入数据的时候,default 后的默认值 写default会打印出“菠萝吹雪”

3、//设置唯一约束(unique,UK)

1、//设置某表中某字段的UK约束

create table table_name(

​		属性名 数据类型 unique

);

2、//给某字段的UK约束设置一个名字

create table table_name(

​		属性名1 数据类型1,

​		属性名2 数据类型2,

​		属性名3 数据类型3,constraint uk_属性名3 unique(属性名3)

);

ERROR 1062 (23000): Duplicate entry ‘boluo’ for key ‘name’

如果有重复值,会显示以上错误

4、//设置主键约束(primary key, PK)

1、单字段主键

设置某表中某字段的PK约束

create table table_name(

​		属性名 数据类型 primary key,

​		属性名 数据类型,.......

);

2、//给某字段的PK约束设置一个名字

create table table_name(

​		属性名1 数据类型1 ,

​		属性名2 数据类型2,

​		属性名3 数据类型3.......constraint pk_属性名3 primary key(属性名)

);

多字段主键—主键由多个字段组合而成

create table table_name(

​		属性名1 数据类型1 ,

​		属性名2 数据类型2,

​		属性名3 数据类型3.......constraint pk___属性名2_ _属性名3 primary key(属性名2,属性名3)

);
设置字段自动增加(auto_increment)
create table table_name(

​		属性名 数据类型 auto_increment,........

);
设置外键约束(foreign key,FK)—用于两个表及以上

父表:

create table table_name(

​		属性名1 数据类型1 primary key,

​		属性名2 数据类型2,

​		属性名3  数据类型3,.......

);

字表:

create table table_name(

​		属性名4 数据类型4 primary key;

​		属性名5 数据类型5,

​		属性名6  数据类型6,constraint 外键约束名(fk_属性名6)  foreign key (属性名6)references 要关联的父表的表名 (父表属性名1)

);

其中属性名1为父表的主键,属性名6为子表的外键

举例:

create table t_dept(
     deptno int primary key,
     dname varchar(20),
     loc varchar(40)
     );



create table t_employee( 

​		empno int primary key, 

​		ename varchar(20), 

​		job varchar(40), 

​		deptno int,constraint fk_deptno foreign key(deptno)references t_dept(deptno)

);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值