• 约束条件(CONSTRAINTS)


    查看某个表的约束和索引

    一、定义

    对表中的数据进行限定,保证数据的正确性、有效性、和完整性。

    二、分类

    • 主键约束:primary key,简称PK,数据库主键作用保证实体的完整性,可以是一个列或多列的组合。
      • 注意:
        • 非空且唯一
        • 一张表只能有一个字段为主键
        • 主键就是表中记录的唯一标识
      • 在创建表时,添加主键
        • create table stu(

    id int primary key, ---id添加主键约束

    name varchar(20)

    );

    • 删除主键
      • alter table stu drop primary key;
    • 创建完表后,添加主键
      • alter table stu modify id int primary key;
    • 自动增长
      • 概念:如果某一列是数值类型的,使用 auto_increment 可以完成值得自动增长
      • 在创建表时,添加主键约束,并且完成主键自动增长
        • create table stu(

    id int primary key auto_increment, --给主键id添加自动增长

    name varchar(20) not null ---name为非空

    );

    • 删除自动增长
      • alter table stu modify id int;
    • 在创建表以后添加自动增长
      • alter table stu modify id int auto_increment;

       

    • 非空约束:not null

    • 创建表时添加非空约束;
      • create table stu(

    id int,

    name varchar(20) not null ---name为非空

    );

    • 创建表完成后,添加非空约束;
      • alter table stu modify name varchar(20) null;
    • 删除非空约束;
      • alter table stu modify name varchar(20);
    • 唯一约束:unique
      • 创建表时添加唯一约束;
        • create table stu(

    id int,

    photo_number varchar(20) unique

    );

    *注意smsql中,唯一约束限定的列的值可以有多个null

    • 创建表完成后,添加唯一 约束;
      • alter table stu modify name varchar(20) unique;
    • 删除唯一约束;
      • alter table stu drop index phone_number ;

       

    • 外键约束:foreign key

       

       

    • 在创建表时,可以添加外键
      • 语法:

    create table 表名(

    ….

    foreign key (外键名) references 主表名称(主表列名称)

    );

    • 例:

    create table student(

    sid int auto_increment primary key not null,

    sname varchar(20) not null,

    score float,

    clazzid int,

    foreign key(clazzid) references clazz(cid)

    );

    • 删除外键
      • alter table 表名 drop foreign key 外键名称;
    • 创建表之后,添加外键
      • alter table 表名 add foreign key (外键字段名称) references 主表名称(主表列名称);
    • 检查约束
      • 注意: MySQL不支持check约束,但可以使用check约束,而没有任何效果;
      • 例如:age tinyint check(age >20) 或 sex char(2) check(sex in('男','女'))
    • Default缺省约束
      • default:默认值,在插入数据时某列如果没指定其他的值,那么会将默认值添加到新记录。
      • 如果某列已经创建好,那么可以修改列语句修改:
      • 例如:原来有默认值,去除默认值
      • 例如:原来没有默认值,增加默认值
      •  
  • 相关阅读:
    Struts2配置文件讲解
    分布式与集群的区别
    ANDROID中FRAGMENT的两种创建方式
    一个让echarts中国地图包含省市轮廓的技巧
    图解Spark API
    对NP问题的一点感想
    laravel框架容器管理的一些要点
    RedisRepository分享和纠错
    javascript中对数据文本格式化的思考
    LazyMan深入解析和实现
  • 原文地址:https://www.cnblogs.com/li330273334/p/13848676.html
Copyright © 2020-2023  润新知