携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第2天
实体完整性
一、 主键约束
1、鼠标步骤
①展开“数据库”节点,展开“表”节点。
②右击表,选择“设计”。
③右击某“字段”,选择“设置主键”,保存。
2、SQL语句
①创建表时
CREATE TABLE <表名>
(
<列名1> <数据类型> [CONSTRAINT <主键约束名>] PRIMARY KEY [CLUSTERED| NONCLUSTERED]
)
例题: 建立“学生1”表时,为“学号”字段建立主键。
USE 学生管理
CREATE TABLE 学生1
(
学号 char(8) NOT NULL primary key ,
姓名 nvarchar(20) NOT NULL,
性别 nchar(1) NOT NULL ,
生日 date NULL,
籍贯 nvarchar(30) NULL,
党员 bit NULL,
高考成绩 decimal (5,1) NULL,
邮箱 nvarchar(30) NULL
)
GO
②修改表时
ALTER TABLE 表名
ADD
CONSTRAINT 约束名
PRIMARY KEY
{(字段名[,…n])}
例题: 修改“学生1”表,为“学号”字段建立主键。
USE 学生管理
GO
ALTER TABLE 学生1
ADD CONSTRAINT pk_学号
PRIMARY KEY (学号)
GO
选择主键的原则:
1、最少性(尽量选择单个键作为主键)
2、稳定性(尽量选择更新少的列作为主键)
提问:
1、主键允许为空吗?
2、主键可以有多个列组成吗?
二、唯一约束
1、鼠标步骤
①展开“数据库”节点,展开“表”节点。
②右击表,选择“设计”。
③右击选择“索引/键”,然后单击“添加”。
④选择“类型”为“唯一键”,并命名名称,最后关闭。
⑤保存、刷新。
2、SQL语句
①建立表时
CREATE TABLE <表名>
(
<列名1> <数据类型> [CONSTRAINT <唯一键约束名>] UNIQUE
)
例题: 建立“学生1”表时,为“姓名”建立唯一性。
USE 学生管理
CREATE TABLE 学生1
(
学号 char(8) NOT NULL,
姓名 nvarchar(20) NOT NULL UNIQUE,
性别 nchar(1) NOT NULL ,
生日 date NULL,
籍贯 nvarchar(30) NULL,
党员 bit NULL,
高考成绩 decimal (5,1) NULL,
邮箱 nvarchar(30) NULL
)
GO
②修改表时
ALTER TABLE 表名
ADD
CONSTRAINT 约束名
UNIQUE {(字段名[,…n])}
例题: 修改“学生1”表,为“姓名”建立唯一性。
USE 学生管理
GO
ALTER TABLE 学生1
ADD CONSTRAINT uq_姓名
UNIQUE (姓名)
GO
注意:主键与唯一键的区别
三、标识列—IDENTITY列
表中没有合适的列作为主键怎么办?
标识列总结:
①整型
②自动产生,不用录入
③可以设成主键
④若删除一些中间记录,标识值不会重新开始
标识增量:一次加几 标识种子:从几开始****
例题:
USE 学生管理
CREATE TABLE 学生1
(
ID int not null identity(1,1) primary key ,
学号 char(8) NOT NULL,
…….
)
**
**