创建表&定义约束

--创建表
USE BHGS;--确保SQL SERVER是在指定数据库中创建对象
GO

IF OBJECT_ID('DBO.Employee','u') is NULL
DROP TABLE dbo.employee;

CREATE TABLE dbo.employee
(
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
);

--定义数据完整性
--主键约束:强制行的唯一性,在约束属性中也不允许使用NULL标记。约束属性值的每组唯一值仅能在表中出现一次,且设置语句要在一行中。
ALTER TABLE dbo.employee
 ADD CONSTRAINT PK_EMPLOYEE
 PRIMARY KEY(EMPID)

--唯一约束:强制行的唯一性,允许你在自己的数据库中实现关系模型的备用键概念。与主键不同,可以在同一个表内定义多个唯一约束。
ALTER TABLE dbo.employee
 ADD CONSTRAINT UNQ_Employee_ssn
 UNIQUE(SSN);

--外键约束:强制引用完整性。此约束定义了引用表中的一个或多个属性指向被引用表(父表)中候选键(主键或唯一约束)
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)
);
--限制由Orders表中empid列支持的值要存在于Employ表的empid列中
ALTER TABLE dbo.ORDERS
 ADD CONSTRAINT FK_Orders_Employee
 FOREIGN key(empid)
 REFERENCES dbo.employee(empid);
--限制employee表中mgrid列中的值存在于同一表的empid列中
ALTER TABLE dbo.employee
 ADD CONSTRAINT FK_Employee_employee
 FOREIGN KEY(mgrid)
 REFERENCES dbo.employee(empid);

--CHECK约束:定义一个谓词,要进入到表中的行或是被修改的行必须满足此要求。
ALTER TABLE dbo.employee
 ADD CONSTRAINT CHK_Employee_Salary
 CHECK(Salary>0);

--默认约束:与特定属性相关联。如果在插入行时没有为属性指定一个显式值,将使用该默认值。
ALTER TABLE dbo.ORDERS
 ADD CONSTRAINT DEF_ORDERS_Orderts
 DEFAULT(SYSDATETIME()) FOR Orderts;
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值