zoukankan      html  css  js  c++  java
  • MySQL约束

    一、约束类型

    • 非空约束(not null):该列不允许包含空值。
    • 主键约束(primary key):唯一性,非空性。
    • 唯一约束(unique):唯一性,可以空,但只能一个。
    • 外键约束(foreign key() references table2()):需要建立两表间的关系并引用主表的列。
    • show keys from emp;查询约束名。

    二、创建表时定义约束

    create table table_name(id int primary key auto_increment,name varchar(12) not null,salary float(8,2) unique); 在类型后面添加
    create table table_name(id int primary key auto_increment);创建主键并且自动增长
    create table table_name(id int,name varchar(12),salary float(8,2) not null,primary key(id),unique(name)); 在末尾添加(not null不支持)

    三、表存在时添加约束

    alter table table_name add unique(id);
    alter table emp add(primary key(id),unique(name),foreign key(dept_id) references dept(id));
        constraint table_pk 自定义约束名,省略则由系统生成
        [unique]	唯一性约束
        [primary key]	主键约束
        [primary key(id,name)]	联合主键
        [foreign key(id) references table_name1(id))	外键约束

    四、修改表时添加约束

    alter table emp modify id int primary key; 定义单个
        constraint table_nn 自定义约束名,省略则由系统生成
        [not null]	非空约束
        [unique]	唯一性约束
        [primary key]	主键约束

    五、删除约束

    1.删除主键
    alter table emp drop primary key;删除主键约束
    alter table emp moidfy id int;当存在自动增长时需要去掉自动增长
    alter table emp drop primary key;删除主键约束
    
    2.删除非空约束
    alter table emp moidfy naem varchar(30);不带not null
    
    3.删除唯一性约束
    alter table emp drop key name_uk;
    
    4.删除外键约束
    alter table emp drop foreign key depr_id_fk;
    alter table emp drop index depr_id_fk;删除外键还需删除索引
  • 相关阅读:
    排序算法之——冒泡排序优化
    Linux程序在预处理、编译、汇编、链接、运行步骤的作用
    理解可变参数的原理
    对虚函数、虚表的认识
    成员函数的重载、覆盖、隐藏
    centOS7-mariadb的安装
    centOS7-本地源配置
    vmware中桥接、NET、仅主机模式详解
    XXX系统项目目标文档课堂讨论
    做生活的有心人——xxx系统第一阶段总结
  • 原文地址:https://www.cnblogs.com/baisha/p/15397503.html
Copyright © 2011-2022 走看看