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)

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

什么是主键? 在数据库中,常常不只是一个表,这些表之间也不是相互独立的。不同的表之间需要建立一种关系,才能将它们的数据相互沟通。而在这个沟通过程中,就需要表中有一个字段作为标志,不同的记录对应的字段取...
  • ITlei
  • ITlei
  • 2010年11月24日 23:13
  • 1121

Oracle-主键约束、唯一约束与外键约束

          1.主键约束: 一个表只能有一个主键约束。主键可以是单个字段,也可以是多个字段。无论是哪种情况,其所有字段都是NOT NULL。           2.Unique约束:一个表可...
  • totuswhf
  • totuswhf
  • 2008年03月27日 13:41
  • 2331

Oracle PL/SQL开发基础(第一弹:创建表和创建约束)

创建表创建表使用CREATE TABLE语句 如:--创建表workcenter CREATE TABLE workcenter --指定表名称 ( id int, ...
  • lianjiww
  • lianjiww
  • 2017年03月23日 21:49
  • 762

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

[+] Primary Key约束Foreign Key约束Unique约束Default约束Check约束     机房收费系统个人重构版开始了,但在设计数据库时遇到了写小麻烦,主要...
  • qq61394323
  • qq61394323
  • 2014年05月17日 19:36
  • 55686

约束:确保数据的完整性(主键,唯一,检查,默认,非空,外键)

问题: 建立约束代码: --建表 use StudentManager--指定 if exists (select *from sysobjects where name='tbl+studen...
  • qq_34216631
  • qq_34216631
  • 2017年04月01日 14:23
  • 241

mysql 外键,主键,唯一性约束

(1)mysql添加外键 为已经添加好的数据表添加外键: 语法:alter table 表名 add constraint FK_ID foreign key(...
  • huoxingren0523
  • huoxingren0523
  • 2017年06月21日 15:32
  • 89

PostgreSQL 添加各种约束语法

1. 添加主键 alter table goods add primary key(sid); 2. 添加外键 alter table orders add foreign key(goods_id)...
  • luojinbai
  • luojinbai
  • 2015年04月04日 22:23
  • 7087

MySQL--修改数据表5:删除主键约束,唯一约束,外键约束

以下删除的各种约束,都是只删除约束,并没有删除字段。删除约束后,字段仍然存在 例如给 users2 表中的 id 字段删除主键约束 ALTER TABLE users2 DROP PRIMARY ...
  • wang907553141
  • wang907553141
  • 2017年06月05日 22:25
  • 494

主键约束,唯一约束与默认约束

主键约束:PRIMARY KEY 每张数据表只能存在一个主键 主键保证记录的唯一性 主键自动为NOT NULL AUTO_INCREMENT 自动编号,且必须与主键一起使用。但是主键不一定要和AUTO...
  • qq_33290787
  • qq_33290787
  • 2016年07月05日 11:21
  • 2063

SQL的主键和外键约束详解及用途

SQL的主键和外键的作用:    外键取值规则:空值或参照的主键值。 (1)插入非空值时,如果主键表中没有这个值,则不能插入。 (2)更新时,不能改为主键表中没有的值。 (3)删除主键表记...
  • litong09282039
  • litong09282039
  • 2015年06月07日 21:11
  • 9732
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:SQL 主键,外键,唯一约束,check约束
举报原因:
原因补充:

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