用户定义完整性约束

用户定义完整性约束:
用户定义的完整性规则,包括非空约束、自增约束、默认值约束等、check约束以及触发器约束,本次主要学习非空约束、自增约束、默认值约束,check约束以及触发器约束在这里暂时不做介绍。
非空约束(not null):
非空约束是指字段的值不能为null,null值就是没有值或值空缺,不是空串(‘ ’), 对于使用了非空约束的字段,如果用户在添加数据时没有给其指定值,数据库系统会报错。在mysql中,非空约束的定义可以使用 create table 或alter table语句,在某个列定义后面加上关键字 not null作为限定词,来约束该列的取值不能为空。
(1)创建表时,为字段添加非空约束,语法如下:
create table 表名(
字段名 数据类型 not null,
…,
字段名 数据类型
)engine=存储引擎;
例:在数据库db_school中定义班级表book1时,给字段booknum定义非空约束。
use db_school;
create table book1 (
id int(4),
booknum varchar(6) not null,
name varchar(25)
);
(2)修改表,给已经存在的字段添加非空约束,语法如下:
alter table 表名 modify 字段名 数据类型 not null;

例:使用alter table...modify语句给已有字段id添加非空约束。

create table book1 (
id int(4),
booknum varchar(6),
name varchar(25)
);
alter table book1 modify id int not null;

(3)修改表,添加新的字段并添加非空约束条件,语法如下
alter table 表名 add 新字段名 新数据类型not null;
例:已有book1表,向表中新增作者字段author_name, 数据类型为char(10)、非空.
create table book1 (
id int(4),
booknum varchar(6),
name varchar(25)
);
alter table book1 add auther_name char(10) not null;

(4)删除表中字段的非空约束,语法如下:
alter table 表名 modify字段名 数据类型 null;
例:已有表book1,删除字段id的非空约束。
create table book1 (
id int(4) not null,
booknum varchar(6),
name varchar(25)
);
alter table book1 modify id int(4) null;

默认值(default)约束:
默认值约束用于指定一个字段的默认值。如果没有在该字段值填写数据,则该字段将自动填入这个默认值。
(1)创建表时,给字段增加默认值约束,语法如下:
create table 表名(
字段名 数据类型 default 默认值,
…,
字段名 数据类型
)engine=存储引擎;
例:在数据库db_school中定义成员表persons时,给字段city定义默认值约束。
create table persons(
id_p int ,
lastname varchar(10) ,
firstname varchar(10),
address varchar(100),
city varchar(20) default ‘shanghai’
);
以上创建的表persons中,对城市‘city’给了默认值,在插入数据的时候如果不输入其他值,给一个default,mysql会自动给默认值’shanghai’

(2) 修改表,对表中已有的字段设置默认值,语法如下:
alter table 表名 alter 字段名 set default ‘默认值’;
例:使用alter table…alter语句给表persons已有字段id_p添加默认值0
create table persons(
id_p int ,
lastname varchar(10) ,
firstname varchar(10),
address varchar(100),
city varchar(20) default ‘shanghai’
);
alter table persons alter id_p set default 0;

(3)修改表,在表中新增字段且为该字段设置默认值,方法如下:
alter table 表名 add 新字段名 新数据类型 default ‘默认值’;
例:给表persons增加字段sex表示性别,char(10),并且设置默认值 ‘男’;
create table persons(
id_p int ,
lastname varchar(10) ,
firstname varchar(10),
address varchar(100),
city varchar(20) default ‘shanghai’
);
alter table persons add sex char(10) default ‘男’;

(4)删除表中某个字段的默认值,方法如下:
alter table表名 alter 字段名 drop default;
例:删除表persons性别字段sex的默认值
alter table persons alter sex drop default;

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

凡陌熙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值