Mysql约束

表的完整性

1)实体完整性 每条记录有一个唯一的标识符,通常用无任何含义的字段表示

在设计一张表时,一般会采用一个没有任何含义的字段来标识一个记录。

2)参照完整性 一张表的某个字段引用另一张表的某个字段值(外键) 主要针对多张表


3)域完整性   域即单元数据,域中的数值必须符合一定的规则。

键的概念

1) 单一主键 只有唯一字段
2)组合主键  由多个字段组合起来,形成只一字段
3)外键      针对多张表之间的关联。

l约束

数据类型告诉我们需要存储什么样子的数据,而约束告诉我们这些数据具体需要满足的规则
。如:age int, 我们可以存储负整数,
price float,我们可以存储负小数,
但是负数是不满足实际规则的,因此我们需要约束
常见约束
检查约束 (MySQL 目前不支持 )
非空约束not null
唯一约束unique
主键约束
外键约束
主键约束的特点
在mysql中,通过 primary key 来定义主键
主键非空,且值唯一
在mysql中,删除主键是alert table 表名 drop primary key(一个表中只有一个主键)
删除主键后不能插入null值,但可插入重复值。
在mysql中可以对主键自动从1开始增加,以后就无需对id主键显示设置值,由系统自动产生。
id int(5) primary key auto_increment
如果显示指定id值,则系统不会取默认值,用显示的id去覆盖系统默认值。
主键体现实体完整性,通常用一个没有任何业务含义的单独字段表示

唯一约束的特点 
name varchar(20) unique
值不能重复
Null可以有多次,但"Null"中只能有一
       非空约束
not null
值不能为空。
       外键约束的特点
  constraint 外键名 foreign key(外键字段) references 主表(映射的键字段)

例  
create table P(
id int primary key,
name varchar(20)
);
create table C(
name varchar(20),
pid int ,
constraint xxx foreign key(pid) references P(id)
)


或者直接在字段后写 references 主表(字段)
create table P(
id int primary key,
name varchar(20)
);
create table C(
name varchar(20),
pid int references P(id)
);

如果存在主外键关联,那么在删除时,要先删除有外键的表,在删除另外一张表
// 增加外键
alter table card add constraint pid_fk(外键名
 foreign key(pid) references person(id);

//删除外键
alter table 表名 drop foreign key 外键名.











评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值