zoukankan      html  css  js  c++  java
  • MYSQL基础四--约束

    约束

    1.约束数据的完整性和一致性;

    2.约束分为表级约束(单个表)和列级约束(多表之间的约束)。

    3.约束的类型:

    NOT NULL;非空约束

    DEFAULT;默认约束

    PRIMARY KEY;主键约束

    UNIQUE KEY;唯一约束

    FOREIGN KEY;外键约束

    4.自动编号,必须与主键组合使用。默认情况下起始值为1,不断递增。AUTO_INSCRMENT

    5.主键约束,每张表只能有一个主键,主键保证记录的唯一性,主键为NOT NULL。

    在AUTO_INSCRMENT后加primary key

    create table tab_blue(id int unsighned auto_increment primary key,username varchar(30));

    6.唯一约束:UNIQUE KEY

    唯一约束保证记录的唯一性,一张表可以存在多个唯一约束,且可以为NULL。

    唯一约束的意义在于当需要在表中的值是唯一不能重复的时候,需要将该序列的值设置为唯一性约束。

    如学号的唯一性,在学号序列中设置唯一性约束,当出现相同学号的时候就会报错。

    7.默认约束

    当插入记录,没有明确为字段赋值,则自动赋予默认值。Default

    8.外界约束

    保持数据一致性,完整性。实现一对一或一对多关系。

    父表和子表必须使用相同的存储引擎,而且禁止使用零时列表。

    数据表的存储引擎只能是InnoDB。

    外键列和参照列必须具有相似的数据类型。其中数字的长度或是否有符号位必须相同;而字符的长度可以不同。

    外键列和参照列必须创建索引。如果外键列不存在索引的话,MYSQL将自动创建索引。

    编辑数据表的默认的存储引擎

    CASCODE:从父表删除或删除且自动删除或更新子表中匹配的行;

    SET NULL:从父表删除或更新行,并设置子表的外键列为NULL,如果使用该选项,必须保证子列表没有指定NOT NULL.

    RESTRICT:拒绝父表的删除或更新操作。

    NO ACTION:与RESTRICT相同。

    以上方式为物理外键约束。

    所谓的逻辑外键,我们定义两张表的结构的时候,我们是安装定义两张表的结构去定义,而不去使用foreign key这个关键词去定义。

    在外键约束当中,在实际的开发过程中,我们很少使用物理的外键约束,很多都去使用逻辑的外键约束,因为物理的外键约束只有INNODB这种引擎才会支持,像我们另外的一种引擎MYISAM的引擎则不支持,反过来说,如果我想创建的数据表,假设存储引擎为MYISAM,而且又想使用外键约束的话,其实是不可能实现的,所以说,我们在实际的项目开发中,我们不去定义物理的外键,所谓的逻辑外键指的是就是我们在定义两张表的结构的时候,我们是按照存在的某种结构的方式去定义,但是不去使用FOREIGN KEY这个关键词来定义。

  • 相关阅读:
    斐波那契数列 (一些公式)
    TreeMap的应用
    Maximum Depth of Binary Tree,求树的最大深度
    Minimum Depth of Binary Tree,求树的最小深度
    层序遍历二叉树的两种方法
    Binary Tree Zigzag Level Order Traversal,z字形遍历二叉树,得到每层访问的节点值。
    Binary Tree Level Order Traversal,层序遍历二叉树,每层作为list,最后返回List<list>
    Symmetric Tree,对称树
    Same Tree,判断两个二叉树是不是相同的树,结构相同,每个节点的值相同
    Recover Binary Search Tree,恢复二叉排序树
  • 原文地址:https://www.cnblogs.com/moxuexiaotong/p/6586508.html
Copyright © 2011-2022 走看看