primarykey(primary key与UNIQUE有什么区别)

2025-04-16 07:00:01 0

primarykey(primary key与UNIQUE有什么区别)

本文目录

primary key与UNIQUE有什么区别

primary key 与 unique 的区别 定义了 UNIQUE 约束的字段中不能包含重复值, 可以为一个或多个字段定义 UNIQUE 约 束。因此,UNIQUE 即可以在字段级也可以在表级定义, 在 UNIQUED 约束的字段上可 以包含空值。 ORACLE 自动会为具有 PRIMARY KEY 约束的字段(主码字段)建立一个唯一 索引和一个 NOT NULL 约束,定义 PRIMARY KEY 约束时可以为它的索引; UNIQUED 可空,可以在一个表里的一个或多个字段定义;PRIMARY KEY 不可空不可重 复,在一个表里可以定义联合主键; 简单的说,primary key = unique + not null unique 就是唯一, 当你需要限定你的某个表字段每个值都唯一,没有重复值时使用。 比如说, 如果你有一个 person 表,并且表中有个身份证的 column,那么你就可以指定该字段为 unique。 从技术的角度来看,Primary Key 和 Unique Key 有很多相似之处。但还是有以下 区别: 一、作为 Primary Key 的域/域组不能为 null,而 Unique Key 可以。 二、在一个表中只能有一个 Primary Key,而多个 Unique Key 可以同时存在。 更大的区别在逻辑设计上。Primary Key 一般在逻辑设计中用作记录标识,这也是设置 Primary Key 的本来用意,而 Unique Key 只是为了保证域/域组的唯一性。 oracle 的 constraint 中有两种约束,都是对列的唯一性限制――unique 与 primary key,但 其中是有区别的: 1、unique key 要求列唯一,但不包括 null 字段,也就是约束的列可以为空且仅要求列中的 值除 null 之外不重复即可; 2、 primary key 也要求列唯一, 同时又限制字段的值不能为 null, 相当于 Primary Key=unique + not null。 创建一个 primary key 和 unique key 都会相应的创建一个 unique index。 0primary key 的语法:alter table table name add constraint key name primary key( columns); unique key 的语法:alter table table name add constraint key name unique( columns); 一个表只能有一个主键,但是可以有好多个 UNIQUE,而且 UNIQUE 可以为 NULL 值,如 员工的电话号码一般就用 UNIQUE,因为电话号码肯定是唯一的,但是有的员工可能没有 电话。 主键肯定是唯一的,但唯一的不一定是主键; 不要总把 UNIQUE 索引和 UNIQUE 约束混为一谈 1、primary key = unique + not null 2、唯一约束和主键一样都是约束的范畴,而且都可以作为外键的参考,不同的是,一张表 只能有一个主键 3、主键和唯一约束的创建需要依靠索引,如果在创建主键或唯一约束的时候没有已经建好 的索引可以使用的话,Oracle 会自动建立一个唯一的索引。

Oracle primary key和unique key的区别与联系

primary key与unique key都是唯一性约束。但二者有很大的区别: 1.作为primary key的1个或多个列必须为NOT NULL, 如果建表时此列设为NULL,在增加PRIMARY KEY时,列自动更改为NOT NULL。 而unique key约束的列可以为null,这是primary key与unique key最大的区别。 2.一个表只能有一个primary key(单列或多列,多列主键叫联合主键),但可以有多个unique key。 实例1: create table t(c1 number(2),c2 date,c3 varchar2(5),c4 int); desc t; Name Type Nullable Default Comments ---- ----------- -------- ------- -------- C1 NUMBER(2) Y C2 DATE Y C3 VARCHAR2(5) Y C4 INTEGER Y // 实例2:添加primary key alter table t add constraint t_pk primary key(c1,c2); desc t; Name Type Nullable Default Comments ---- ----------- -------- ------- -------- C1 NUMBER(2) C2 DATE C3 VARCHAR2(5) Y C4 INTEGER Y 我们看到,将c1,c2列设为联合主键后,他们变为not null; 如果在建表时就指定了主键的话,主键列将会默认为not null。 // 如果我们在添加一个primary key,那么我们将会得到一个错误: alter table t add constraint t_pk_2 primary key(c3,c4) ORA-02260: table can have only one primary key // 实例3:添加unique key alter table t add constraint unique_key_t unique(c3,c4); 实例4:添加数据 insert into t(c1,c2,c3,c4) values(10,sysdate,’abc’,3); 1 row inserted // insert into t(c1,c2,c3,c4) values(11,sysdate,’abc’,3); ORA-00001: unique constraint (SCOTT.UNIQUE_KEY_T) violated 我们看到,添加的第二条数据违反了刚刚创建的唯一键约束; 将unique_key_t删除,添加就能成功了。 实例5:删除unique key alter table t drop constraint unique_key_t; insert into t(c1,c2,c3,c4) values(11,sysdate,’abc’,3); 1 row inserted // 实例6:删除primary key alter table t drop constraint t_pk; Table altered // desc t; Name Type Nullable Default Comments ---- ----------- -------- ------- -------- C1 NUMBER(2) Y C2 DATE Y C3 VARCHAR2(5) Y C4 INTEGER Y 删除主键约束后,c1,c2列由恢复了原来的默认值null。 // 3.其实primary key也是unique key,被primary key约束的列not null,并且不允许重复 实例7: truncate table t; Table truncated // alter table t add constraint t_pk primary key(c1,c2); Table altered // insert into t(c1,c2,c3,c4) values(1,to_date(’2011-01-01’,’yyyy-mm-dd’),’csdn’,10); 1 row inserted // insert into t(c3,c4) values(’china’,1); ORA-01400: cannot insert NULL into (“SCOTT“.“T“.“C1“) // insert into t(c1,c2,c3,c4) values(1,to_date(’2011-01-01’,’yyyy-mm-dd’),’csdn’,10); ORA-00001: unique constraint (SCOTT.T_PK) violated 这里,我们看到primary key t_pk变成了unique约束,证明了主键约束也是唯一约束。

primarykey(primary key与UNIQUE有什么区别)

本文编辑:admin
: primarykey,

更多文章:


重定向和切换的区别(LTE中的切换和重定向有什么区别)

重定向和切换的区别(LTE中的切换和重定向有什么区别)

本文目录LTE中的切换和重定向有什么区别LTE系统内异频之间走的是切换还是重定向流程跳转和页面重定向的区别、重定向与转发有何区别它们分别在什么情况下使用跳转和页面重定向的区别是什么切换请求和切换命令有什么区别华为的盲切换与盲重定向是不是一个

2025年3月26日 01:50

abstract和interface的区别(interface 和 abstract 的区别)

abstract和interface的区别(interface 和 abstract 的区别)

本文目录interface 和 abstract 的区别abstract抽象和interface接口到底有什么区别abstract interface和interface的区别abstract和interface的区别Java中abstra

2025年4月3日 22:00

java资源网站(谁有传智播客Java就业班资源,可以分享一下)

java资源网站(谁有传智播客Java就业班资源,可以分享一下)

本文目录谁有传智播客Java就业班资源,可以分享一下请问学习Java有没有什么推荐,培训机构,书籍,自学视频、资源等等各方面的谁有传智播客Java就业班资源,可以分享一下Java资源就不用别人分享了吧,bilibili上搜索免费的资源特别多

2025年3月31日 21:10

nosql与mysql的区别(什么是NoSQL数据库)

nosql与mysql的区别(什么是NoSQL数据库)

本文目录什么是NoSQL数据库SQL与MySQL有什么区别非关系型数据库和关系型数据库区别,优势比较甲骨文旗下的oracle、mysql数据库以及java等产品,中国有成熟的替代品吗什么是NoSQL数据库1.nosql的简介 NoSQL,指

2025年2月23日 10:20

免费服务器节点(SSR免费节点怎么用)

免费服务器节点(SSR免费节点怎么用)

本文目录SSR免费节点怎么用SSR节点有免费的吗1u2节点、2u4节点服务器,这个节点是什么意思什么是服务器节点谁有免费的服务器订阅节点免费主机服务器多吗求推荐比较稳定的,谢谢!永久免费云服务器哪一家好SSR免费节点怎么用1.首先启动“SS

2025年3月13日 23:10

cobra的意思是什么?Cobra是一个汽车品牌吗

cobra的意思是什么?Cobra是一个汽车品牌吗

本文目录cobra的意思是什么Cobra是一个汽车品牌吗绝地求生cobra是富二代在国内使用cobra电子狗测速效果怎样cobra的意思是什么n.眼镜蛇a poisonous snake that can spread the skin a

2025年4月9日 03:20

forehead ornament(春节习俗有哪些 带英语的)

forehead ornament(春节习俗有哪些 带英语的)

本文目录春节习俗有哪些 带英语的英语作文 什么样的才是快乐家庭star有哪些意思用英语概括文章大意 Pete Richards was the loneliest man in town on the day that little Je

2025年2月26日 19:20

读取配置文件失败(我一进游戏就说读取配置文件失败)

读取配置文件失败(我一进游戏就说读取配置文件失败)

本文目录我一进游戏就说读取配置文件失败dnf读取配置文件失败dnf读取配置文件失败怎么搞求高手解答淘宝千牛读取配置文件错误读取配置文件失败是怎么回事啊读取配置文件失败读取配置文件失败,请检查网络和放火墙设置!怎么解决电脑开机时显示读取配置文

2025年3月18日 02:30

flex教程(flex2中文云端怎么用/flex2中文云端源/flex2中文云端源使用图文教程)

flex教程(flex2中文云端怎么用/flex2中文云端源/flex2中文云端源使用图文教程)

本文目录flex2中文云端怎么用/flex2中文云端源/flex2中文云端源使用图文教程java+flex项目如何下手,步骤和思路(详细点)哪位高手帮忙解决下多谢flex4 推荐教程想要学flex,请大家帮忙flex教程给推荐个82flex

2025年3月18日 17:00

float类型举例(Java float数据类型)

float类型举例(Java float数据类型)

本文目录Java float数据类型C语言中float是什么类型还有其他什么类型在python中 float是什么意思c语言float和double类型分别是什么样的,大神能给举个例子不Java float数据类型与表示整数的整型不同,浮点

2025年3月2日 04:20

aspire笔记本电脑(宏碁笔记本电脑怎么样,好吗)

aspire笔记本电脑(宏碁笔记本电脑怎么样,好吗)

本文目录宏碁笔记本电脑怎么样,好吗宏基笔记本电脑质量怎么样宏基笔记本电脑性能怎么样宏碁笔记本电脑和联想哪个好acer笔记本电脑死机怎么重启宏基笔记本电脑怎么样啊宏基笔记本电脑怎么打开摄像头啊宏碁笔记本电脑好吗宏碁笔记本电脑怎么样,好吗宏碁笔

2025年3月30日 01:30

fastreport4(c++builder6怎么安装fastreport 4)

fastreport4(c++builder6怎么安装fastreport 4)

本文目录c++builder6怎么安装fastreport 4如何fastreport4 安装到delphi7-CSDN论坛fastreport4 如何把金额转换成大写c++builder6怎么安装fastreport 4一、 卸载旧版本

2025年2月19日 07:40

html资源网(HTML网页实现网站内资源搜索功能)

html资源网(HTML网页实现网站内资源搜索功能)

本文目录HTML网页实现网站内资源搜索功能HTML5在线资源库设计是什么意思HTML网页实现网站内资源搜索功能我觉得你对HTML语言没有理解仔细,HTML只是一种标志语言,通过HTML的标签来格式标签中内容显示方式,也就是说HTML只是为解

2025年3月29日 20:00

在线教学的利弊(线上教育有什么弊端你是如何看待线上教育和线下教育)

在线教学的利弊(线上教育有什么弊端你是如何看待线上教育和线下教育)

本文目录线上教育有什么弊端你是如何看待线上教育和线下教育在线学习的利与弊网络授课的利弊线上教育有什么弊端你是如何看待线上教育和线下教育其实现在线上教育和线下教育已经非常流行,线上教育可能对于很多人而言,更大的优势是它打破了限制,随时随地就可

2025年4月15日 13:30

frontpage是干嘛的(请问FrontPage是什么软件啊)

frontpage是干嘛的(请问FrontPage是什么软件啊)

本文目录请问FrontPage是什么软件啊frontpage到底是什么软件它属于网页制作的么请问FrontPage是什么软件啊Frontpage,是微软公司出品的一款网页制作入门级软件。以前,想在网页中使用数据库,常常需要通过麻烦的数据库连

2025年4月10日 01:00

x86指令集(X86指令集的内容有哪些)

x86指令集(X86指令集的内容有哪些)

本文目录X86指令集的内容有哪些什么是x86架构以及指令集未来趋向x86是哪个公司的X86是什么意思x32,x64,x86是什么意思x86指令集有多少个指令x86_64和X86_32区别是什么x86指令集有哪些劣势X86指令集的内容有哪些x

2025年3月25日 10:00

h5游戏盒子(一个叫青什么的游戏交易平台)

h5游戏盒子(一个叫青什么的游戏交易平台)

本文目录一个叫青什么的游戏交易平台bt手游盒子排行有什么好用的玩小游戏盒子,关键是小游戏要多而且方便玩游戏试玩平台有哪些十大手机游戏盒子排行榜一个叫青什么的游戏交易平台青鸾互娱青鸾互娱其实还算是一个比较靠谱的游戏交易平台,而且交易靠谱,有折

2025年4月5日 22:50

常用十大浏览器(常用十大浏览器)

常用十大浏览器(常用十大浏览器)

本文目录常用十大浏览器常见的浏览器都有哪些常用十大浏览器摘要你好朋友,常用的浏览器有QQ浏览器咨询记录 · 回答于2021-04-15常用十大浏览器你好朋友,常用的浏览器有QQ浏览器360浏览器百度浏览器这些都可以试试看什么最好百度最好un

2025年4月1日 12:00

excel下拉菜单怎么取消(表格怎么取消下拉选项)

excel下拉菜单怎么取消(表格怎么取消下拉选项)

本文目录表格怎么取消下拉选项excel表格下拉选项怎么编辑取消怎么取消excel下拉选项如何清除下拉菜单选项excel单元格怎样取消下拉表格怎么取消下拉选项1.打开excel表格后,把鼠标定位到清除的Excel单元格下拉选项处2.在菜单栏依

2025年2月20日 17:20

xampp配置(怎样用xmapp配置php环境)

xampp配置(怎样用xmapp配置php环境)

本文目录怎样用xmapp配置php环境如何配置XAMPP的虚拟主机怎样用xmapp配置php环境第1步:从网上下载XAMPP安装程序,直接百度搜索“xampp”即可,然后点击图中标红的选项进入XAMPP网站。2第2步:图中圈出部分为各个操作

2025年3月23日 04:00

近期文章

本站热文

harbor,port,pier的区别?谁能解释“harbour“(港口)与“pier“(码头)的区别
2025-02-22 17:40:03 浏览:20
ibatis foreach(ibatis 批量update操作)
2025-02-10 23:40:06 浏览:7
endless rain(endless rain表达什么情感)
2025-02-14 06:00:02 浏览:7
标签列表

热门搜索