• 学习Mysql3——约束条件


    • 主键约束

    唯一确定一张表的记录,给某个字段添加约束就可以确认它不为空且唯一

    在定义的参数后添加 primary key

    create table user(
    
      id int(20) primary key,
    
      name varchar
    
    );

    --联合主键 任意一个不为空即可--

    create table user(

      id int(20) ,

      name varchar,

      primary key(id,name)

    ) ;

    可以通过

    alter table user add primary key(id);

    添加主键约束

    可以通过

    alter table user drop primary key(id);

    删除主键约束

    可以通过

    alter table user modify id int primary key;

    添加主键约束

    • 自增约束

    在参数后面加入 auto_increment

    create table usr(
    
      id int(20) primary key auto_increment,
    
      name varchar
    
    );
    • 外键约束

    牵扯到两个表一个子表一个父表,用来做关联

    foreign key()references 表名 ()

    create table father(
       id int primary key,
       name varchar(20)  
    );
    
    create table children(
       id int primary key,
       name varchar(20)  
       foreign key (id) references father(id)   
    );

    主表没有数据值时,副表不可以添加

    例如

    主表

    insert into  father Value("1","father1")

    副表

    insert into  children Value("2","children1")

    插入失败 因为id为2在主表找不到,正确的话只能设置为1

    主表中的数据被引用时,主表数据是不可以删除的

    例如 

    上面的例子要删除主表的数据id等于1是可以的 但是如果副表插入一条数据

    insert into children value(“1”,“children”)

    这样主表就删除不了数据了

    • 唯一约束

    修饰该字段不可以重复

    alter table user add unique(id);
    
    create table user(
       name varchar(20) unique
    );
    唯一约束其中一个不重复即可
    create table user( name varchar(20),
      id int,
    unique(name,id) );
    • 非空约束

    值不能传空

    not null

    和上述的约束用法相似

    • 默认约束

    插入没有传值就会传默认值

    default + 默认值

    和上述的约束用法相似

  • 相关阅读:
    STL之vector详解
    vim下使用YouCompleteMe实现代码提示、补全以及跳转设置
    Ceph之数据分布:CRUSH算法与一致性Hash
    ceph之crush算法示例
    Js正则Replace方法
    JS框架设计之加载器所在路径的探知一模块加载系统
    JS模块加载系统设计V1
    JS框架设计之模块加载系统
    Builder生成器(创建型模式)
    JS框架设计之主流框架的引入机制DomeReady一种子模块
  • 原文地址:https://www.cnblogs.com/wazy999/p/12776265.html
Copyright © 2020-2023  润新知