MSSQL DBcheck

  1 --1、创建数据库。
  2 --create database MyDatabase;
  3 --删除数据库
  4 --drop database MyDatabase;
  5 
  6 ---------------------------------------------------------
  7 --MSSQL Check 约束
  8 --1、创建数据库。
  9 --create database MyDatabase;
 10 --删除数据库
 11 --drop database MyDatabase;
 12 
 13 --2、重新创建一个数据库,使用带参数的方式来创建
 14 --filename 需要修改为本机MSSQL 存储的路径
 15 --本例中使用 E:\ProgramMSSQLServerDB
 16 create database ABC
 17 on primary 
 18 (
 19     --为主数据文件起一个逻辑名称
 20     name='ABC',
 21     filename='E:\ProgramMSSQLServerDB\ABC.mdf',
 22     size=10MB,
 23     maxsize=100MB,
 24     filegrowth=50MB--10%
 25 )
 26 log on
 27 (
 28     name='ABC_log',
 29     filename='E:\ProgramMSSQLServerDB\ABC_log.ldf',
 30     size=3mb,
 31     maxsize=100mb,
 32     filegrowth=10%
 33 )
 34 
 35 go
 36 use abc
 37 go
 38 
 39 -------------- 通过代码来为表增加约束--------------------------
 40 create table Employees
 41 (
 42     EmpId int identity(1,1),
 43     EmpName varchar(50),
 44     EmpGender nchar(1),
 45     EmpAge int,
 46     EmpEmail varchar(100),
 47     EmpAddress varchar(500)
 48 )
 49 
 50 create table Department
 51 (
 52     DepId int identity(1,1) primary key,
 53     DepName varchar(50) unique not null    
 54 )
 55 
 56 --表示插入一个空值,当在ssms设计器中插入空值的时候,可以使用大写NULL来表示空值(仅限于在ssms设计器中这样使用)
 57 --insert into biao values(null) 
 58 
 59 --当表中某列是日期类型的时候,这时要向该列中插入一个日期的时候,需要用单引号把日期字符串引起来,例如:
 60 --insert into biao(birthday) values('1996-10-10')
 61 
 62 --为Department表增加一个主键
 63 --alter table Department add constraint PK_Department_DepId primary key(DepId)
 64 
 65 
 66 ---------------------------------------------------------
 67 --============手动增加约束==========
 68 --手动删除一列(删除EmpAddress列)
 69 alter table Employees drop column EmpAddress
 70 
 71 --手动增加一列(增加一列EmpAddr varchar(1000))
 72 alter table Employees add EmpAddr varchar(1000)
 73 
 74 --手动修改一下EmpEmail的数据类型(varchar(200))
 75 alter table Employees alter column EmpEmail varchar(200)
 76 
 77 --【约束-保证数据完整性】
 78 
 79 --【主键约束】(PK) primary key constraint 唯一且不为空
 80 --为EmpId增加一个主键约束
 81 --[alter table 表名 add constraint 约束名 约束类型(列名)]
 82 alter table Employees add constraint PK_Employees_EmpId primary key(EmpId)
 83 
 84 --【非空约束】,为EmpName增加一个非空约束
 85 --1.既可以修改字段类型,2.也可以增加非空约束
 86 alter table Employees alter column EmpName varchar(5) not null
 87 
 88 --【唯一约束】(UQ) unique constraint 唯一,允许为空,但只能出现一次
 89 --为EmpName增加一个唯一约束
 90 alter table Employees add constraint UQ_Employeess_EmpName unique(EmpName)
 91 
 92 --【默认约束】(DF) default constraint 默认值
 93 --为性别增加一个默认约束,默认为'男'
 94 alter table Employees add constraint DF_Employees_EmpGender default('') for EmpGender
 95 
 96 --【检查约束】(CK) check constraint 范围以及格式限制
 97 --为年龄增加一个检查约束:年龄必须在0-120岁之间,含岁与岁。
 98 alter table Employees add constraint CK_Employees_EmpAge check(EmpAge>=0 and EmpAge<=120)
 99 
100 --创建一个部门表,然后为Employee表增加一个DepId列。
101 alter table Employees  add EmpDepId int not null
102 
103 --【外键约束】(FK) foreign key constraint 表关系(在外键表中建立外键约束)
104 -- 增加外键约束时,设置【级联更新、级联删除】:来保证,当主键表中的记录发生改变时候,对应的外键表中的数据也发生相应的改变。
105 
106 --[ ON DELETE { NO ACTION | CASCADE | SET NULL | SET DEFAULT } ]
107 --[ ON UPDATE { NO ACTION | CASCADE | SET NULL | SET DEFAULT } ]
108 
109 --为Employee表增加外键约束
110 alter table Employees 
111 add constraint FK_Employees_Department foreign key(EmpDepId) references Department(DepId)
112 
113 
114 -----------手动删除约束-------------------------
115 alter table Employees drop constraint FK_Employees_Department
116 
117 --通过一条语句删除多个约束
118 alter table Employees 
119 drop constraint UQ_Employeess_EmpName,DF_Employees_EmpGender,CK_Employees_EmpAge
120 
121 
122 --通过一条语句创建多个约束
123 alter table Employees add 
124 constraint UQ_Employeess_EmpName unique(EmpName),
125 constraint DF_Employees_EmpGender default('') for EmpGender,
126 constraint CK_Employees_EmpAge check(EmpAge>=0 and EmpAge<=120)
127 
128 -------------------------------------------------------------------
129 ---------在创建表的时候增加约束
130 
131 create table TestConstraint
132 (
133     autoId int identity(1,1) primary key,
134     uname varchar(50) unique,
135     uage int check(uage>10 and uage<20),
136     ugender char(2) default('')
137 )
138 -------------------------------------------------------------------
139 --为员工表增加一个外键约束,同时设置级联更新与级联删除
140 alter table Employees add constraint FK_Employees_Department
141 foreign key(EmpDepId) references Department(DepId) 
142 on delete cascade
143 on update cascade

 

posted @ 2016-03-07 15:30  DrHao  阅读(772)  评论(0编辑  收藏  举报