mysql约束

Mysql约束

约束用于确保数据库的数据满足特定的商业规则

在Mysql中,约束包括:not null 、unique、primary key 、foreign key 和check五种

  1. primary key (主键)的使用(主键列不可以重复)

    create table student(id int primary key#表示id列是主键
    `name` varchar(32),email varchar(32);
                       )
      insert  into student values(1,'mark','mark@qq.com')
       insert  into student values(2,'smith','smith@qq.com')
       insert  into student values(1,'tom','tom@qq.com') #会报错,id为1的列已被设置为主键(不允许重复)

    主键的使用细节

    • 主键是不能重复的,并且不能为空(null)

    • 一张表里面只有一个主键,但是可以是复合主键(可以把id和name看做一个主键)

      create table student(id int ,
                          `name`varchar(32) primary key ,#检测会出现错误(只能有一个主键)
                          primary key (id,`name`))#这一行使用了复合主键的方式,只有id和name同时相同才是违反了主键
    • 主键的指定方式有两种:

      • 字段名 primary key

      • 在表定义最后一行写primary key(列名)

      • 使用Desc表名,可以看到primary key(主键)的情况

     

    unique的使用

    • unique是不能重复的,但是unique是可以为空(null)

    • 一张表里面可以有多个unique值(也就是可以创建多个null值)

      SELECT *FROM school01;
      # 修改school表中的address字段的属性值为unique
      # unique值得使用:unique不能重复,但是其值可以为空,、;
      #如果没有指定not null,则Unique字段可以有多个null
      #一张表里面有多个uniquez字段
      ALTER TABLE school01 MODIFY address VARCHAR(32) UNIQUE;

      INSERT INTO school01 VALUES(11,'张三','云南省','180087612...');
      INSERT INTO school01 VALUES(21,'李四','四川省','170057612...');
      INSERT INTO school01 VALUES(31,'张三','广东省','150084612...');
      INSERT INTO school01 VALUES(41,'王二','湖南省','160086612...');

      DESC school01;

       

     

posted @   捞月亮的渔夫  阅读(16)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
点击右上角即可分享
微信分享提示