19-6 通过t-sql实现约束

------------------------------------------------------------------------
--通过t-sql语句来创建约束
------------------------------------------------------------------------
--新建一张表:员工信息表
create table Employees
(
    EmpId int identity(1,1),
    EmpName nvarchar(50),
    EmpGender char(2),
    EmpAge int,
    EmpEmail nvarchar(100),
    EmpAddress nvarchar(500)
)

create table Department
(
  DepId int identity(1,1),
  DepName nvarchar(50),
)
--========================手动增加约束===========================
--手动删除一列(删除EmpAddress列)
alter table Employees drop column EmpAddress

--手动增加一列(增加一列EmpAddress nvarchar(1000))
alter table Employees add EmpAddress nvarchar(1000)

--手动修改一下EmpEmail的数据类型(nvarchar(200))
alter table Employees alter column EmpEmail nvarchar(200)

--为EmpId增加一个主键约束
alter table Employees add constraint PK_Employees_EmpId primary key (EmpId)

--非空约束,为EmpName增加一个非空约束(修改列)
alter table Employees alter column EmpName nvarchar(50) not null

--为EmpName增加一个唯一约束
alter table Employees add constraint UQ_Employees_EmpName unique (EmpName) 

--为性别增加一个默认约束,默认为"男"
alter table Employees add constraint DF_Employees_EmpGender default(‘男‘) for EmpGender

--为性别增加一个检查约束,要求性别只能是"男"or"女"
alter table Employees add constraint CK_Employees_EmpGender check(EmpGender=‘男‘ or EmpGender=‘女‘)

--为年龄增加一个检查约束,年龄必须在0-120岁,含岁与岁
alter table Employees add constraint CK_Employees_EmpAge check(EmpAge>=0 and EmpAge<=120)

--创建一个部门表,然后为Employees表增加一个DepId列
alter table Employees add DepId int not null

--为Department表设置主键,主键列是DepId
alter table Department add constraint PK_Department_DepId primary key (DepId)

--增加外键约束
alter table Employees add constraint FK_Employees_Department foreign key(DepId) references Department(DepId)
------------------------------------------------------------------
--删除约束---------------------------------------------
alter table Employees drop constraint UQ_Employees_EmpName,DF_Employees_EmpGender,CK_Employees_EmpGender,CK_Employees_EmpAge,FK_Employees_Department

--通过一条代码来增加多个约束
alter table Employees add
constraint UQ_Employees_EmpName unique (EmpName) ,
constraint DF_Employees_EmpGender default(‘男‘) for EmpGender,
constraint CK_Employees_EmpGender check(EmpGender=‘男‘ or EmpGender=‘女‘),
constraint CK_Employees_EmpAge check(EmpAge>=0 and EmpAge<=120),
constraint FK_Employees_Department foreign key(DepId) references Department(DepId)
--========================================================================
----------------------创建表的同时就为表增加约束--------------------------
create table Employees
(
    EmpId int identity(1,1) primary key,
    EmpName nvarchar(50) not null unique check(len(EmpName)>2),
    EmpGender char(2) default(‘男‘),
    EmpAge int check(EmpAge>0 and EmpAge<120),
    EmpEmail nvarchar(100) unique,
    EmpAddress nvarchar(500) not null,
    EmpDepId int foreign key references Department(DepId) on delete cascade
)

create table Department
(
  DepId int identity(1,1) primary key,
  DepName nvarchar(50) not null unique
)
时间: 2024-07-30 03:05:13

19-6 通过t-sql实现约束的相关文章

(转载)SQL基础--&gt; 约束(CONSTRAINT)

感谢Leshami的分享,原文地址:http://blog.csdn.net/leshami/article/details/5711367 --============================= --SQL基础--> 约束(CONSTRAINT) --============================= 一.几类数据完整性 实体完整性:表中记录不重复(任何两条记录不全等)并且每条记录都有一个非空主键 域完整性:表中字段值必须与字段数据类型.格式.有效范围相吻合 参照完整性:不能引

SQL DEFAULT 约束

SQL DEFAULT 约束 DEFAULT 约束用于向列中插入默认值. 如果没有规定其他的值,那么会将默认值添加到所有的新记录. SQL DEFAULT Constraint on CREATE TABLE 下面的 SQL 在 "Persons" 表创建时为 "City" 列创建 DEFAULT 约束: My SQL / SQL Server / Oracle / MS Access: CREATE TABLE Persons ( Id_P int NOT NUL

基础篇 - SQL 的约束

基础篇 - SQL 的约束 约束 一.实验简介 约束是一种限制,它通过对表的行或列的数据做出限制,来确保表的数据的完整性.唯一性.本节实验将在实践操作中熟悉 MySQL 中的几种约束. 二.实验内容 1.约束分类 听名字就知道,约束是一种限制,它通过对表的行或列的数据做出限制,来确保表的数据的完整性.唯一性. 在MySQL中,通常有这几种约束: 约束类型: 主键 默认值 唯一 外键 非空 关键字: PRIMARY KEY DEFAULT UNIQUE FOREIGN KEY NOT NULL 2

SQL PRIMARY KEY 约束\SQL FOREIGN KEY 约束\SQL CHECK 约束

SQL PRIMARY KEY 约束 PRIMARY KEY 约束唯一标识数据库表中的每条记录. 主键必须包含唯一的值. 主键列不能包含 NULL 值. 每个表都应该有一个主键,并且每个表只能有一个主键. SQL PRIMARY KEY Constraint on CREATE TABLE 下面的 SQL 在 "Persons" 表创建时在 "Id_P" 列创建 PRIMARY KEY 约束: MySQL: CREATE TABLE Persons ( Id_P i

SQL CREATE TABLE 语句\SQL 约束 (Constraints)\SQL NOT NULL 约束\SQL UNIQUE 约束

CREATE TABLE 语句 CREATE TABLE 语句用于创建数据库中的表. SQL CREATE TABLE 语法 CREATE TABLE 表名称 ( 列名称1 数据类型, 列名称2 数据类型, 列名称3 数据类型, .... ) 数据类型(data_type)规定了列可容纳何种数据类型.下面的表格包含了SQL中最常用的数据类型: 数据类型 描述 integer(size) int(size) smallint(size) tinyint(size) 仅容纳整数.在括号内规定数字的最

SQL CHECK 约束&amp;Case when 的使用方法

1.CHECK 约束 SQL CHECK 约束 CHECK 约束用于限制列中的值的范围. 如果对单个列定义 CHECK 约束,那么该列只允许特定的值. 如果对一个表定义 CHECK 约束,那么此约束会在特定的列中对值进行限制. SQL CHECK Constraint on CREATE TABLE 下面的 SQL 在 "Persons" 表创建时为 "Id_P" 列创建 CHECK 约束.CHECK 约束规定 "Id_P" 列必须只包含大于 0

SQL的约束语句

SQL 约束(Constraints) 约束用于限制加入表的数据的类型. 可以在创建表时规定约束(通过 CREATE TABLE 语句),或者在表创建之后也可以(通过 ALTER TABLE 语句). 我们将主要探讨以下几种约束: NOT NULL                  (不为空约束) UNIQUE                     (唯一约束) PRIMARY KEY             (主键约束) FOREIGN KEY             (外键约束) CHEC

扩展Exception,增加判断Exception是否为SQL引用约束异常方法!

在设计数据表时,如果将某些列设置为关联其它表的外键,那么如果对其进行增加.修改操作时,其关联表若没有相匹配的记录则报错,或者在对其关联表进行删除时,也会报错,这就是外键约束的作用,当然除了外键还有许多约束,在此暂不讨论,本篇文章主要讲的是,如何判断是否为SQL的引用约束异常,从而能够更好的将SQL复杂的报错转换为用户能够明白的友好提示. 扩展Exception,增加判断Exception是否为SQL引用约束异常方法(IsSqlReferenceConstraintException): publ

SQL CHECK 约束

SQL CHECK 约束 CHECK 约束用于限制列中的值的范围. 如果对单个列定义 CHECK 约束,那么该列只允许特定的值. 如果对一个表定义 CHECK 约束,那么此约束会基于行中其他列的值在特定的列中对值进行限制. 1.ALTER TABLE Persons ADD CHECK (P_Id>0) 2.ALTER TABLE Persons ADD CONSTRAINT chk_Person CHECK (P_Id>0 AND City='Sandnes') 3.ALTER TABLE

SQL删除约束

1 1)禁止所有表约束的SQL 2 select 'alter table '+name+' nocheck constraint all' from sysobjects where type='U' 3 4 2)删除所有表数据的SQL 5 select 'TRUNCATE TABLE '+name from sysobjects where type='U' 6 7 3)恢复所有表约束的SQL 8 select 'alter table '+name+' check constraint a