zoukankan      html  css  js  c++  java
  • Mysql之 约束 & 数据库的模式

    一、约束

    详情见: https://blog.csdn.net/w_linux/article/details/79655073

    Mysql不支持第五种检查约束CHECK

    (一)非空约束(not null)

    (二)唯一性约束(unique)

    1、表级约束:email varchar(128) unique

    • 使用表级约束,给多个字段联合约束:unique(name,email)
    • 给约束起名:constraint t_user_email_unique unique(email)

    2、可同非空约束一起使用,既不能为空,也不能重复:name varchar(32) not null unique

    (三)主键约束(primary key) PK

    主键约束除了可以做到"not null unique"之外,还会默认添加"索引——index"0

    1. 单一主键(列级定义)
      •  (表级定义)constraint t_user_id_pk primary key(id)
    2. 复合主键(表级定义)primary key(id,name)

    (四)外键约束(foreign key) FK

    1.注意点

    • 外键值可以为null
    • 外键字段去引用一张表的某个字段的时候,被引用的字段必须具有unique约束
    • 有了外键引用之后,表分为父表和子表
      •  班级表:父表 <id是primary key的是父表>
      •  学生表:子表 <id是foreign key的是子表>
    • 创表先创有primary key 父表
    • 插表先插有primary key 父表
    • 删除先删foreign key子表

    2.CONSTRAINT fk_PerOrders FOREIGN KEY (P_Id) REFERENCES .. 和

    FOREIGN KEY (P_Id) REFERENCES ..两种区别?

    >>> 区别仅限外键的命名。一般使用单独增加外键的方式。

    二、模式

    1.外模式

    • 用户编程时的对象或属性

    2.模式/逻辑模式/概念模式

    • 表或关系,如:存储过程/视图/触发器

    3.内模式

    • 存储如表在哪个表空间在哪里有索引,表空间的数据文件放在哪里,在哪个磁盘。

    三、约束是一种模式吗?

    约束依附于表,不是模式。

    灭表自动灭约束,但模式如函数并不消失。

  • 相关阅读:
    DNN SEO专题 (收集)
    DataTable或者DataSet匯出Excel
    用C#制作PDF文件全攻略(转)
    BlogEngine资料收集
    DNN架构解析(收集)
    Community Server:快速找到需要修改的文件[技巧]
    通用的分页存储过程
    DataTable/DataSet汇出Excel
    百试不爽的30条职场经验(转)
    等宽字体
  • 原文地址:https://www.cnblogs.com/sabertobih/p/13966709.html
Copyright © 2011-2022 走看看