`

使用约束

 
阅读更多
时间:2010-11-22 13:30来源: 作者: 点击:5次

一、约束先容

1.约束分类

   no null

    unique----列值不能频频,可为null,主动 成立索引

    primary key------列值不能频频,不可为null,主动 成立索引

   foreign key-------列值在主表中存在或为null

   check

2.约束状况

   enable validate(默认)-------新旧数据必需同时满意约束正直

   enable novalidate----------已存在数据可以不满意约束正直,但新数据必需满意(也许存在频频值)

   disable validate------------不允许推行 DML操纵(也许存在频频值)

   disable novalidate----------数据可以不满意约束正直(也许存在频频值)(也许存在频频值)

二、掩护约束

1.建表时界说约束

A:列级界说

   create table department(

   dept_id number(2) constraint pk_department primary key,

   name varchar2(14),loc varchar2(30));

B:表级界说

    create table employee(

   emp_id number(4),name varchar2(15),job varchar2(10),

    manager_id number(4),hire_date date,salary number(7,2),

   commission number(7,2),dept_id number(2),

   constraint pk_employee primary key(emp_id) using index tablespace user02,

   constarint fk_department foreign key(dept_id) references department(dept_id)

   );

2.建表后增进约束

A:增进not null 约束

   alter table department modify name not null

B:增进unique约束

   alter table department add constraint u_deptname unique(name);

   alter table department add constraint u_deptname unique(name) using index

   (create index ind_name on department(name))------指定索引成立语句

C:增进check约束

   alter table employee add constraint check_job check

   (job in('MANAGER','ANALYST','SALESMAN','CLERK'));

   alter table employee add constraint check_salary check

    (salary between 1000 and 5000);

3.批改约束名

   alter table department rename constraint pk_department to pk_department_deptno

4.删除约束

   alter table employee drop constraint check_job

   alter table department drop primary key cascade

三、拦阻 和激活约束

1.拦阻 约束

   alter table employee disable novalidate constraint check_job

2.激活约束

A:应用 enable novalidate选项激活约束

   alter table employee enable novalidate constraint check_job

B:应用 enable validate 选项激活约束

    alter table employee enable validate constraint check_job

3.批改约束数据

A:成立 exceptions表

   sql>@%oracle_home%\rdbms\admin\utlexcpt

B:激活约束

   alter table employee enable validate constraint check_job exceptions into exceptions;

C:断定不满意约束正直的行

select job,rowid from employee where rowid in(select row_id from exceptions)

D:批改数据

   update employee set job='CLERK' where rowid='AACP9AABAAAMPyAAA';

E:激活约束

   alter table employee enable validate constraint check_job

四、应用延期约束反省

1.应用立即 反省(默认选项,不指定deferrable)

2.应用延期约束反省

   对当前事宜起作用:set constraint s_emp_fk deferred;

   对当前会话起作用:alter session set constraint=deferred;

五、表现约束信息

1.表现约束信息

   select constraint_name,constraint_type,status,validated from dba_constraints

   where owner='SCOTT' and table_name='EMPLOYEE'

2.表现约束列

   select column_name from dba_cons_columns

   where owner='SCOTT' and constraint_name='CHECK_JOB';

分享到:
评论

相关推荐

    创建和使用约束 - MS SQL

    本文将深入探讨如何在MS SQL中创建和使用约束,以及它们在维护数据库结构和数据质量中的作用。 首先,我们要理解约束的基本概念。约束是数据库设计的一部分,它们定义了数据规则,限制了用户可以插入、更新或更改的...

    使用约束改进数据挖掘算法.doc

    ### 使用约束改进数据挖掘算法 #### 摘要与引言 本文档旨在探讨如何通过引入约束条件来改进数据挖掘算法。数据挖掘是一项从大量数据中提取有价值信息的技术过程,其核心目标是发现隐藏在数据中的模式、关联以及...

    约束编程(英语)

    目前,他正致力于研究在计算分子生物学中使用约束满足和其他算法技术。 Francesca Rossi是帕多瓦大学的计算机科学教授,她主要研究兴趣是约束问题。她在计算机科学领域的研究已经为约束编程领域带来了宝贵的贡献。 ...

    为何应使用 PCB 设计约束驱动您的设计流程

    总结来说,使用约束来驱动PCB设计流程不仅可以帮助工程师在早期发现问题并进行修复,还能确保设计在电气性能上达到预期目标。使用像PADS这样的专业工具可以更有效地管理这些约束,实现设计即正确的目标,从而提高...

    matlab.zip_约束最小二乘方滤波

    约束最小二乘方滤波要求噪声的方差和均值,这些参数可通过给定的退化图像计算出来,这是约束最小二乘方滤波的一个重要优点。

    XILINX时序约束使用指南中文

    例如,在XST中,可以使用约束文件(通常以.tcl结尾)来定义约束,而在Synplify中,则可能使用不同的语法和方法来达到同样的目的。 对于输入时序约束,分为系统同步输入和源同步输入两种。系统同步输入在系统同步...

    ANSYS经典_m17耦合和约束方程

    - **实现特殊的耦合关系**:当耦合功能不足以描述复杂的节点间关系时,可以使用约束方程来实现更高级的耦合效果。 ##### 3.2 创建约束方程 - **定义约束方程**:使用CE command或通过菜单Preprocessor>Coupling/...

    CAD高版本约束详解【完整】

    2. 装配设计:在进行装配体设计时,使用约束可以确保各个组件之间的正确关系和位置,减少装配误差。 3. 参数化设计:利用约束功能,设计师可以将参数化设计思想贯穿整个设计流程,大幅度提高设计的灵活性和可控性。...

    struts2,hibernate,spring约束

    通过合理地设置和使用约束,可以有效地避免因用户输入错误或程序异常导致的问题,提高系统的稳定性和安全性。 综上所述,Struts2、Hibernate和Spring中的约束机制是保障应用程序数据准确性和业务逻辑正确执行的关键...

    论文研究-基于多目标全局约束的任务分配和调度算法.pdf

    算法使用约束逻辑编程来对任务执行资源如处理单元、通信设备以及代码和数据存储量的使用进行多目标全局约束。算法假设ROM和RAM分别用于代码存储和数据存储,算法还考虑数据在数据存储器中的位置。实验结果表明,尽管...

    约束管理器-allegro高手进阶.pdf

    可以使用约束管理器和 SigXplorer Expert 开发电 路的拓扑并得出电子约束,可以包含定制约束、定制测量和定制激励。 本培训教材描述的主要是怎样在约束管理器中提取约束,并且约束如何与原理图和 PCB 的属性同步...

    SQL Server中约束与触发器差异比较.pdf

    在SQL Server中,数据完整性是确保数据库中存储信息准确无误的...在实际应用中,合理选择并结合使用约束和触发器,可以有效地保证SQL Server数据库的数据完整性,从而确保数据库系统能够准确地反映现实世界中的信息。

    oracle约束详解

    ### Oracle约束详解 在Oracle数据库管理系统中,约束是用于确保数据完整性和一致性的规则或条件。这些约束可以被定义在表级别的...正确地使用约束不仅可以帮助我们维护数据的一致性,还可以简化应用程序的开发工作。

    xilinx时序约束培训教材

    - 对于许多设计而言,即使不使用约束也能满足时序要求,但约束仍然是获取详细静态时序报告的有效方式,无论设计是否达到目标。 - 在更具挑战性的设计中,约束可以帮助软件识别关键路径并集中优化这些部分。 3. **...

    Android代码-使用Android体系结构组件的MVVM体系结构模式这是使用约束布局演示Youtube球员动画的示例应用程序

    Youtube UI/UX Animation This is a sample app demonstrating Youtube UX/UI animation using ConstraintLayout.It implements the Keyframe Animation feature in ConstrainLayout.This sample app is built...

    Swift5.2 (系统约束)NSLayoutConstraint.zip

    通过使用约束,开发者可以指定视图的属性(如宽度、高度、中心坐标或边缘与父视图或其他视图的关系),并让系统根据这些约束自动调整布局。这使得应用在不同屏幕尺寸和设备方向下都能保持良好的用户体验。 在Swift...

    刚体约束 求解1

    4.Constraints propagation 方法:Constraints propagation 方法是一种使用约束传播来实现约束的方法,广泛应用于刚体约束动力学中。 相关软件:IntelliJ IDEA 是一个广泛应用于软件开发的IDE,提供了许多功能强大且...

    故事板 位置约束

    - 使用约束优先级来平衡灵活性和性能。 - 在调试布局问题时,利用Xcode的“View Debugging”功能,可以查看控件的实际约束和布局状态。 总之,故事板中的位置约束是实现iOS应用自适应布局的关键技术。掌握这一...

    约束:在横向和纵向模式下使用约束的丰富经验

    本主题将深入探讨如何在横向和纵向模式下有效使用约束。 一、Auto Layout简介 Auto Layout是Apple的布局管理系统,它根据视图之间的关系自动调整界面元素的位置和大小。通过设置约束,我们可以定义视图相对于其父...

    javase部分约束

    合理地使用约束可以提高数据质量,简化数据管理和操作,是数据库设计中不可或缺的一部分。 总之,“javase部分约束”的核心在于理解并应用数据库中的各种约束,如`UNIQUE`、`PRIMARY KEY`、`FOREIGN KEY`等,以确保...

Global site tag (gtag.js) - Google Analytics