【INDEX】Oracle中主键、唯一约束与唯一索引之区别

【INDEX】Oracle中主键、唯一约束与唯一索引之区别

ID:40759556

大小:19.29 KB

页数:4页

时间:2019-08-07

【INDEX】Oracle中主键、唯一约束与唯一索引之区别_第1页
【INDEX】Oracle中主键、唯一约束与唯一索引之区别_第2页
【INDEX】Oracle中主键、唯一约束与唯一索引之区别_第3页
【INDEX】Oracle中主键、唯一约束与唯一索引之区别_第4页
资源描述:

《【INDEX】Oracle中主键、唯一约束与唯一索引之区别》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、Oracle中主键、唯一约束与唯一索引之区别一、概述一般在Oracle数据表中,我们都会看到主键,索引,也会看到唯一索引、唯一约束,那么他们有什么区别呢,下面通过一个小实验简单了解一下。二、实验过程:首先创建一个表,并完成主键、唯一约束、唯一索引的创建,如下所示:SQL>--数据库版本SQL>select*fromv$version;BANNER----------------------------------------------------------------OracleDatabase10gEnterpriseEditionRelease10.2.0.5.0-64biP

2、L/SQLRelease10.2.0.5.0-ProductionCORE10.2.0.5.0ProductionTNSforLinux:Version10.2.0.5.0-ProductionNLSRTLVersion10.2.0.5.0–ProductionSQL>connfirsoul/firsoulConnected.SQL>--创建测试表SQL>createtabletest(tnonumber(5),tnamevarchar2(20),tidint);Tablecreated.SQL>--添加主键SQL>altertabletestaddconstraintpk_test

3、_tnoprimarykey(tno);Tablealtered.SQL>--添加唯一约束SQL>altertabletestaddconstraintuk_test_tnameunique(tname);Tablealtered.SQL>--添加唯一索引SQL>createuniqueindexidx_test_tidontest(tid);Indexcreated.向表TEST中插入数据,测试SQL>insertintotestvalues(1,'firsoul',123);1rowcreated.SQL>11*insertintotestvalues(1,'firsoul',1

4、23)SQL>/insertintotestvalues(1,'firsoul',123)*ERRORatline1:ORA-00001:uniqueconstraint(FIRSOUL.PK_TEST_TNO)violatedSQL>insertintotestvalues(2,'firsoul',123456);insertintotestvalues(2,'firsoul',123456)*ERRORatline1:ORA-00001:uniqueconstraint(FIRSOUL.UK_TEST_TNAME)violatedSQL>insertintotestvalues(

5、2,'ljx',123);insertintotestvalues(2,'ljx',123)*ERRORatline1:ORA-00001:uniqueconstraint(FIRSOUL.IDX_TEST_TID)violatedSQL>insertintotestvalues(null,'ljx',124);insertintotestvalues(null,'ljx',124)*ERRORatline1:ORA-01400:cannotinsertNULLinto("FIRSOUL"."TEST"."TNO")SQL>insertintotestvalues(2,null,nu

6、ll);1rowcreated.SQL>commit;Commitcomplete.有以上信息,我们可以看出主键列的值不允许为NULL,也不允许出现重复值,唯一约束、唯一索引列的值允许为NULL,但不允许出现重复值。查看字典表中约束的情况SQL>setlines150SQL>coltable_namefora15SQL>colcolumn_namefora15SQL>colconstraint_namefora20SQL>selecttable_name,column_name,constraint_namefromuser_cons_columnswheretable_name=u

7、pper('test');TABLE_NAMECOLUMN_NAMECONSTRAINT_NAME--------------------------------------------------TESTTNOPK_TEST_TNOTESTTNAMEUK_TEST_TNAME查看字典表中索引的情况SQL>selecttable_name,column_name,index_namefromuser_ind_columnswheretable_name=u

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。