栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

唯一性约束

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

唯一性约束

目录

唯一性约束

vip.sql脚本文件中的sql语句:

 select * from t_vip;

insert into t_vip(id,name,email) values(4,'wangwu','wangwu@sina.com');

insert into t_vip(id) values(4);

insert into t_vip(id) values(5);

1. 新需求:name和email两个字段联合起来具有唯一性!!!!

1.1 怎么创建表才能符合新需求呢?

1.2 什么时候使用表级约束?

2. unique 和 not null 可以联合使用


唯一性约束

唯一性约束unique约束的字段不能重复,但是可以有多个NULL

vip.sql脚本文件中的sql语句:

drop table if exists t_vip;
create table t_vip(
    id int,
    name varchar(255) unique,
    email varchar(255)
);
insert into t_vip(id,name,email) values(1,'zhangsan','zhangsan@123.com');
insert into t_vip(id,name,email) values(2,'lisi','lisi@123.com');
insert into t_vip(id,name,email) values(3,'wangwu','wangwu@123.com');

 select * from t_vip;

insert into t_vip(id,name,email) values(4,'wangwu','wangwu@sina.com');

Duplicate:重复

约束的字段不能重复

insert into t_vip(id) values(4);

insert into t_vip(id) values(5);

name字段虽然被unique约束了,但是可以有多个NULL。

1. 新需求:name和email两个字段联合起来具有唯一性!!!!

drop table if exists t_vip;
create table t_vip(
       d int,
       name varchar(255) unique,
       email varchar(255) unique
);

约束直接添加到列后面的,叫做列级约束。

这张表这样创建是不符合我以上“新需求”的。这样创建表示:name具有唯一性,email具有唯一性。各自唯一。

1.1 怎么创建表才能符合新需求呢?

drop table if exists t_vip;
create table t_vip(
        id int,
        name varchar(255),
        email varchar(255),
        unique(name,email) 
);

约束没有添加在列的后面,这种约束被称为表级约束。

insert into t_vip(id,name,email) values(1,'zhangsan','zhangsan@123.com');
insert into t_vip(id,name,email) values(2,'zhangsan','zhangsan@sina.com');

name和email两个字段联合起来唯一!!!

insert into t_vip(id,name,email) values(3,'zhangsan','zhangsan@sina.com');

1.2 什么时候使用表级约束?

 需要给多个字段联合起来添加某一个约束的时候,需要使用表级约束。


2. unique 和 not null 可以联合使用

drop table if exists t_vip;
create table t_vip(
        id int,
        name varchar(255) not null unique
);

desc t_vip;

在mysql当中,如果一个字段同时被not null和unique约束的话,该字段自动变成主键字段。(注意:oracle中不一样!) 

insert into t_vip(id,name) values(1,'zhangsan');

insert into t_vip(id,name) values(2,'zhangsan');

错误了:name不能重复

insert into t_vip(id) values(2);

错误了:name不能为NULL。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1031234.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号