SQL Server 定义数据完整性 6大约束
Posted yuanzijian-ruiec
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL Server 定义数据完整性 6大约束相关的知识,希望对你有一定的参考价值。
1.创建一客户张表
1 IF OBJECT_ID(‘dbo.Employees‘, ‘U‘) IS NOT NULL 2 DROP TABLE dbo.Employees; 3 4 CREATE TABLE dbo.Employees 5 ( 6 empid INT NOT NULL, 7 firstname VARCHAR(30) NOT NULL, 8 lastname VARCHAR(30) NOT NULL, 9 hiredate DATE NOT NULL, 10 mgrid INT NULL, 11 ssn VARCHAR(20) NOT NULL, 12 salary MONEY NOT NULL 13 );
2.主键约束
-- Primary key ALTER TABLE dbo.Employees ADD CONSTRAINT PK_Employees PRIMARY KEY(empid);
对于主键约束后台将创建一个唯一索引,以物理机制强制逻辑的唯一性约束
3.唯一约束
-- Unique ALTER TABLE dbo.Employees ADD CONSTRAINT UNQ_Employees_ssn UNIQUE(ssn);
4.外键约束 创建一张订单表 插入外键
IF OBJECT_ID(‘dbo.Orders‘, ‘U‘) IS NOT NULL DROP TABLE dbo.Orders; CREATE TABLE dbo.Orders ( orderid INT NOT NULL, empid INT NOT NULL, custid VARCHAR(10) NOT NULL, orderts DATETIME2 NOT NULL, qty INT NOT NULL, CONSTRAINT PK_Orders PRIMARY KEY(orderid) );
-- Foreign keys ALTER TABLE dbo.Orders ADD CONSTRAINT FK_Orders_Employees FOREIGN KEY(empid) REFERENCES dbo.Employees(empid);
5.CHECK约束
-- Check ALTER TABLE dbo.Employees ADD CONSTRAINT CHK_Employees_salary CHECK(salary > 0.00);
6.默认约束
-- Default ALTER TABLE dbo.Orders ADD CONSTRAINT DFT_Orders_orderts DEFAULT(SYSDATETIME()) FOR orderts; -- Cleanup DROP TABLE dbo.Orders, dbo.Employees;
以上是关于SQL Server 定义数据完整性 6大约束的主要内容,如果未能解决你的问题,请参考以下文章
1 - SQL Server 2008 之 使用SQL语句创建具有约束条件的表
数据库原理与应用(SQL Server)笔记 第六章 数据完整性