SQL中的主键约束有什么作用请举例说明

SQL中的主键约束有什么作用请举例说明!!请各位帮下忙
主键约束是不是可以随便设的?怎样才是合理设置!!

其实很简单,你就知道一下几点就可以了,在以后的工作中就足够了。
1,主键非空,也就是说被设定为主键的列在插入数据的时候就不能为空,如果为空SQL就会报错。
2,主键是唯一的,一个表通过一个主键可以确定一条记录,有一条记录的主键是SF110如果你再向里面插入SF110的记录SQL就会报错。
3,有时可以用两个字段来建立主键,这叫联合主键。这种情况出现在当一个字段无法唯一的时候要借助另一个字段来确保唯一性的时候。

答复:
主键一般都是挑选能够唯一表示一条记录的字段来做,你比如说现在有一个“学生表”里面有“学生编号”“学生姓名”“学生年龄”等
根据原则肯定要以“学生编号”为主键。
还有一个原则就是不经常被修改的字段也可以做主键。“学生编号”在对表操作的时候肯定不会被修改所以也比较符合。
主键没有什么随便不随便设,一个表最好有一个主键,因为这是个好习惯而且如果你不设置主键在SQL的企业管理器中无法对他进行添加删除等操作。不知道这些补充可不可以?
温馨提示:内容为网友见解,仅供参考
第1个回答  2007-03-20
表有唯一的主键约束。表的主键可以保护一个或多个列,主键约束可与NOT NULL约束共同作用于每一数据列。NOT NULL约束和唯一性约束的组合将保证主键唯一地标识每一行。像唯一性约束一样,主键由B-tree索引增强。

创建主键约束使用CREATE TABLE语句与表一起创建,如果表已经创建了,可以使用ALTER TABLE语句。

CREATE TABLE policies
(policy_id NUMBER CONSTRAINT pk_policies PRIMARY KEY,
holder_name VARCHAR2(40),
gender VARCHAR2(1),
marital_status VARCHAR2(1),
date_of_birth DATE
);

与唯一性约束一样,如果主键约束保护多个数据列,那么必须作为一个表约束创建。

CREATE TABLE insured_autos
(policy_id NUMBER,
vin VARCHAR2(40),
coverage_begin DATE,
coverage_term NUMBER,
CONSTRAINT pk_insured_autos PRIMARY KEY (policy_id,vin)
USING INDEX TABLESPACE index
STORAGE (INITIAL 1M NEXT 10M PCTINCREASE 0)
);

禁用或删除主键必须与ALTER TABLE 语句一起使用

ALTER TABLE policies DROP PRIMARY KEY;



ALTER TABLE policies DISABLE PRIMARY KEY;
第2个回答  2007-03-20
什么呢???
第3个回答  2007-03-20
tongi
第4个回答  2007-03-20
主键是唯一的,一个主键可以唯一确定表中一个记录
相似回答