数据库约束的一些用法总结(constraint)
2012-12-05 17:40
387 查看
主要就是增加约束的
以下几种约束 、并 一一列举:
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)
但是我经过试验默认约束这样做并不好用,我有一个例子,像我这样建表就好用了:
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.sina.com.cn/s/blog_5eec6f3a0100hxwn.html
以下几种约束 、并 一一列举:
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主键 | 班级编号 |
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.sina.com.cn/s/blog_5eec6f3a0100hxwn.html
相关文章推荐
- constraint的一些用法总结
- 约束constraint的用法总结
- constraint的一些用法总结
- constraint的一些用法总结
- WinForm查看SQL Server所有数据库表信息小工具的一些用法总结
- 【总结】alter table *** add constraint *** 用法 . 建立约束 ,主键、外键的SQL语句写法
- Julia: 用Julia操作Redis数据库及一些用法
- 数据库基础知识--数据库知识的一些小总结
- C++ string 类的一些简单用法总结
- 总结的关于数据库的一些面试题
- 难点总结:Jquery动态加载数据库中的数据(解答人:郭哲 方式:讲述jquery原理及一些函数的使用方法,学会看帮助文档)
- [摘] Objective-C的self.用法的一些总结
- Objective-C的self.用法的一些总结
- 数据库性能和一些小总结
- 总结一些关于操作数据库是sql语句还是存储过程问题
- 【关键字】一些关键字用法总结
- TO_CHAR 和 TO_DATE的一些用法总结
- Oracle之唯一性约束(UNIQUEConstraint)用法详解
- Objective-C的self.用法的一些总结
- UIWebView的一些用法总结