Oracle管理约束(二)Oracle维护约束

1、建表时定义约束,既可以在列级定义,也可以在表级定义。对于NOT NULL约束,只能在列级定义,不能再表级定义。

(1)列级定义

语法:

column   [CONSTRAINT     constraint_name]     constraint_type,

02:01:01 SQL> create table t1 (

02:01:19   2  deptno number(2) constraint pk_deptid primary key,

02:01:25   3  name varchar2(20),

02:01:30   4  loc varchar2(20));

Table created.

02:12:07 SQL> desc t1;

Name         Null?    Type

--------- -------- -----------------

DEPTNO      NOT NULL NUMBER(2)

NAME                          VARCHAR2(20)

LOC                           VARCHAR2(20)

02:12:15 SQL> insert into t1 values (10,'Cisco','BeiJing');

1 row created.

02:12:59 SQL> insert into t1 values (10,'Cisco','BeiJing');

insert into t1 values (10,'Cisco','BeiJing')

*

ERROR at line 1:

ORA-00001: unique constraint (SCOTT.PK_DEPTID) violated

(2)表级定义

语法:

column, … ,

[CONSTRAINT     constraint_name]     constraint_type(column, … ),

create table t2(

2   empno number(4) ,name varchar2(15),job varchar2(10),

3  manager_id number(4),hire_date date,sal number(7,2),

4  comm number(7,2),deptno number(2),

5  constraint pk_emp_id primary key(empno)

6     using index tablespace users01,

7  constraint fk_dept_id foreign key (deptno)

8    references t1(deptno));

Table created.

03:43:32 SQL> select * from t1;

DEPTNO NAME                 LOC

---------- -------------------- --------------------

10 Cisco                BeiJing

03:43:46 SQL> insert into t2 values(7788,'tom','sales','7936',sysdate,3000,0,20);

insert into t2 values(7788,'tom','sales','7936',sysdate,3000,0,20)

*

ERROR at line 1:

ORA-02291: integrity constraint (SCOTT.FK_DEPT_ID) violated - parent key not found

在t1的deptno没有20的,所以插入20的记录出错,参考性约束。

03:44:59 SQL> insert into t2 values(7788,'tom','sales','7936',sysdate,3000,0,10);

1 row created.

03:45:04 SQL> select * from t2;

EMPNO NAME            JOB        MANAGER_ID HIRE_DATE                  SAL       COMM     DEPTNO

---------- --------------- ---------- ---------- ------------------- ---------- ---------- ----------

7788 tom             sales            7936 2011-02-25 03:45:04       3000          0         10

2、建表后增加约束

(1) Not Null

Not null 约束只能用modify去修改。

04:19:22 SQL> alter table test modify ename not null;

Table altered.

(2)unique

04:27:41 SQL> alter table test

04:30:25   2   add constraint uni_ename unique(ename);

Table altered.

04:32:06 SQL> alter table test

04:32:07   2   add constraint uni_ename unique(ename)

04:32:10   3  using index (create index ind_name on test(ename));

add constraint uni_ename unique(ename)

*

ERROR at line 2:

ORA-02261: such unique or primary key already exists in the table

04:39:10 SQL> alter table t1

04:39:17   2   add constraint u_name unique(name)

04:39:20   3  using index (create index ind_name on t1(name));

Table altered.

(3)check

04:42:10 SQL> alter table t1

04:42:13   2   add constraint chk_loc check (loc in ('BeiJing','ShangHai'));

Table altered.

04:42:19 SQL> insert  into t1 values(40,'Microsoft' ,'TianJing');

insert into t1 values(40,'Microsoft' ,'TianJing')

*

ERROR at line 1:

ORA-02290: check constraint (SCOTT.CHK_LOC) violated

04:43:03 SQL> insert into t1 values(40,'Microsoft' ,'ShangHai');

1 row created.

04:43:18 SQL> select * from t1;

DEPTNO NAME                 LOC

---------- -------------------- --------------------

10 Cisco                BeiJing

20 C%ommd               ShangHai

查看本栏目更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/database/Oracle/

时间: 2024-11-02 23:40:17

Oracle管理约束(二)Oracle维护约束的相关文章

提升用户体验和交付应用程序 Oracle管理云获得多行业用户认可

2月23日,甲骨文宣布Oracle管理云(Oracle Management Cloud)业务实现大幅增长,在其上市后一年内即在全球赢得近950家新客户和合作伙伴,包括FORS.IDEA Cellular和Safexpress,它们均选择Oracle管理云来提高IT资源利用率,提升开发运维生产力,确保关键应用程序持续保持运行. Oracle管理云是Oracle云平台(Oracle Cloud Platform)的一部分,集成了一整套的新一代监测.管理和分析云服务,利用机器学习和大数据技术处理客户

Oracle 11g系列—6—Oracle中表的约束

完整性约束指的是数据库中数据的正确性和相容性.主要指下面的: primary key 主键 foreign key 外键 unique 唯一 not null 非空 check 检查约束 在Oracle中,使用constraint(英文的意思就是约束)关键字 为约束命名.如果用户没有命名,那么系统会自动会用户创建 的约束命名. OK,那我们接着就详细讲讲这些. 一.Not null 约束 从字面很好理解,就是非空约束,表 示某些列的值不可缺少的,在插入数据的时候,如果没有为它赋值,那么会提示错误

Oracle管理索引(二)Oracle管理索引基本概念

1.索引的概念 索引是用于加速数据存取的数据库对象.合理地使用索引可以大大降低I/O次数. 2.索引的功能:对记录进行排序,加快表的查询速度. 3.索引的分类: (1)单列索引和复合索引 单列索引是基于单个列所建立的索引:复合索引时基于两列或多列所建立的索引. SQL>CREATE    INDEX    emp_idx1   on  emp( ename, job); SQL>CREATE    INDEX    emp_idx2   on   emp (job  , ename); 可以在

oracle-初学ORACLE数据库,关于非空约束问题请教大家。

问题描述 初学ORACLE数据库,关于非空约束问题请教大家. 建表的时候有些字段设置了not null,但是插入记录时并没有哪一行插入记录,为什么会报错了?01400, 比如所有A/B/C三个字段,A设置类not null 但是我要插入记录时并不需要给A插入记录,只想给B/C插入记录.insert int table_name(b,c) values(value1,values2); 这样,报错了,无法将null插入A这个很不理解,请求大神,帮助一下. 解决方案 你已经把A设置为非空了,当插入这

Oracle 9i基于视图(view)的约束声名

从Oracle 9i开始,Oracle允许对于视图(view)进行主键.唯一键.外键约束的声名.NOT NULL约束可以从基表继承,所以不允许显示声明. 由于视图约束仅仅是声明而已,所以其状态只能是DISABLE NOVALIDATE. 以下是一个简单范例说明: 更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/database/Oracle/ 由于此约束仅仅为"约束声明",所以不具有实际约束力: 作者:51cto博客 Oracle

Oracle 集群】ORACLE DATABASE 11G RAC 知识图文详细教程之ORACLE集群概念和原理(二)

ORACLE集群概念和原理(二) Oracle集群概念和原理 Oracle的三种高可用集群方案 1 RAC(Real Application Clusters)                         多个Oracle服务器组成一个共享的Cache,而这些Oracle服务器共享一个基于网络的存储.这个系统可以容忍单机/或是多机失败.不过系统内部的多个节点需要高速网络互连,基本上也就是要全部东西放在在一个机房内,或者说一个数据中心内.如果机房出故障,比如网络不通,那就坏了.所以仅仅用RAC

Oracle 10g dataguard常用的维护命令总结

DataGuard可以提供Oracle数据库的冗灾.数据保护.故障恢复等,实现数据库快速切换与灾难性恢复.在生产数据库的保证"事务一致性"时,使用生产库的物理全备份创建备库,备库会通过生产库传输过来的归档日志或重做条目自动维护备用数据库. DataGuard数据同步技术有以下优势:  1) Oracle数据库自身内置的功能,与每个Oracle新版本的新特性都完全兼容,且不需要另外付费. 2) 配置管理较简单,不需要熟悉其他第三方的软件产品. 3) 物理Standby数据库支持任何类型的

Oracle数据安全面面观(二)

oracle|安全|数据 (二)来自内部的另外一个隐患--用户管理以及密码问题     在这里,其实作为一个差不多点的数据库管理员都很清楚,Oracle数据库本身就使用了很多种手段来加强数据库的安全性,经常见到的就有密码,角色,权限等等.那么我们就从最简单的DBSNMP说起:     Oralce数据库如果采用典型安装后,自动创建了一个叫做DBSNMP的用户,该用户负责运行Oracle系统的智能代理(Intelligent Agent),该用户的缺省密码也是"DBSNMP".如果忘记修

SAP管理软件通过Oracle SPARC SuperCluster认证

北京,2012年5月9日--甲骨文公司日前宣布SAP管理软件通过了Oracle SPARC SuperCluster T4-4的认证,Oracle SPARC SuperCluster T4-4是一个通用的集成系统,旨在提供最大的简化性.效率.可靠性和性能. 基于SAP NetWeaver技术平台6.4及以上版本并通过了Oracle数据库11g R2认证的SAP基础设施和管理软件,如SAP ERP管理软件和SAP NetWeaver业务仓库,现在可使用SPARC SuperCluster T4‑

博客链接—Oracle管理

001[PROFILE]使用Oracle的PROFILE对用户资源限制和密码限制的研究与探索  http://blog.itpub.net/29067253/viewspace-2006088/ 002 Oracle数据并发和一致性简介 http://blog.itpub.net/29067253/viewspace-1978420/ 003 Oracle逻辑空间管理 http://blog.itpub.net/29067253/viewspace-1978259/ 004 SM$TS_USED