美文网首页
MySQL约束

MySQL约束

作者: steamed_bun | 来源:发表于2016-11-09 17:37 被阅读0次
1、NOT NULL 非空约束----字面意思
2、PRIMARY KEY 主键约束
  |----只能有一个主键;
  |----自动为NOT NULL;
  |----保证数据的唯一性;
3、UNIQUE KEY 唯一约束
  |----可以保证记录的唯一性;
  |----并且可以为NULL;
  |----一张表可以有多个唯一约束;
4、DEFAULT 默认约束
  |----当没有明确赋值时,系统给当前字段附默认值

e.g.

CREATE TABLE tb1(
 id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY ,
 sex ENUM('男','女','保密') DEFAULT'保密'
);
INSERT INTO tb1(id) VALUES (1);

插入完后查询记录

SELECT * FROM tb1;

得到如下表所示:


tb1
5、FOREIGN KEY 外键约束

①、要求

  |----父表和子表的搜索引擎必须为InnoDB,而且禁止使用临时表;
  |----外键列和参照列必须为相似的数据类型(数字的长度、无符号位等必须相同,字符的长度不限制);
  |----外键列和参照列必须创建索引,外键列系统会自动添加,而参照列如果不是就会出错;

e.g.
创建父表tb2(包含参照列的表)

CREATE TABLE tb2(
id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
pname VARCHAR(20) NOT NULL
);
SHOW COLUMNS FROM tb2;#查看父表tb2的表结构

可看到如图:

tb2表结构

再创建子表users(包含外键列的表):

CREATE TABLE users(
id SMALLINT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(20) NOT NULL,
pid SMALLINT UNSIGNED,#数据类型与父表tb2参照列id一样
FOREIGN KEY (pid) REFERENCES tb2 (id) #设置将tb2的id字段为当前表pid的外键
);
SHOW COLUMNS FROM users;#查看子表users表结构

可看到如图:


users的表结构

可以验证tb2的id字段由于是主键,故其是有索引的

SHOW INDEX FROM tb2;

得到下图:


tb2的主键索引

还可以验证users表的pid字段也被系统自动添加了索引

SHOW INDEX FROM users;

得到下图:

users的所有索引
②、外键约束的参照--即在更新父表是子表应该做的相应操作(具体
③、我们在实际的项目开发中,不去定义物理的外键,所谓的逻辑外键指的是就是我们在定义两张表的结构的时候,我们是按照存在的某种结构的方式去定义,但是不去使用FOREIGN KEY这个关键词来定义

相关文章

  • 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约束

    1、NOT NULL 非空约束----字面意思 2、PRIMARY KEY 主键约束 3、UNIQUE KEY 唯...

网友评论

      本文标题:MySQL约束

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