mysql之约束条件

存储引擎默认是innodb
对于innodb来说,每张表内必须有一个主键

primary key -----------标识该字段为主键,唯一的表示记录
foreign key-------------表示该字段为该表的外键。
not null--------------------标识该字段不能为空。
unique key -------------标识该字段值是唯一的。
auto_increment-------标识该字段为自动增长(整数类型,而且为主键)。
default-----------------为该字段的默认值。
unsigned------无符号
zerofill --------使用0填充

1、unsigned

unsigned----不能有符号
age int unsigned not null default 20----age必须是正数(无符号)不能为空,默认20

2、null

是否可空,null表示空,非字符串
not null —不可为空
null ------可空

3、unique key

unique key -------------标识该字段值是唯一的
方式一:
create table t1(id int unique,name char(4) unique);----id和name都是唯一的
方式二:
create table t1(id int,name char(6),unique(id),unique(name));
几个字段组合一起唯一,单个重复无所谓
create table t1(id int,name char(6),unique(id,name))

4、primary key

primary key---------字段的值不为空且唯一
单列做主键的方法:
方式一:not null unique
create table t1(id int not null unique,name char(6))----id为主键
方式二:字段后跟 primary key
create table t1(id int primary key,name char(6))-----id为主键
方式三:在所有字段后单独定义
create table t1(id int,name char(6),constraint ccc primary key(id))
id为主键,创建主键并命名ccc

多列做主键的方法:
create table t1(id int,name char(6),primary key(id,name));

5、auto_increment

约束该字段为自动增长,同时该字段必须被key约束
create table t1(id int primary key auto_increment,name char(6));
设置了id自动增长,在传值的时候id可以不填,会自动依次+1

6、foreign key

关联表与表
比如员工表(emp)和部门表(dep)
先创建被关联的部门表
create table dep(id int primary key,
name char(6) not null
);
这里的id 一定要保证唯一
再创建关联的员工表
create table emp(
id int primary key,
name char(6) not null,
dep_id int,
constraint fk_name foreign key(dep_id) references dep(id)
on delete cascade #删除同步
on update cascade #更新同步 注意没有逗号
)
#constraint fk_name foreign key(dep_id) references dep(id) -------
这条的意思就是创建外键dep_id将emp的dep_id与dep表的(id)关联起来

7、清空列表

方式一:
delete from t1;
注意 delete 方法 把表清空,但是如果是自增长的,那么如果表的自增长到11,用delete清空表之后,自增长数据不会清空,下次传值会随 11 之后继续增加。常跟where连用,删除固定的记录
方式二:
truncate t1;
truncate 会直接把表所有都清空。 清空表应该用这个。删除速度比delete快。

8、了解

show variables 查看系统变量及其值
show variables like ‘auto_inc%’ 加个% 可以把 auto_inc 开头的 都调出来
步长 :
auto_increment_increment 默认为1
起始偏移量
auto_increment_offset 默认为1
设置步长:
set session auto_increment_increment=5;
set global auto_increment_increment=5;
设置起始偏移量:
set global auto_increment_offset=3; 起始id=3
强调:起始偏移量必须<=步长,否则失效

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值