主键
作用
区别单条记录的唯一标示!
如:身份证号、工号、学号均是唯一标示个人信息的数据,但是姓名、性别无法唯一标示。
一般建表习惯
1.主键为 INT 类型,自增+1。
create table aa(PKID INT IDENTITY(1,1) NOT NULL,Name NVARCHAR(50) NOT NULL)
inert into table aa('张三')
2.主键为 uniqueidentifier 类型
形如:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
其中每个 x 是 0-9 或 a-f 范围内的一个十六进制的数字。
create table aa(DocID uniqueidentifier NULL,Name NVARCHAR(50) NOT NULL)
inert into table aa(newid(),'张三')
外键
作用
用于和其他表建立对应联系使用的!
如:学生表的学号主键可以作为成绩表的学号外键,用于标示两者之间的关系。
一般建表习惯
外键可以为空,但最好使其不可为空。
create table aa(PKID INT IDENTITY(1,1) NOT NULL,Name NVARCHAR(50) NOT NULL)
create table bb(PKID INT IDENTITY(1,1) NOT NULL,aaPKID FOREIGN KEY REFERENCES aa(PKID))
主键、外键、索引的区别
一、主要作用:
1.主键用于区分单条数据的唯一标示;
2.外键用于建立多表关系;
3.索引用于增加查询速度。
二、属性空值:
1.主键不可为空,且必须唯一;
2.外键可以为空,可以重复;
3.索引可以为空,且必须唯一。
三、单表个数:
1.单表主键必须唯一;
2.单表外键可以多个;
3.单表索引可以多个。