mysql学习笔记之二(表约束)

操作表约束
完整性是指数据的准确性和一致性,而完整性检查就是指检查数据的准确性和一致性。mysql数据库管理系统提供了一直机制来检查数据库中的数据是否满足规定的条件。以保证数据库中数据的准确性和一致性,这种机制就是约束。
mysql所支持的完整性约束
NOT NULL(NK)
DEFAULT
UNIQUE KEY(UK)约束字段的值是唯一的
PRIMATYKEY(PK)
AUTO_INCREMENT
FOREIGN KEY(FK)
不支持check约束,即可以使用check约束,但是没有效果
约束:
单列约束
多列约束
1、NOT NULL (NK)
在创建表的时候,指定属性为not null即可
例:
create table t_name(
column type not null
)
create table t_notnull{
id int not null,
name varchar(20)
}
insert into t_notnull(name) values("dsagdfs");
会发现对应的id被置为0
alter table t_notnull modify id int;
insert into t_notnull(name) values("fdgdf");
发现对应的id为null
2、DEFAULT
创建表时指定
create table t_name(
column type default
)
例:
create table t_default(
id int not null,
name varchar(20) default 'test'
)
insert into t_default(id) values(1);
insert into t_dedault(name) values('name');
3、AUTO_INCREMENT
create table t_name(
column type auto_increment
)
create table t_auto(
id int primay key auto_increment,
name varchar(20) default 'test'
)
注意:使用的时候该列要指定为primary key,该列是数值列
4、UNIQUE UK
create table t_name(
column type unique
)
create table t_name(
column type
constraint uk_column unique(column)
)
constraint:约束
在为约束设置标示符时,推崇使用“约束缩写_字段名”的格式
create table t_unique(
id int primary key,
name varchar(20) unique
)
注意:
1、auto_increment显然也能实现unique的功能,但是没有unique灵活,unique的列不必是主键列,也不一定是数字列,
2、varchar必须指定字节数,否则会失败
5、primary key
单字段主键
create  table t_name(
column type primary key
)
create table t_name(
column type
contraint pk_column primary key(column)
)
多字段主键
create table t_name(
column1 type ,
column2 type
...
contraint pk_column1_column2 primarykey(column1,column2)
)
6、foreign key
前五个约束都是都是单表,而外键约束牵涉到了多个表。
设置外键约束的两个表之间会有父子关系,即子表中某个字段的取值范围由父表所决定。
在具体设置FK约束时,设置FK约束的字段必须依赖于数据库中的已经存在的父表的主键,同时外键可以为null
create tablet_name(
column1 type,
column2 type,
constraint fk_column1 foreign key(column1) references tablename (columname)
)
column1:外键,columnname:父表中设置主键约束的字段
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值