SQL Server建表及约束设置详解
在关系型数据库中,规范化地创建数据表是基础且关键的一步。本文以 SQL Server 为例,详细说明如何定义表和各类约束(如主键、外键、非空等),涵盖创建与后期修改的操作,确保数据完整性。
准备工作:数据类型与基本结构
在设计表之前,需明确字段的数据类型。常见的 SQL 数据类型包括:
int、smallint、tinyint:用于存储不同范围的整数。char(size):固定长度的字符串。varchar(size):可变长度的字符串,节省空间。date:存储日期格式数据。
在正式添加约束前,通常先创建一个基础表结构。以下代码创建一个名为 Persons 的表:
CREATE TABLE Persons(
Id_P int,
LastName varchar(255),
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)
核心操作:添加各类约束条件
为了保障数据的完整性和关联性,SQL Server 提供了多种约束机制。
第1步:限制非空 (NOT NULL)
该约束强制列不接受 NULL 值,保证关键字段必须有内容。可以在建表时直接声明:
CREATE TABLE Persons(
Id_P int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)
第2步:唯一性校验 (UNIQUE)
确保每一行记录在指定列上的值是唯一的。注意:在 SQL Server 中,UNIQUE 约束通常建议命名以便于管理。
建表时创建并命名:
ALTER TABLE Persons
ADD CONSTRAINT uc_PersonID UNIQUE (Id_P)
已有表中创建约束:
ALTER TABLE Persons
ADD CONSTRAINT uc_PersonID UNIQUE (Id_P)
撤销约束:
ALTER TABLE Persons
DROP CONSTRAINT uc_PersonID
第3步:设定主键 (PRIMARY KEY)
主键不仅具有唯一性,还默认包含非空属性,用于唯一标识每条记录。每个表只能有一个主键。
建表时指定:
CREATE TABLE Persons(
Id_P int NOT NULL PRIMARY KEY,
...
)
已存在表中添加命名主键:
ALTER TABLE Persons
ADD CONSTRAINT pk_PersonID PRIMARY KEY (Id_P)
撤销主键:
ALTER TABLE Persons
DROP CONSTRAINT pk_PersonID
第4步:建立外键关联 (FOREIGN KEY)
外键用于连接两个表,防止非法数据插入,保证参照完整性。
假设我们有一个 Orders 表,其中的 Id_P 引用了 Persons 表的主键。
建表时创建:
CREATE TABLE Orders(
Id_O int NOT NULL PRIMARY KEY,
OrderNo int NOT NULL,
Id_P int FOREIGN KEY REFERENCES Persons(Id_P)
)
已存在表中创建命名外键:
ALTER TABLE Orders
ADD CONSTRAINT fk_PerOrders
FOREIGN KEY (Id_P)
REFERENCES Persons(Id_P)
撤销外键:
ALTER TABLE Orders
DROP CONSTRAINT fk_PerOrders
第5步:数值范围控制 (CHECK)
限制列中值的范围。例如,要求 Id_P 必须大于 0,或者 City 必须是 'Sandnes'。
单列检查:
CREATE TABLE Persons(
Id_P int NOT NULL CHECK (Id_P>0),
LastName varchar(255) NOT NULL,
...
)
多列组合检查:
ALTER TABLE Persons
ADD CONSTRAINT chk_Person CHECK (Id_P>0 AND City='Sandnes')
撤销:
ALTER TABLE Persons
DROP CONSTRAINT chk_Person
第6步:默认值 (DEFAULT)
当向该列插入新记录且未指定值时,自动填入预设值。
建表时指定:
CREATE TABLE Persons(
...
City varchar(255) DEFAULT 'Sandnes'
)
修改已有列增加默认值:
ALTER TABLE Persons
ALTER COLUMN City SET DEFAULT 'SANDNES'
撤销默认值:
ALTER TABLE Persons
ALTER COLUMN City DROP DEFAULT
总结
熟练掌握建表语法及约束条件(尤其是主键和外键)是数据库设计的基础。建议在创建时就为关键约束命名(如 CONSTRAINT name ...),以便后续维护和调试。
以上就是 SQL Server 创建表及约束条件的详细内容,更多关于 SQL Server 建表优化的资料请关注本站其它相关文章!
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













