sql主键作用
⑴ sql中主键的作用是什么外键的作用是什么
主键是唯一标示这一行的,就好像你的身份证号一样,每个人只有一个,也是唯一能证明你是你的东西。外键是别人执行你的东西。也就是说如果一个人想和你有点关系怎么办,那就要关联起来,怎么关联起来,就通过外键啊
⑵ 请问SQL server 中的主键和外键的作用
主键:唯一标识一条记录,不能有重复的,不允许为空;外键:表的外键是另一表的主键,
外键可以有重复的,
可以是空值。
主键的作用是用来保证数据完整性,主键只能有一个。比如,一条记录包括身份正号,姓名,年龄。身份证号是唯一能确定你这个人的,其他都可能有重复,所以,身份证号是主键。
外键的作用是用来和其他表建立联系用的,一个表可以有多个外键。比如,A表中的一个字段,是B表的主键,那他就可以是A表的外键。
⑶ 主键和外键的作用
主键和外键的作用:
1、主键保证的是数据的唯一性,是能够唯一的标识一组数据的数据元素;比如说:学号,姓名,年龄,橡仿性别,课程号课程中学号是唯一的,所以可以设它为主键;
2、外键保证的是数据的完整性。外键:一组数据的主键是另一组数据的的元素;主键约束了外键所在表中不能存在主键类之外的值;外键用于与另一张表的关联。是能确定另一张表记录的字段,用于保持数据的一致性。比如,A表中的一个字段,是B表的主键,就可以是A表的外键。
外键取值规则:空值或参照的主键值。
(1)插入非空值时,如果主键表中没有这个值,则不能插入。
(2)更新时,不能改为主键表中没有的值。
(3)删除主键表记录时,可以在建外键时选定外键记录一起级联删除还是拒绝删除。
(4)更新主键记录时,同样有级联更新和拒绝执行的选择。
SQL的主键和外键就是起约束作用。
(3)sql主键作用扩展阅读:
建立主键应该遵循的原则
1、主键应当是对用户没有意义的。如果用户看到了一个表示多对多关系的连接表中的数据,并抱怨它没有什么用处,那就证明它的主键设计地很好。
2、永远也不要更新主键。实际上,因为主键除了唯一地标识一行之外,再没有其他的用途了,所以也就没有理由去对它更新。如果主键需要更新,则说明主键应对用户无意义的原则被违反了。
注:这项原则对于那些经绝答常需要在数据转换或多数据库合并时进行数据整理的数据并不适用。
3、主键不应包含动态变化的数据,如时间戳、创建时间列、修改时间列等。
4、主键应当由计算机自动生成。如果由人来对主键的创建进行干预,就会使它带有除了唯一标识一行以外的意义。一旦越过这个界限,就可能产生人为修改主键的动机,这样,这种系统用来链接记录行、管理记录行的关键手段就会落入不了解数据库设计的人的手中。
外键的使用原则
1、 为关联字段创建外并如慧键。
2、 所有的键都必须唯一。
3、避免使用复合键。
4、外键总是关联唯一的键字段。
⑷ sql server为什么要设置主键
一、主键定义
数据库主键是指表中一个列或者列的组合,其值能够唯一的标识表中的每一个行。这样的一列或者多列成为表的主键,通过它可以强制表的实体完整性。当创建或者更改表时可以通过定义PRIMARY KEY约束来创建主键,一个表只能有一个主键约束,而且主键约束中的列不能是空值,由于主键约束确保唯一数据,所一经常来定义标识列。
二、主键的作用
1、 主键是用于唯一标识数据库表中一行数据的。
2、 作为一个可以被外键有效引用的对象。
三、主键的设计原则
1、 主键应当是对用户没有意义的,比如说用户登陆一个系统的时候的登录id;而这种情况就不可能了:“学生表”需要支持这样的需求“学生注销后,可以重新激活自己的信息,而且还要保持自己的号码跟原来的一直”,这样的话主键就不能满足要求了。
2、 唯一性。
3、 非空性:主键的值是不可重复的,也不可以为空。
4、尽量不要更新主键。实际上,因为主键除了惟一地标识一行之外,再没有其他的用途了,所以也就没有理由去对它更新。如果主键需要更新,则说明主键应对用户无意义的原则被违反了。注意:这项原则对于那些经常需要在数据转换或多数据库合并时进行数据整理的数据并不适用。
5、主键不应包含动态变化的数据,如时间戳、创建时间列、修改时间列等。
6、主键应当有计算机自动生成。如果由人来对主键的创建进行干预,就会使它带有除了惟一标识一行以外的意义。一旦越过这个界限,就可能产生认为修改主键的动机,这样,这种系统用来链接记录行、管理记录行的关键手段就会落入不了解数据库设计的人的手中。
四、创建主键
--在创建表时就可以对字段加上约束:
createtableStudent
(
(1,1),--加主键约束,还有标识列属性(两者构成实体完整性)
StudentNamenvarchar(15)notnull,--加非空约束,不加"notnull"默认为:可以为空
StudentSchooltext(20)(SchoolName),--加外键约束,格式:FOREIGNKEYREFERENCES关联的表名(字段名)
StudentAgeintDEFAULT((0)),--加默认值约束
StudentSexnvarchar(2)CHECK(StudentSex=N'男'orStudentSex=N'女')--加检查约束,格式:check(条件表达式)
)
五、测试添加删除主键
--删除主键
altertableStu_PkFk_SdropconstraintPK_S
go
--增加主键
altertableStu_PkFk_SaddconstraintPK_Sprimarykey(sno)
go
⑸ 数据库中主键和外键是干吗的
简单来说就是把两个表关联起来。同样的一个名字在两个表中:如stu(name,sex)和表grade(name,cou),如果name是表stu中的主键,并且name也是表grade中的主键,那么表stu中的name就是表grade的外键了!
⑹ SQL中的主键约束有什么作用请举例说明
表有唯一的主键约束。表的主键可以保护一个或多个列,主键约束可与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;
⑺ sql中设置主键的作用
主键是唯一的,一个表通过一个主键可以确定一条记录,