`
步青龙
  • 浏览: 298003 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
博客专栏
72ba33fb-eefe-3de1-bd65-82a6e579265d
Java面试
浏览量:0
社区版块
存档分类
最新评论

Oracle(七)约束,索引等

 
阅读更多

维护表的完整性

可以用约束,触发器,应用程序(过程,函数)三种方法实现

而约束作为首选

约束包括not null,nuique,primary key ,foreign key ,check

注意一个表只有一个主键,主键可以有多个列,不可为空。

age number(3) check (age > 0),

name varchar2(20) not null,

mother varchar2(20) nuique,

sex char(2) default '男'  check(sex in('男','女')),

categoryId number reference categroy(categoryid), 

unms check(sums between 1 and 66)

忘记了约束,可以建表后使用alter table ,但是not null约束需要用

modify选项,其他四种可以使用add 选项

alter table xxx modify name not null;

alter table xxx add constraint  useridnuique unique(userid)

// userid 增加不重复约束

 

删除约束 alter table 表名 drop constraint 约束名

 

强制删除,主从关系删除  alter table 表名 dropprmary key cascade;

 

显示约束信息

select  constraint_name ,constraint_type,status,validated form 

 user_constraints where table_name  = '表名';

显示约束列

select column_name,position from user_cons_consmns

where constaint_name = '表名' ;

 

表级定义 列级定义

表定义,定义了之后,在定约束

 

create table a (id number constraint a_pk primary key,name varchar2(20))

create table b (id number,name varchar2(20),

constraint a_pk primary key(id))

 

建立索引为什么加了索引,i/o 性能会提高很多。索引不是随意建的,创建的不好反而相反影响性能。

 

 

创建索引

单列索引

create index nameindex on 表(name)

联合索引(复合索引)

create index nameindex on 表(字段1,字段2)  

-- 注意顺序,一下帅选很多的字段放到后面,因为sql语句的扫描是从后往前扫描的 

 

 

使用原则

1 大表上建

2 where 子句经常用到

3 索引的层次不要超过4层

 

索引的缺点:

先天不足:

1:创建索引,系统要占用大约为表的1.2倍的硬盘盒内存空间来

保存空间。

2 更新数据的时候,系统要占额外的时间来同时对索引更新。

 

什么时候不适合用索引

1 很少或者从不引用的字段

2 男或女

 

管理索引

按照数据存储方式,可以分为

B* 树,反向索引,位图索引

 

按照索引的个数分类,可以分为单列索引,复合索引;

按照索引列值的唯一性,可以分为唯一索引和非唯一索引;

此外还有函数索引,全局索引,分区索引。

 

在不同的情况我们会再不同的列上建立索引,可能是不同种类的索引

,如B*树索引建立在重复值很少的列上,而位图索引则建立在重复值很多,不同值相对固定的列上。

 

显示表的所有索引,通过dba_indexs,和user_indexs,可以显示索引信息

 

select index_name,index_type from user_indexs where table_name = '表名';

 通过查询数据字典视图user_ind_columns 可以显示索引对应的列的信息

 

select table_name ,column_name from user_ind_columns where 

index_name = 'IND_ENAME'

 

 

 

 

 

分享到:
评论

相关推荐

    oracle约束和索引笔记

    Oracle约束和索引是数据库设计和优化的核心概念。通过正确地应用约束,可以确保数据的准确性和一致性;而合理地创建和管理索引,则能够显著提升查询速度,提高整体系统性能。作为数据库管理员或开发者,理解和熟练...

    oracle在线创建索引和重组索引

    创建完成后,需要马上检查系统应用,如果发现有错误走到该索引的语句,并且有严重影响的,可能需要立即删除该索引或者约束。 二、重组索引 重组索引可以减少索引的碎片化和空间浪费。如果索引因为更新太频繁或者是...

    oracle创建表创建唯一索引

    总的来说,创建和管理表、索引以及约束是Oracle数据库管理的基础,它们对保持数据的一致性和优化查询性能起着重要作用。理解和掌握这些技能,对于任何在IT行业中涉及数据库工作的专业人士来说都是必不可少的。

    oracle中索引的使用

    Oracle支持多种类型的索引,包括B树索引、位图索引、函数索引和唯一索引等。B树索引是最常见的索引类型,适用于大部分场景,其结构使得查找、插入和删除操作的时间复杂度较低。位图索引则适合于值分布稀疏的列,例如...

    09 oracle的索引 PPT

    - 支持唯一性约束:Unique索引确保数据的唯一性。 2. 缺点: - 空间占用:索引需要额外的存储空间。 - 插入/更新/删除性能:索引需要维护,这可能会降低DML操作的速度。 - 维护成本:数据库管理员需要定期监控...

    分区索引,本地索引,全局索引的区别

    在Oracle数据库中,分区索引是针对分区表的一种特殊索引类型,它可以显著提高对于大规模数据集的查询性能。根据索引是否与表的分区策略相匹配,分区索引可以分为两大类:本地索引(Local Index)和全局索引(Global ...

    Oracle 索引

    Oracle提供了多种类型的索引,包括B树索引、位图索引、函数索引、唯一索引和复合索引等,每种都有其独特的应用场景和优缺点。 1. **B树索引**:这是最常见的索引类型,适用于频繁的查询操作。B树索引通过排序的数据...

    ORACLE的索引和约束详解.pdf

    Oracle支持多种类型的索引,包括B树索引、位图索引、函数索引等。 **主键约束(Primary Key Constraints)** 主键约束用于标识表中的唯一记录,不允许为空且不能有重复值。创建单个字段的主键约束可以像这样: ```...

    oralce第12讲-23讲wmv版 java操作oracle、oracle的事务、函数、数据库管理约束索引权限角色

    在本课程中,我们主要探讨了Oracle数据库与Java编程相结合的应用,以及Oracle数据库的一些核心概念和技术,包括事务处理、函数、数据库管理、约束、索引、权限和角色。以下是详细的知识点总结: 1. **Java操作...

    如何在oracle中查询所有用户表的表名、主键名称、索引、外键等

    根据提供的标题、描述以及部分代码内容,我们可以了解到这篇文章主要探讨的是如何在Oracle数据库中查询所有用户表的相关信息,包括表名、主键名称、索引、外键等元数据信息。接下来,我们将对这些知识点进行详细的...

    oracle约束详解

    ### Oracle约束详解 在Oracle数据库管理系统中,约束是用于确保数据完整性和一致性的规则或条件。这些约束可以被定义在表级别的字段上,用来限制存储在表中的数据类型。通过实施约束,我们可以确保数据的质量,并...

    Oracle数据库基于索引SQL优化方法的研究与实现

    2. **索引的类型**:Oracle提供了多种类型的索引,包括B树索引、位图索引、函数依赖索引等。每种索引都有其特定的应用场景和优缺点。 3. **索引的作用**: - **提高查询速度**:通过索引,Oracle可以直接定位到...

    Oracle优化全攻略二【Oracle 如何使用索引】.docx

    Oracle数据库的索引是提升查询效率的关键工具...总之,理解并正确使用Oracle的索引模式,结合适当的索引设计和约束,可以显著提升查询性能。在数据库优化过程中,应定期评估和调整索引策略,以适应数据变化和查询需求。

    oracle创建表,索引,表空间,触发器,schema用户,序列的Sql文

    Oracle支持B树索引、位图索引等多种类型。例如,为EmployeeID创建索引: ```sql CREATE INDEX idx_employee_id ON Employees(EmployeeID); ``` 这条语句创建了一个名为idx_employee_id的索引,基于Employees表的...

    SQL Server和Oracle中索引介绍

    Oracle数据库的索引机制与此类似,但有其特有的特性,如B树索引、位图索引等。Oracle也支持唯一索引和非唯一索引,以及索引组织表(Index-Organized Table, IOT),这是一种特殊的聚集索引形式。在设计索引时,需要...

    数据库,索引,主键,约束,sql

    在数据库中,索引、主键和约束是至关重要的概念,而SQL(Structured Query Language)则是与数据库交互的语言。 首先,索引是提高数据库查询速度的关键工具。它们类似于书籍的目录,使得数据库能够快速定位到特定的...

Global site tag (gtag.js) - Google Analytics