欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 国际 > SQLserver使用sql语句创建主键,外键,唯一约束,自增

SQLserver使用sql语句创建主键,外键,唯一约束,自增

2024/10/24 11:54:36 来源:https://blog.csdn.net/weixin_64532720/article/details/141432951  浏览:    关键词:SQLserver使用sql语句创建主键,外键,唯一约束,自增

在 SQL Server 中,可以通过 SQL 语句在创建表时或在现有表上添加约束,如主键(PRIMARY KEY)、外键(FOREIGN KEY)、唯一约束(UNIQUE)和自增(IDENTITY)。以下是如何使用 SQL 语句来实现这些约束的示例。

创建主键(PRIMARY KEY)

主键用于在表中定义一个或多个列,这些列的组合必须是唯一的,并且不能包含 NULL 值。

CREATE TABLE Employees (EmployeeID INT PRIMARY KEY,FirstName NVARCHAR(50),LastName NVARCHAR(50)
);

创建外键(FOREIGN KEY)

外键用于在两个表之间建立链接,确保引用的数据完整性。

CREATE TABLE Orders (OrderID INT PRIMARY KEY,CustomerID INT,EmployeeID INT,FOREIGN KEY (EmployeeID) REFERENCES Employees(EmployeeID)
);

在这个例子中,Orders 表中的 EmployeeID 列引用了 Employees 表中的 EmployeeID 列。

创建唯一约束(UNIQUE)

唯一约束确保列中的所有值都是唯一的。

CREATE TABLE Products (ProductID INT PRIMARY KEY,ProductName NVARCHAR(100) UNIQUE
);

创建自增列(IDENTITY)

自增列用于自动生成唯一的值,通常用于主键。

CREATE TABLE Employees (EmployeeID INT PRIMARY KEY IDENTITY(1,1),FirstName NVARCHAR(50),LastName NVARCHAR(50)
);

在这个例子中,EmployeeID 列被设置为自增列,起始值为 1,每次增加 1。

在现有表上添加主键

ALTER TABLE Employees
ADD CONSTRAINT PK_Employees PRIMARY KEY (EmployeeID);

在现有表上添加外键

ALTER TABLE Orders
ADD CONSTRAINT FK_Orders_Employees FOREIGN KEY (EmployeeID)
REFERENCES Employees(EmployeeID);

在现有表上添加唯一约束

ALTER TABLE Products
ADD CONSTRAINT UQ_Products_ProductName UNIQUE (ProductName);

在现有表上添加自增属性

-- 首先,如果列已经存在,你需要先删除它
ALTER TABLE Employees DROP COLUMN EmployeeID;
​
-- 然后,重新添加列并设置为自增
ALTER TABLE Employees
ADD EmployeeID INT IDENTITY(1,1);

请注意,自增属性只能在创建列时设置,不能在现有列上修改。如果你需要将现有列设置为自增,你必须先删除该列,然后重新创建它。

注意事项

  • 在创建外键时,被引用的列(在本例中为 Employees 表的 EmployeeID 列)必须已经定义为主键或具有唯一约束。

  • 在创建唯一约束时,被约束的列不能包含重复的值。

  • 在设置自增属性时,你可以选择起始值和增量。如果不指定,SQL Server 将默认从 1 开始,增量为 1。

  • 在添加或修改表结构时,确保考虑数据完整性和性能影响。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com