T-SQL :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;
从此山高路远,纵马扬鞭。愿往后旅途,三冬暖,春不寒,天黑有灯,下雨有伞。此生尽兴,不负勇往。