mysql主键与唯一约束

一、约束

确保数据库数据满足特定的商业规则。在mysql中,约束主要包括:not null, unique, primary key ,foreign,check,共五种。

1.primary key(主键)

字段名 字段类型 primary key   用于唯一的标示表行的数据,当定义主键约束后,该列不能重复。

-- 主键
CREATE TABLE db23(
 id INT PRIMARY KEY, -- 主键
 `name`VARCHAR(32),
 email VARCHAR(32)
);
INSERT INTO db23 VALUES(1,'xiao','123456@qq.com')
INSERT INTO db23 VALUES(2,'tian','123456@qq.com')
INSERT INTO db23 VALUES(1,'xin','123456@qq.com') -- 报错
SELECT*FROM db23

二、主键约束细节

1.primary key 不能重复并且不能为null

2.一张表只能有一个主键,但是可以复合主键

3.主键指定方式有两种:直接在字段名后指定:字段名 primary key  ,  在表定义最后写primary key(列名)

4.使用desc 表名,可以查看primary key 的情况

-- 1.primary key 不能重复并且不能为null
  INSERT INTO db23 VALUES(NULL,'tian','123456@qq.com')
-- 2.一张表只能有一个主键,但是可以复合主键
  CREATE TABLE db24(
    id INT,
    `name` VARCHAR(32),
    email VARCHAR(32),
    PRIMARY KEY(id,`name`)-- 复合主键  
  );
  INSERT INTO db24 VALUES(1,'xiao','123456')
  INSERT INTO db24 VALUES(2,'tian','123456')
  INSERT INTO db24 VALUES(1,'xiao','123456')-- 报错

-- 3.主键指定方式有两种:直接在字段名后指定:字段名 primary key  ,  在表定义最后写primary key(列名)
-- 第一种上面有,
CREATE TABLE db25(
    id INT,
    `name` VARCHAR(32),
    email VARCHAR(32),
    PRIMARY KEY(id)
  );
-- 4.使用desc 表名,可以查看primary key 的情况
DESC db24

三、not null(非空)

在列上定义了not null,当插入数据时,必须为列提供数据。

字段名  字段类型 not null

四、unique(唯一)

定义了唯一约束,该列的值不能重复。

字段名  字段类型  unique

五、unique注意事项

1.没有指定not null ,那么unique字段可以多个为null

2.一张表中可以有多个unique字段

-- unique使用
CREATE TABLE db26(
    id INT UNIQUE,-- 唯一
    `name` VARCHAR(32),
    email VARCHAR(32)
  );
  INSERT INTO db26 VALUES(1,'xiao','123456')
  INSERT INTO db26 VALUES(1,'xiao','123456')-- 报错
  -- 1.没有指定not null ,那么unique字段可以多个为null
INSERT INTO db26 VALUES(NULL,'xiao','123456')
INSERT INTO db26 VALUES(NULL,'xiao','123456')
INSERT INTO db26 VALUES(NULL,'xiao','123456')
  -- 2.一张表中可以有多个unique字段
  CREATE TABLE db27(
    id INT UNIQUE,-- 唯一
    `name` VARCHAR(32)UNIQUE,
    email VARCHAR(32)
  );
  DESC db27

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鸭鸭老板

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值