oracle中的候选码是如何定义的

发布网友

我来回答

1个回答

热心网友

候选码

若关系中的某一属性组的值能唯一的标识一个元组,而其任何真子集都不能再标识,则称该属性组为候选码。
例如:在学生实体中,“学号”是能唯一的区分学生实体的,同时又假设“姓名”、“班级”的属性组合足以区分学生实体,那么{学号}和{姓名,班级}都是候选码。
简单的说,候选码就是没有被选为主码的主属性,当一个关系有多个属性可以唯一标示时,就选取一个属性或者属性组为主码,剩下的属性或属性组就称为候选码.
例如:关系 工人(工号,身份证号,姓名,性别,部门).显然工号和身份证号都能够唯一标示这个关系,所以都是主属性,我们选取工号为主码,那么身份证号就是候选码,反正,我们选择身份证号为主码,也可以让工号为候选码.

如果上面候选码的描述,就是楼主的要求的话。

那么很简单, 就是通过 unique 定义。

例子如下:

SQL> CREATE TABLE test_1 (
2 id INT PRIMARY KEY,
3 name VARCHAR2(20) UNIQUE,
4 val VARCHAR(10)
5 );

Table created.

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com