• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

Gredswsh的技术生活

Java,Python,Go,SCI_NUM
  • 联系
  • 订阅
  • 管理

公告

View Post

constraint的一些用法总结

主要就是增加约束的

以下几种约束 、并 一一列举:

1.主键约束:
要对一个列加主键约束的话,这列就必须要满足的条件就是分空
因为主键约束:就是对一个列进行了约束,约束为(非空、不重复)
以下是代码  要对一个列加主键,列名为id,表名为emp

格式为:
alter table 表格名称 add constraint 约束名称 增加的约束类型 (列名)

例子:
alter table emp add constraint ppp primary key (id)

————————————————————————————————

2.check约束:
就是给一列的数据进行了限制
比方说,年龄列的数据都要大于20的
表名(emp) 列名(age)

格式:
alter table 表名称 add constraint 约束名称 增加的约束类型 (列名)

例子:
alter table emp add constraint xxx check(age>20)

______________________________________________________________________

3.unique约束:
这样的约束就是给列的数据追加的不重复的约束类型

格式:
alter table 表名 add constraint 约束名称 约束类型(列名)
比方说可以给ename列加个unique,让ename列的数据不重复
例子:
alter table emp add constraint qwe unique(ename)

————————————————————————————————

4.默认约束:
意思很简单就是让此列的数据默认为一定的数据

格式:
alter table 表名称 add constraint 约束名称 约束类型 默认值) for 列名

比方说:emp表中的gongzi列默认为10000

alter table emp add constraint jfsd default 10000 for gongzi


————————————————————————————————

5.外键约束:
这个有点难理解了,外键其实就是引用
因为主键实现了实体的完整性,
外键实现了引用的完整性,
应用完整性规定,所引用的数据必须存在!

其实就是个引用,
比方说一个表名称叫dept 里面有2列数据 一列是ID一列是ENAME
id:表示产品的编号
ename:表示产品的名称

另外一个表格名称是emp 里面有2列数据,一列是ID 一列是DID
id:表示用户号
did:表示购买的产品号

要让emp表中的did列去引用dept表中的id

可以用下面的方法

格式:
alter table 表名 add constraint 约束名称 约束类型 (列名) references 被引用的表名称(列名)

例子:
alter table emp add constraint jfkdsj foreign key (did) references dept (id)

但是我经过试验默认约束这样做并不好用,我有一个例子,像我这样建表就好用了:

 

属性

类型(长度)

默认值

约束

含义

STUNO

数值 (8)

无

主键

学号

SNAME

变长字符 (12)

无

非空

姓名

SEX

字符 (2)

男

无

性别

BIRTHDAY

日期

无

无

生日

EMAIL

变长字符 (20)

无

唯一

电子邮件

SCORE

数值 (5, 2)

无

检查

成绩

CLASSNO

数值 (2)

无

外键,关联到表CLASS的CLASSNO主键

班级编号

 

Create table student(
stuno number(8) ,
sname varchar2(12) not null,
sex char(2) default '男',
birthday date,
email varchar2(20),
score number(5,2),
classno number(2),
constraint student_stuno_pk primary key(stuno),
constraint student_email_uk unique(email),
constraint student_score_ck check(score>=0),
constraint student_classno_fk foreign key (classno) references class(classno));

部分出处:http://blog.csdn.net/steven_oyj/archive/2009/11/01/4754061.aspx

转载请注明文章出处:http://www.cnblogs.com/gredswsh   Gredswsh  专栏

posted on 2014-07-03 12:35  fxcl  阅读(511)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3