创建表和定义数据完整性

create database TSQL2012;


use TSQL2012;


--查询所有数据库名   sysDatabases主数据库服务器中的数据库
select name from sysDatabases order by name;


--查询数据库当前数据库下所有表名    sysobjects系统表,在数据库内创建的每个对象(约束、默认值、日志、规则、存储过程等)在表中占一行
select name from sysobjects where xtype='U' order by name;


--创建表Employees
CREATE TABLE Employees
(
empid INT NOT NULL,
firstname VARCHAR(30) NOT NULL,
lastname VARCHAR(30) NOT NULL,
hireday DATE NOT NULL,
mgrid INT NULL,
ssn VARCHAR(20) NOT NULL,
salary MONEY NOT NULL
);


--主键约束 不允许有null
alter table Employees
add constraint PK_Employees --建立名字为PK_Employees的约束
primary key(empid);


--删除主键约束


declare @csname   varchar(100)   
set @csname='' 
select @csname=name
FROM sysobjects
WHERE xtype='PK' AND parent_obj=object_id('Employees') --获取主键约束名字
exec('alter   table   Employees  drop   constraint ' + @csname); --删除约束
    
--唯一约束 sqlserver只允许有一个NULL标记
ALTER TABLE Employees
ADD CONSTRAINT  UNQ_Employees_ssn
UNIQUE(ssn);


--创建Orders表
CREATE TABLE 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)
);


--外键约束 不同表
ALTER TABLE Orders
ADD CONSTRAINT FK_Orders_Employees
FOREIGN KEY(empid)
REFERENCES Employees(empid);


--外键约束 同一个表
ALTER TABLE Employees
ADD CONSTRAINT FK_Employees_Employees
FOREIGN KEY(mgrid)
REFERENCES Employees(empid);


--CHECT 约束 要插入的或修改的行必须满足此条件
ALTER TABLE Employees
ADD CONSTRAINT CHK_Employees_salary
CHECK(salary >0);


--默认约束 如果插入式没显示指定值则使用默认值
ALTER TABLE Orders
ADD CONSTRAINT DFT_Orders_orderts
DEFAULT(SYSDATETIME()) FOR orderts;









  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值