编辑
2025-09-26
SQLSERVER
00

目录

主键(Primary Key)
示例脚本:
示例数据:
外键(Foreign Key)
示例脚本:
示例数据:
检查约束(Check Constraint)
示例脚本:
示例数据:
默认值(Default Value)
示例脚本:
示例数据:
总结

在数据库设计中,维护数据的完整性是至关重要的。SQL Server 提供了多种机制来保证数据的准确性和一致性。本文将详细介绍主键、外键、检查约束和默认值,并提供相应的SQL脚本来展示它们的使用。

主键(Primary Key)

主键是一列或列的组合,其值能唯一标识表中的每一行。主键不能包含NULL值,并且每个表只能有一个主键。

示例脚本:

创建一个包含主键的 Customers 表:

SQL
CREATE TABLE Customers ( CustomerID INT NOT NULL, Name VARCHAR(100) NOT NULL, Email VARCHAR(100) NOT NULL, CONSTRAINT PK_Customers PRIMARY KEY (CustomerID) );

image.png

示例数据:

CustomerIDNameEmail
1Alicealice@example.com
2Bobbob@example.com
SQL
-- 插入Customers表数据 INSERT INTO Customers (CustomerID, Name, Email) VALUES (1, 'Alice', 'alice@example.com'), (2, 'Bob', 'bob@example.com');

image.png

外键(Foreign Key)

外键是一列或列的组合,它指向另一个表的主键,以此来建立两个表之间的关系,并确保参照完整性。

image.png

示例脚本:

创建一个包含外键的 Orders 表,CustomerID 是外键,它引用 Customers 表的主键。

SQL
CREATE TABLE Orders ( OrderID INT NOT NULL, CustomerID INT, OrderDate DATE NOT NULL, TotalAmount DECIMAL(10, 2) NOT NULL, CONSTRAINT PK_Orders PRIMARY KEY (OrderID), CONSTRAINT FK_Orders_Customers FOREIGN KEY (CustomerID) REFERENCES Customers (CustomerID) );

示例数据:

OrderIDCustomerIDOrderDateTotalAmount
10012023-01-102000.00
10122023-01-11800.00
SQL
-- 插入Orders表数据 INSERT INTO Orders (OrderID, CustomerID, OrderDate, TotalAmount) VALUES (100, 1, '2023-01-10', 2000.00), (101, 2, '2023-01-11', 800.00);

检查约束(Check Constraint)

检查约束确保列中的数据满足指定的条件,它可以用来验证数据的有效性。

示例脚本:

Products 表的 Price 列上添加检查约束,以确保价格不会小于0。

SQL
CREATE TABLE Products ( ProductID INT NOT NULL, Name VARCHAR(100) NOT NULL, Price DECIMAL(10, 2) NOT NULL, CONSTRAINT PK_Products PRIMARY KEY (ProductID), CONSTRAINT CHK_Products_Price CHECK (Price >= 0) );

示例数据:

ProductIDNamePrice
1Laptop1200.00
2Mouse20.00

image.png

默认值(Default Value)

默认值为列定义了一个默认数据值。如果在插入行时未指定列值,则会自动使用默认值。

示例脚本:

Orders 表的 Status 列上添加默认值约束,使得新订单的默认状态为 Processing

SQL
ALTER TABLE Orders ADD Status VARCHAR(50) NOT NULL CONSTRAINT DF_Orders_Status DEFAULT 'Processing';

示例数据:

OrderIDCustomerIDOrderDateTotalAmountStatus
10012023-01-102000.00Processing
10122023-01-11800.00Shipped

总结

数据完整性是确保数据库信息准确无误的关键。通过正确地应用主键、外键、检查约束和默认值,我们可以有效地控制数据的输入和维护,保证数据的质量。主键提供了一种唯一标识每行数据的方法,外键帮助保持表之间的参照完整性,检查约束确保数据满足特定的规则,而默认值则简化了数据的输入过程。有效使用这些工具能够大大提升数据库的健壮性和可靠性。

本文作者:技术老小子

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!