MySQL之约束



MySQL中约束保存在information_schema数据库的table_constraints中,可以通过该表查询约束信息;

约束主要完成对数据的检验,保证数据库数据的完整性;如果有相互依赖数据,保证该数据不被删除。 

常用五类约束:
not null:非空约束,指定某列不为空
unique: 唯一约束,指定某列和几列组合的数据不能重复
primary key:主键约束,指定某列的数据不能重复、唯一
foreign key:外键,指定该列记录属于主表中的一条记录,参照另一条数据
check:检查,指定一个表达式,用于检验指定数据
注意: MySQL不支持check约束,但可以使用check约束,而没有任何效果;  
根据约束数据列限制,约束可分为:
单列约束:每个约束只约束一列
多列约束:每个约束约束多列数据

参考:http://blog.csdn.net/kqygww/article/details/8882990

1.(not null)非空约束:列值不能为空;

CREATE TABLE sys_user(
    id INT NOT NULL,
    user_name VARCHAR(20) NOT NULL DEFAULT 'chensan',
    salary DECIMAL(8,2),
    birthday DATE
);

设置not null的列必须不能为空,否则操作报错;通常对非空的列设置默认值(default),当然未设置非空的列也可以设置default;

此表的id和user_name都为非空列,user_name列如果不设置值,会自动赋值‘chensan’;

CREATE TABLE sys_user(
    id INT,
    user_name VARCHAR(20),
    salary DECIMAL(8,2),
    birthday DATE
);

为id列增加非空约束:ALTER TABLE sys_user MODIFY id INT NOT NULL;-- 则id列不能为空;

去掉id列的非空约束:ALTER TABLE sys_user MODIFY id INT;-- 则id列可为空;

2.(unique)唯一约束:

CREATE TABLE sys_user(
    id INT UNIQUE,
    user_name VARCHAR(20),
    salary DECIMAL(8,2),
    birthday DATE
);

为id设置唯一约束,则不同记录行的id不允许相同;但请注意,当有记录行id的值为null,其它记录行的id也可以为null,因为每个null都不相等;






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值