美文网首页
MySQL入门:约束

MySQL入门:约束

作者: 我的袜子都是洞 | 来源:发表于2018-12-06 20:39 被阅读10次

约束

约束是给表中的数据添加的强制执行的校验规则,被增、删、改的数据必须符合约束条件,查询到的数据才是合理的。

关系型数据库中有5个完整性约束:

  • 非空约束
  • 唯一性约束
  • 主键约束
  • 外键约束
  • 检查约束

非空约束:NOT NULL

值不能为空,列级约束,约束条件写在列的后面,仅对某列有效


非空约束

唯一性约束:UNIQUE

值不能重复,(可以有多个NULLNULL不是值),列级约束、表级约束。
写在列的后面,可以给某一列添加唯一性约束。

唯一性列级约束

也可以写在表的后面,给多列一起做唯一性约束。

唯一性表级约束

说明:idname组合唯一性约束

给组合的约束键起名:

组合的**约束键**起名

主键约束:PRIMARY KEY

值非空且唯一,能够唯一标识该条记录,是列级约束或表级约束。一张表中只能有一个主键。


主键约束

表级约束写法:


表级约束写法

外键约束:FOREIGN KEY

值是另一张表的主键,若有值一定是主键的值。主键表称为主表,使用主键做外键的表成为从表。首先定义主表,然后定义从表。使用外键表必须是innodb引擎。
定义主表:

主表

定义从表:


从表

检查约束:CHECK

MySQL不支持检查约束

自增长

AUTO_INCREMENT,一般用于主键,需要列为数值类型。

默认值

DEAFULT '默认值',设置字段默认值。

索引

一张表对应3个文件:

  • frm结构文件
  • myd数据文件
  • myi索引文件

删除对应文件关系:

删除命令 对应文件
DROP 删除frm,myd,myi
TRUNCATE 删除myi,myd删除了日志信息
DELETE 删除myd在myi文件中保留着索引记录

修改约束

ALTER语句修改约束
添加新列并设置主键:ALTER TABLE 表名 ADD 列名 INT PRIMARY KEY;
删除主键:ALTER TABLE 表名 DROP PRIMARY KEY;
已有列添加主键:ALTER TABLE 表名 ADD PRIMARY KEY(列名);
添加外键:ALTER TABLE 从表名 ADD CONSTRAINT 从表外键名 FOREIGN KEY(从表外键列名) REFERENCES 主表名(主表主键列名);
删除外键:ALTER TABLE 从表名 DROP FOREIGN KEY 外键名 ;

唯一性约束的添加和删除
添加:ALTER TABLE ADD CONSTRAINT 定义的约束名 UNIQUE (列名);
删除:DROP INDEX 定义的约束名 ON 表名
修改:ALTER TABLE 表名 MODIFY 列名 列类型;

默认值的添加和删除
添加:ALTER TABLE 表名 ALTER COLUMN 列名 SET DEFAULT 默认值;
删除:ALTER TABLE 表名 ALTER COLUMN 列名 DROP DEFAULT;

相关文章

  • MySQL入门:约束

    约束 约束是给表中的数据添加的强制执行的校验规则,被增、删、改的数据必须符合约束条件,查询到的数据才是合理的。 关...

  • mysql 学习语句

    MySQL学习笔记 登录和退出MySQL服务器 基本语法 建表约束 主键约束 唯一主键 非空约束 默认约束 外键约...

  • mysql约束

    1, mysql 不支持外键约束 ,条件约束约束分为列级约束,primary 主键约束check 条件约束for...

  • MySQL基础——约束

    上篇文章我们学习了MySQL基础——函数,这篇文章我们学习MySQL基础——约束。 约束 约束是作用于表中字段上的...

  • mysql 约束

    接下来的一些内容,我们需要提前学一些简单的sql语句,方便大家理解接下来的知识。 DDL—数据定义语言(Creat...

  • MySQL约束

    mysql约束 1. 约束简介 关系型数据库系统和文件系统的一个不同点是,关系型数据库本身能保证存储数据的完整性,...

  • MySQL约束

    概念: 为了保证数据的完整性和一致性,MySQL提供了约束这个属性。约束分为表级约束和列级约束,如果约束只是针对某...

  • mySQl约束

    MYSQL的五种约束

  • MySQL约束

    PRIMARY KEY 主键 修改 删除 UNIQUE 唯一 添加 删除 FOREIGN KEY 修改 删除 删除...

  • mysql 约束

    主键约束表的主键设计策略任意两行都不具备相同的主键值每行都必须有一个主键值(主键不允许null列)主键和业务无关,...

网友评论

      本文标题:MySQL入门:约束

      本文链接:https://www.haomeiwen.com/subject/xudacqtx.html