zoukankan      html  css  js  c++  java
  • MySQL基础入门学习【4】约束2

    约束: 保证数据的一致性和完整性

    约束分为(约束所针对的字段的多少决定): 表级约束和列级约束

    约束类型: NOT NULL(非空约束); PRIMARY KEY(主键约束); UNIQUE KEY(唯一约束); DEFAULT(默认约束); FOREIGN KEY (外键约束)

    1. 外键约束:

    (1)作用:保证数据一致性、完整性;实现数据表的一对一或一对多关系

    (2)要求:父表与子表必须使用相同的存储引擎,且禁止使用临时表;

        数据表的存储引擎只能为InnoDB;

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

        外键列和参照列必须创建索引,如果外键列不存在索引的话,MySQL将自动创建索引。(主键创建的时候自动创建索引)

    (3)子表: 具有外键列的表;父表:子表所参照的表

    (4)编辑数据表的默认存储引擎:MySQL配置文件: default-storage-engine=INNODB,重启;

        查看存储引擎: mysql> SHOW ENGINES;  或者 SHOW CREATE TABLE tbl_name;

    (5) 针对于外键约束的参照操作:(在进行了外键创建以后,在更新表的时候,子表是否也进行相应的操作)

    CASCADE: 从父表删除或更新记录时,同时也删除或更新子表中的相应的行

    (必须先在父表中插入记录,然后才能在子表中插入记录)

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

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

    NO ACTION: 标准SQL的关键字,在MySQL中与RESTRICT相同

    实际开发中很少使用物理的外键约束,很多都使用逻辑的外键约束。因为物理外键约束只有innodb引擎支持。

    所谓逻辑外键,是指在定义两张表的结构时,按照存在着某种结构的方式去定义,但是不去使用FOREIGN KEY这个关键词来定义。

    [参考链接]   https://www.imooc.com/learn/122 

  • 相关阅读:
    POJ 1006 ( 中国剩余定理 )
    HDU 2736 Surprising Strings
    STL----map 章节
    最短路问题
    [HAOI2007]反素数
    严格次小生成树[BJWC2010]
    P3320 [SDOI2015]寻宝游戏(LCA)
    [Violet]樱花/阶乘分解
    [HNOI2008]GT考试
    2012 年国家集训队互测 Tree
  • 原文地址:https://www.cnblogs.com/jade-91/p/8672669.html
Copyright © 2011-2022 走看看