SQL 主键,外键,唯一约束,check约束

转载 2010年03月26日 10:45:00

/***********************************************************************

******外键的特性和注意事项***************************

*1,外键预算约束可以将一个字段或多个字段组合定义为外键

一个表可以定义多个外键 . 多个父表其中字段成为一子表的外键

子表的外键约束所定义的字段的数目和数据类型必须要和父表字段相同 ,

   但是字段名可以不同 .

一个表不但可以链接同一数据库其他表的字段 , 还可以链接到自己表中的其他一个字段

   条件这链接自己的表字段的之间的字段名不同 ( 同一表不可能要相同的字段名 )

, 外键不自动创建索引 , 而主键可以自动创建索引 .

外键约束使用 ' 限制删除 ',' 连锁删除 ',' 限制更新 ',' 连锁更新 ',' 设为 NULL' ' 设为默认值 '

  等方法来维护关联表间的应用完整性

********************************************

***********************************************************************

 

create table tbDept

(

  dId int identity ( 1, 1) primary key not null,

  dName char ( 20) not null,

  pId int not null,

  pDesc text

)

insert into tbDept values ( ' 技术部 ' , 0, ' 的短短的 ' )

insert into tbDept values ( ' 业务部 ' , 0, ' 叮叮当当 ' )

insert into tbDept values ( ' 财务部 ' , 0, ' 叮叮咚咚大 ' )

 

create table MyUserInfo

(

  UserId int identity ( 10, 10) not null

  constraint PK_UserId_MyUserInfo

  primary key clustered ,   -- 主键 

  --1 创建外键

  dId int not null

  constraint FK_MyUserInfo_tbDept

  foreign key

  references tbDept( dId),

 

  UserCIP char ( 18) not null

  constraint UQ_UserCIP_MyUserInfo unique , -- 唯一约束

  UserJSID char ( 6) not null

  constraint UQ_userJSID_MyUserId unique , -- 唯一约束

  UserName varchar ( 20) not null,

  UserTel varchar ( 12) null,

  UserMolt int null,

  UserAge int not null   -- 用户年龄在2-120岁之间

  constraint CHK_UserAge_MyUserInfo check ( UserAge > 2 && UserAge < 120)

  UserSex char ( 2) not null   -- 用户性别男或女

  constraint CHK_UserSex_MyUserInfo check ( UserSex= ' ' or UserSex= ' ' ),

  -- 用户名和电话号码按 DESC 排序组合是唯一的

  constraint UQ_UserName_UserTel_MyUserInfo unique ( UserName desc , UserTel desc ),

   --constraint UQ_UserName_UserTel_MyUserInfo unique(UserName desc |asc,UserTel desc |asc)

  ----constraint UQ_UserName_UserTel_MyUserInfo unique(UserName ,UserTel desc |asc)

  -- 用户名和手机号码按 DESC 排序组合是唯一的

  constraint UQ_userName_UserMolt_MyUserInfo unique ( UserName desc , UserMolt desc )

);

 

--2 创建外键

ALTER TABLE MyUserInfo

ADD

constraint FK_MyUserInfo_tbDept

foreign key ( dId)

  references tbDept( dId);

--3 创建外键

ALTER TABLE MyUserInfo

with nocheck ADD

constraint FK_MyUserInfo_tbDept

  Foreign Key ( dId)

references tbDept( dId)

--4 创建外键

ALTER TABLE MyUserInfo

with check ADD

constraint FK_MyUserInfo_tbDept

  Foreign Key ( dId)

references tbDept( dId)

相关文章推荐

主键约束、外键约束、唯一约束、检查约束、默认值约束实例

主键(primary key)约束、外键(foreign key)约束、唯一(unique)约束、检查(check)约束、默认值(default)约束实例   Oracle 有如下类型的约...

数据库六大约束用法:主键(primary key)、外键(foreign key)、非空(not null)、默认(default)、检查(check)、唯一(unique)

数据库六大约束用法:主键(primary key)、外键(foreign key)、非空(not null)、默认(default)、检查(check)、唯一(unique)...

主键、外键、唯一、约束区别

  • 2010年03月18日 07:52
  • 21KB
  • 下载

sql-约束constraint(非空,唯一,主键,外键,检查)自学笔记

约束(constraint)即完整性约束 在表上强制执行的数据校验规则, 对表执行DML(insert,update,delete)操作时,如果不符合规则则无法执行。 种类: 非空约束      ...

【总结】alter table *** add constraint *** 用法 . 建立约束 ,主键、外键的SQL语句写法

【总结】alter table *** add constraint *** 用法 2010年08月26日 星期四 08:31 1.主键约束: 要对一个列加主键约束的话,这列就必须要满足的...

SQL Server 创建约束图解 唯一 主键

SQL Server 创建约束图解 唯一 主键 分类: SQL Server2014-05-17 19:36 3489人阅读 评论(0) 收藏 举报 目录(?)[+] SQLServ...

经典SQL语句大全_主外键_约束

  • 2011年12月13日 18:06
  • 123KB
  • 下载

数据库,索引,主键,约束,sql

  • 2011年06月24日 15:28
  • 19KB
  • 下载

sqlserver 基础(增、删、改、查、链表查询、建立聚焦索引、主键、创建约束、创建外键)、触发器、存储过程

初中学历 + 记忆力差的我只能去点点滴滴的记录着开发中遇到的问题!
  • XPY567
  • XPY567
  • 2015年11月14日 14:53
  • 1284
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:SQL 主键,外键,唯一约束,check约束
举报原因:
原因补充:

(最多只允许输入30个字)