day037-2 mysql数据库完整性约束

本节内容:

1、介绍什么是约束条件
2、not null(不能为空)与default(默认值)
3、unique(唯一)
4、primary key(主键,不为空且唯一)
5、auto_incerment(自增id序号)
6、foreign key(外键,表之间的指向关系,关联关系)

一、介绍什么是约束条件

约束条件与数据类型的宽度一样,都是可选参数

  作用:用于保证数据的完整性和一致性
  主要分为:

PRIMARY KEY (PK)    标识该字段为该表的主键,可以唯一的标识记录
FOREIGN KEY (FK)    标识该字段为该表的外键

NOT NULL    标识该字段不能为空,即不可为null,但是可以为'',空字符并不是空

UNIQUE KEY (UK)    标识该字段的值是唯一的

AUTO_INCREMENT    标识该字段的值自动增长(整数类型,而且为主键)

DEFAULT    为该字段设置默认值,设置以后,当not null条件下,不输入,就为默认值

UNSIGNED 无符号
ZEROFILL 使用0填充
Mysql
Copy

一些说明

1. 是否允许为空,默认NULL,可设置NOT NULL,字段不允许为空,必须赋值
2. 字段是否有默认值,缺省的默认值是NULL,如果插入记录时不给字段赋值,此字段使用默认值 sex enum('male','female') not null default 'male' age int unsigned NOT NULL default 20 必须为正值(无符号) 不允许为空 默认是20 3. 是否是key 主键 primary key 外键 foreign key 索引 (index,unique...) 
Python
Copy

二、not null与default

1、not null(不可空)

是否可空,null表示空,非字符串,

  not null – 不可空(指什么都没有输入),但是空字符可以,
  null – 可空,不输入任何都可以

2、default(默认值)

默认值,创建列时可以指定默认值,
当插入数据时如果未主动设置,则自动添加默认值

3、输入相关命令的示例及结论

create table tb2(

    id int not null default 2, # int类型的,不可为空且设置了默认值
    num int not null # 不可为空,但没有设置默认值,默认值为null
  );

# 1、非严格模式,如果int类型,不传值,因null不是int类型,该处的值将默认为0;
mysql> insert into tb2(id,num) values (1,); # 只插入一条数据也是可以的

# 注意:即便是你只给一个字段传值了,那么也是生成一整条记录,
这条记录的其他字段的值如果可以为空,那么他们就都是null空值,
如果不能为空,就会报错。

# 2、严格模式,传非int类型的值,该处的值也是0
mysql> insert into tb2(id,num) values (1,'疏影');
Mysql
Copy

综合练习

mysql> create table student(
    -> name varchar(20) not null, -> age int(3) unsigned not null default 18, -> sex enum('male','female') default 'male', -> hobby set('play','study','read','music') default 'play,music' -> ); mysql> desc student; +-------+------------------------------------+------+-----+------------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+------------------------------------+------+-----+------------+-------+ | name | varchar(20) | NO | | NULL | | | age | int(3) unsigned | NO | | 18 | | | sex | enum('male','female') | YES 

转载于:https://www.cnblogs.com/yipianshuying/p/10125737.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值