1.整体说明
(1)讨论重点内容
    not null 与default
    unique:表中该值唯一,不能有重复值
    primary
    auto_increment
    foreign key
(2)约束条件与数据类型的宽度一致,都是可选参数
(3)作用:用于保证数据的完整性和一致性。
(4)主要分为如下:

PRIMARY KEY (PK)    #标识该字段为该表的主键,可以唯一的标识记录
    FOREIGN KEY (FK)    #标识该字段为该表的外键
    NOT NULL    #标识该字段不能为空
    UNIQUE KEY (UK)    #标识该字段的值是唯一的
    AUTO_INCREMENT    #标识该字段的值自动增长(整数类型,而且为主键)
    DEFAULT    #为该字段设置默认值

UNSIGNED #无符号
    ZEROFILL #使用0填充
(5)其他说明如下:
    #1. 是否允许为空,默认NULL,可设置NOT NULL,字段不允许为空,必须赋值
    #2. 字段是否有默认值,缺省的默认值是NULL,如果插入记录时不给字段赋值,此字段使用默认值
    sex enum('male','female') not null default 'male'

#必须为正值(无符号) 不允许为空 默认是20
    age int unsigned NOT NULL default 20
    # 3. 是否是key
    主键 primary key
    外键 foreign key
    索引 (index,unique...)

2.not null 与default
(1)默认值可以为空。
(2)设置not null时,插入值时不能为空。
(3)设置id字段有默认值后,则无论id字段是null还是not null,都可以插入空,插入空值时默认填入default指定的默认值。

3.unique:唯一
(1)包括单列唯一、多列唯一以及联合唯一。
    create table user4(
        id int unique,
        name char(20)
    );

create table user4(
        id int,
        name char(20),
        unique(id)
    );
(2)单列唯一
    create table user4(
        id int unique,
        name char(20)
    );
(3)多列唯一
     多列都不相同才可以插入,只要有一列相同都不能插入
    create table user5(
        id int unique,
        name char(20),
        ip char(30)unique
    );

(4)联合唯一
    只要有一列不同 都可以插入。
    create table user6(
        id int,
        name char(20),
        ip char(30),
        unique(id,ip)
    );

4.primary key
在MySQL的一个表中只有唯一的一个主键,不能有多列主键,但可以有复合主键

一个表中可以:

单列做主键
多列做主键(复合主键)

5.auto_increment
(1)不指定ID,则自动增长
(2)指定ID则按照指定的ID增长
(3)对于自增的字段,在用delete删除后,再插入值,该字段仍按照删除前的位置继续增长

6.foreign key

create table emp(
    id int primary key,
    name varchar(20) not null,
    age int not null,
    dep_id int,
    constraint fk_dep foreign key(dep_id) references dep(id)
    on delete cascade #同步删除
    on update cascade #同步更新
);

05-MySQL的完整性约束的更多相关文章

  1. MySQL表完整性约束

    =======MySQL表完整性约束====== 目录: 一.介绍 二.not null 与 default 三.unique 四.primary key 五.auto_increment 六.for ...

  2. mysql之完整性约束

    主要内容 not null 与 default unique primary auto_increment foreign key 约束条件作用:用于保证数据的完整性和一致性 主要分为 PRIMARY ...

  3. 【MySQL】完整性约束

    " 目录 not null default unique 单列唯一 联合唯一 primary key 单列主键 复合主键 auto_increment 步长与偏移量 foreign key ...

  4. Java面试05|MySQL及InnoDB引擎

    1.InnoDB引擎索引 InnoDB支持的索引有以下几种: (1)哈希索引 (2)全文索引 (1)B+树索引 又可以分为聚集索引与辅助索引 索引的创建可以在CREATE TABLE语句中进行,也可以 ...

  5. Web开发相关笔记 #05# MySQL中文无法匹配

    2018-06-02 在 Class.forName 的时候记得先尝试 import 一下. 2018-06-04 1.JDBC SELECT 查询,中文条件查不出东西,可能是字符编码问题: Stri ...

  6. MySQL数据库----完整性约束

    一.介绍 约束条件与数据类型的宽度一样,都是可选参数 作用:用于保证数据的完整性和一致性主要分为: PRIMARY KEY (PK) 标识该字段为该表的主键,可以唯一的标识记录 FOREIGN KEY ...

  7. 05: MySQL高级查询

    MySQL其他篇 目录: 参考网站 1.1 GROUP BY分组使用 1.2 mysql中NOW(),CURDATE(),CURTIME()的使用 1.3 DATEDIFF() 函数 1.4 DATE ...

  8. mysql数据类型 完整性约束 054

    创建用户和授权用户权限: # .创建用户: # 指定ip .109的fgf用户登录 '; # 指定ip .开头的fgf用户登录 '; # 指定任何ip的fgf用户登录 '; # .删除用户 drop ...

  9. MySQL -表完整性约束(Day41)

    阅读目录 一.介绍 二.not null 与 default 三.unique 四.primary key 五.auto_increment 六.foreign key 七. 总结 一 介绍 回到顶部 ...

  10. hadoop生态搭建(3节点)-05.mysql配置_单节点

    # ==================================================================node1 # ======================== ...

随机推荐

  1. STL序列容器之vector

    一,vector容器简介 1.vector容器的原理 vector是将元素置于一个动态数组中加以管理的容器. 2.vector容器的特点 vector容器可以随机存取元素,支持索引存取(即用数组下标的 ...

  2. DDD实战9 经销商领域上下文

    1.创建Dealer.Domain 类库项目 2.创建实体和值对象 3.安装ef的包 4.创建上下文接口(IDealerContext)之所以要创建上下文接口,是为了可替换,在其他项目总使用接口,当需 ...

  3. 假设做一个循环滚动UIScrollView

    先上效果图: 首先初始化: - (void)viewDidLoad { //加入最后一张图 用于循环 int length = 4; NSMutableArray *tempArray = [NSMu ...

  4. 浅谈WPF中对控件的位图特效(WPF Bitmap Effects)

    原文:浅谈WPF中对控件的位图特效(WPF Bitmap Effects) -------------------------------------------------------------- ...

  5. moost — Last.fm's collection of C++ utility libraries(功能很多)

    libmoost libmoost is a collection of C++ utility libraries, including: algorithms (set intersection, ...

  6. MSRA专访摘要

    前段时间有幸参加微软亚洲研究院之旅,顺便投简历,没想到在两次访谈迎来,并且是连续 的两次被拒绝.严重的刺激到了我.导致我疯狂的复习刷Offer.如今最终算是告于段落.如今也最终有空沉下心来总结 总结近 ...

  7. 使用 advanced installer 为 winform 做自动更新

    原文:使用 advanced installer 为 winform 做自动更新 advanced installer 是一款打包程序,基于 windows installer 并扩展了一些功能,比如 ...

  8. WPF 数据模板DataType属性的使用,不用指定ItemTemplate

    <Window x:Class="CollectionBinding.MainWindow"        xmlns="http://schemas.micros ...

  9. 查看安卓APK源码破解

    原文:查看安卓APK源码破解 工具准备: <1>.android4me的AXMLPrinter2工具 <2>dex2jar <3>jd-gui 工具下载:http: ...

  10. php将两个数组相同的key合并到一个数组

    $arr = array(     array(     'id' => 1,     'user_name'=>'test1'     ),     array(     'id' =& ...