首页 SQL SERVER 正文
  • 本文约1169字,阅读需6分钟
  • 1488
  • 0
举报该广告
SQL 主键,外键,唯一约束,check约束

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

摘要
/***********************************************************************
******外键的特性和注意事项**************************
*1,外键预算约束可以将一个字段或多个字段组合定义为外
 ,  一个表可以定义多个外键 . 多个父表其中字段成为一子表的外
 ,  子表的外键约束所...
/***********************************************************************
******外键的特性和注意事项**************************
*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)

📱 扫码关注公众号

公众号二维码

扫描二维码关注我们,获取更多精彩内容
实时更新 · 干货满满

收藏

扫描二维码,在手机上阅读
评论
更换验证码
友情链接