MYSQL-键表约束及修改数据表

初涉主键约束 (PRIMARY KEY)

PRIMARY KEY:
1、主键约束
2、每张数据表只能存在一个主键
3、主键保证记录的唯一性
4、主键自动为 NOT NULL

在这里插入图片描述
注意
UNSIGNED :unsigned表面含义是 '无符号’的意思,unsigned既为非负数,用此类型可以增加数据长度,

若有人问,TINYINT(m)代表了什么。
TINYINT(10):没有意义,输入10和1000是没有什么区别的。这里输入8,只不过是有10个字符的位置,但是还是显示8,所有没有意义。
TINYINT(10) UNSIGNED :这里的10也是没有意义的。
TINYINT(10) ZEROFILE :这里的10才是有意的。我们输入234则会在2前面 补上7个零。
TINYINT(10) UNSIGNED ZEROFILE :这个和上面的一个是一样的,只是完整的。(ZEROFILE则是在你设置的位数未满补0)

初涉唯一约束(UNIQUE KEY)

1、唯一约束,去重
2、唯一约束保证记录的唯一性
3、唯一约束的字段可以为空值(NULL)
4、每张数据表可以存在多个唯一约束

可能很难理解,原因很简单:
如果说这个字段为空的话,那么就代表两条或两条以上的记录这个字段都可以为空。如果都为空话,那么值都是相同,而相同的又和为一性相背离,但是实际上他们在存储的时候,即使你存储多个数据,他最终保留的控制只有一个,所以说,他也只能有一个空值,这是它保证的唯一性。

现在我们来创建一个既有主键又有唯一约束的数据表:
在这里插入图片描述

MYSQL初涉默认约束 (DEFAULT)

1、默认值
2、当插入记录时,如果没有明确为字段赋值,则自动赋予默认值

在这里插入图片描述
在这里插入图片描述

MYSQL外键约束的要求解析

约束
1、约束保证数据的完整性和一致性
2、约束分为表级约束和列级约束(是根据约束字段的多少来决定的。如果约束只针对某一个字段来约束的话,我们成为列约束;而如果约束针对两个或两个以上的字段来进行约束的话,我们成为表约束。)
3、约束类型包括:
3.1、NOT NULL(非空约束)
3.2、PRIMARY KEY(主键约束)
3.3、UNIQUE KEY (唯一约束)
3.4、DEFAULT(默认约束)
3.5、FOREIGN KEY(外键约束)

FOREIGN KEY
1、保持数据一致性,完整性
2、实现一对一或一对多关系。

外键约束的要求:
1、父表和子表必须使用相同的存储引擎,而且禁止使用临时表。
(子表指的是具有外键列的表,我们称之为子表。而子表所参照的表我们称之为父表。)
2、数据表和存储引擎只能为InnoDB.
3、外键列和参照必须具有相似类型。其中数字的长度或是否有符号位必须相同,而字符的长度则可以不相同。
4、外键列和参照列必须创建索引。如果外键列不存在索引的话,MySQL将自动创建索引。
(如果参照列上没有索引的话,mysql将自动创建索引,如果外键列没有索引的话,Mysql将不能自动创建索引。)
如果不是InnoDB的话,将进行修改成InnoDB
编辑数据表的默认存储引擎
MySQL配置文件(my.ini)
default-storage-engine =INNODB
在这里插入图片描述
![在这里插入图片描述](https://img-blog.csdnimg.cn/20191227224001117.png?x-oss-process=image
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值