zoukankan      html  css  js  c++  java
  • MySql(二):常见的那些个约束

       今天总结一下mysql当中的常见约束吧!

      那什么是约束呢?通俗点讲,约束就是限定指定字段的存放规则!

    ● 主键约束(Primary Key)

    ● 外键约束(Foreign Key)

    ● 非空约束(Not Null)

    ● 唯一约束(Unique)

    ● 默认约束(Default)


    主键约束 Primary Key

    主键约束要求主键列的数据唯一且不允许为空, 可分为单字段主键和多字段联合主键.

    添加主键

    # 建表时在字段后设置主键并自增
    create table demo(
    id  int primary key auto_increment);
    # 建表时在约束区设置主键(多字段联合主键)
    # 约束区不能设置自增即:auto_incremen
    create table demo(
    id     int ,
    age  int,
    primary key(id));  # 联合主键为:primary key(id,age));
    # 在已有的表中添加主键
    alter table demo add primary key(id);
    # 在已有表中添加自增主键
    alter table demo modify id int primary key auto_increment;
    # 设置表的已有主键自增
    alter table demo modify id int auto_increment;
    # 设置主键自增起始值(默认是1)
    alter table demo auto_increment=2;

    删除主键

    # 注意:若指定了主键自增则此法删除不了主键(约束)
    alter table demo drop primary key;
    # 若主键指定了自增,则用只能从定义来删除主键了
    alter table demo modify id int;

    外键约束 Primary Key

    外键用来在两个表之间建立链接,它可以是一列或多列,一个表可以有一个或多个外键.

    添加外键

    # 创建表时添加
    # demo1 为主表,外键引用主表的id字段
    create table demo(
    id int,
    price double,
    user_id int,
    foreign key(user_id) references demo1(id))
    # 修改现有表添加
    # 先添加外键字段
    alter table demo add user_id int;
    # 再添加外键约束
    alter table demo add foreign key(user_id) references demo1(id);

    删除外键

    # 一般不用(外键名称可在添加外键时指定,否则为默认的)
    alter table demo drop foreign key 外键名称;

    非空约束 Not Null

    非空约束要求该列字段值不能为空,否则会报错.(可配合默认约束)

    # 在字段后面添加非空约束
    create table demo(
    id  int not null);
    # 在已有表添加非空约束
    alter table demo change id id int not null;
    # 删除非空约束
    alter table demo change id id int;

    唯一约束 Unique

    唯一约束要求改列字段值唯一,允许为null(多个null也可).

    # 创建表时在字段后指定
    create table demo(
    id  int unique);
    # 创建表时在约束区添加
    create table demo(
    id int, 
    age int,
    unique(id, age));
    # 为已有表添加
    alter table demo add unique(id);
    # 删除约束
    alter table demo drop index id;

    默认约束 Default

    指定某列的默认值.

    # 创建表时指定
    create table demo(
    id  int, 
    age  int default 1);

    关注微信公众号,随时随地学习

  • 相关阅读:
    不务正业系列-浅谈《过气堡垒》,一个RTS玩家的视角
    [LeetCode] 54. Spiral Matrix
    [LeetCode] 40. Combination Sum II
    138. Copy List with Random Pointer
    310. Minimum Height Trees
    4. Median of Two Sorted Arrays
    153. Find Minimum in Rotated Sorted Array
    33. Search in Rotated Sorted Array
    35. Search Insert Position
    278. First Bad Version
  • 原文地址:https://www.cnblogs.com/dintalk/p/10844430.html
Copyright © 2011-2022 走看看