zoukankan      html  css  js  c++  java
  • 学习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 + 默认值

    和上述的约束用法相似

  • 相关阅读:
    PTA L1-002 打印沙漏 (20分)
    音乐研究
    LeetCode 155. 最小栈
    LeetCode 13. 罗马数字转整数
    LeetCode 69. x 的平方根
    LeetCode 572. 另一个树的子树
    errno错误号含义
    僵尸进程和孤儿进程
    TCP和UDP相关概念
    图相关算法
  • 原文地址:https://www.cnblogs.com/wazy999/p/12776265.html
Copyright © 2011-2022 走看看