T-SQL :SQL Server 定义数据完整性 5大约束
1.首先創(chuàng)建一客戶張表
?
IF OBJECT_ID('dbo.Employees', 'U') IS NOT NULL
? DROP TABLE dbo.Employees;
CREATE TABLE dbo.Employees
(
? empid? ? ?INT? ? ? ? ?NOT NULL,
? firstname VARCHAR(30) NOT NULL,
? lastname? VARCHAR(30) NOT NULL,
? hiredate? DATE? ? ? ? NOT NULL,
? mgrid? ? ?INT? ? ? ? ?NULL,
? ssn? ? ? ?VARCHAR(20) NOT NULL,
? salary? ? MONEY? ? ? ?NOT NULL
);
2.主鍵約束
-- Primary key
ALTER TABLE dbo.Employees
? ADD CONSTRAINT PK_Employees
? PRIMARY KEY(empid);
??
對于主鍵約束后臺將創(chuàng)建一個唯一索引,以物理機制強制邏輯的唯一性約束
3.唯一約束
-- Unique
ALTER TABLE dbo.Employees
? ADD CONSTRAINT UNQ_Employees_ssn
? UNIQUE(ssn);
4.外鍵約束 創(chuàng)建一張訂單表 插入外鍵
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;
總結(jié)
以上是生活随笔為你收集整理的T-SQL :SQL Server 定义数据完整性 5大约束的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java 虚类private 继承_Ja
- 下一篇: 三种场景不建议放在关系型数据库中