oracle数据库之约束
来源:互联网 发布:易语言播放音乐源码 编辑:程序博客网 时间:2024/05/22 09:46
一、非空约束
1、在创建表时设置非空约束(在数据类型后面加上 not null)
create table tablename( username varchar2(20) not null, ...);2、在修改表时添加非空约束(其实也就是修改字段的定义,但是需要表中没有数据(确切的说是要添加非空约束的列没有非空数据))
alter table tablename modify column_name datatype not null3、删除非空约束
alter table tablename modify column_name datatype null;注意:null不能省略,否则删不掉
二、主键约束
一张表只能设计一个主键约束,主键约束可以由多个字段构成,成为联合主键或复合主键,主键约束可以确保数据的唯一性,主键约束的字段是非空的
1、在创建表时添加主键约束
create table tablename( id number(6,0) primary key, ...);
create table tablenaem( ..., [constraint pk_name] primary key(字段名,...));第一种为列级约束,第二种为表级约束,如果加了constraint,则主键名称不能省略
2、在修改表时添加主键约束
alter table tablename add constraint constraint_name primary key(column_name1,...);注意: constraint_name不能省略
3、修改主键约束的名称
alter table table_name rename constraint constraint_name to new_constraint_name;该语句也可以用于修改其他类型约束的名称
4、禁用主键约束
alter table tablename disable | enable constraint constraint_name;该语句也可以用于禁用和启用其他类型约束
5、删除主键约束
alter table tablename drop constraint constraint_name;该语句也可以用于删除其他类型的约束,对于主键约束也可以用下面的语句删除:
alter table table_name drop primary key [cascade];因为一个表的主键约束只能有一个
三、外键约束(外键可以为null)
1、在创建表的时候设置外键约束
create table tablename( ..., t_id varchar2(10) references other_tablename(column), ...);references 后面的表叫主表,新建的表叫从表(也可以说是有外键列的表是从表),以上是创建列级约束,下面是创建表级约束:
create table tablename( ..., [constraint constraint_name] foreign key(this_table_column) references other_tablename(other_table_column) [ on delete cascade ]);如果加了constraint,则外键名称不能省略
2、在修改表的时候设置外键约束
alter table tablename add constraint constraint_name foreign key(column) references other_tablename(column);注意:constraint_name不能省略
3、修改外键约束的名称
alter table tablename rename constraint constraint_name to new_constraint_name;
4、禁用外键约束
alter table tablename disable | enable constraint constraint_name;
5、删除外键约束
alter table tablename drop constraint constraint_name;
四、唯一约束
1、在创建表的时候设置唯一约束
create table tablename( column_name datatype unique, ...);
create table tablename( ..., [constraint constraint_name] unique(column_name));2、在修改表的时候添加唯一约束
alter table tablename add constraint constraint_name unique(column_name);注意:constraint_name不能省略
3、禁用 | 启用唯一约束
alter table tablename disable | enable constraint constraint_name;
4、删除唯一约束
alter table tablename drop constraint constraint_name;
五、检查约束
检查约束的作用是使字段的值具有实际意义,例如:员工的薪水不能为负的,年龄是不可能为好几百的,检查约束是可以有多个的
1、在创建表时设置检查约束
create table tablename( ..., column_name datatype check(expr), ...);
create table tablename( ..., [constraint constraint_name] check(expr));
2、在修改表时设置检查约束
alter table tablename add constraint constaint_name check(expr);
3、禁用检查约束
alter table tablename disable | enable constraint constraint_name;
4、删除检查约束
alter table tablename drop constraint constraint_name;
总结:
一、主键约束与唯一约束的区别
1、主键约束字段值必须是非空的,唯一约束允许有一个空值
2、主键约束在每一张表中只能有一个,而唯一约束则可以有多个
二、1、除了主键约束删除时可以直接在drop后面使用primary key关键字以外,其余约束都是使用如下语句:
alter table tablename drop constraint constraint_name;2、禁用约束都是使用以下语句:
alter table tablename disable | enable constraint constraint_name;
3、在创建表时添加表级约束时,语句前面的 constraint constraint_name 都可以不加,此时oracle自动为约束起名
4、只有非空约束只能在列级设置,不能在表级设置,其它约束既能在列级设置也能在表级设置,非空约束其实就是修改列的定义
- Oracle数据库之约束
- oracle数据库之约束
- oracle数据库初步之约束
- Oracle数据库之操作表的约束
- Oracle数据库完整性约束
- oracle数据库约束
- oracle数据库约束
- Oracle数据库的约束
- oracle数据库约束类型
- oracle数据库添加约束
- oracle 数据库的约束
- Oracle数据库中的约束
- 修改oracle数据库约束
- Oracle数据库表约束
- Oracle数据库完整性约束
- Oracle数据库表约束
- oracle数据库(约束)
- Oracle之表约束
- java:String使用equals和==比较的区别
- 235. Lowest Common Ancestor of a Binary Search Tree
- P3383 【模板】线性筛素数
- Numpy学习小结(1)
- 时间复杂度和空间复杂度_增强版
- oracle数据库之约束
- 模拟器安装应用失败(INSTALL_FAILED_NO_MATCHING_ABIS)
- 解决Tomcat不能访问首页的问题,eclipse中tomcat能正常启动
- UnityShader——屏幕空间的能量罩(模拟守望先锋温斯顿的能量罩)
- ffmpeg encode/decode example
- HDU6134(莫比乌斯反演)
- nginx+obs搭建流媒体,实现直播
- 21、多项式插值,最小二乘法和牛顿迭代法
- Android进程间通信(二)- Messenger