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
时间: 2024-11-05 22:33:19