1、Oracle中使用rownum来进行分页,这个是效率最好的分页方法
select * from ( select rownum rn,a from tabName where rownum<=20) where r>10
2、Oracle的索引使用
创建索引:
create index index_name on table_name(collum_name)
索引使用规则:
1、经常和其他表进行连接的表,在连接字段上应该建立索引。
2、经常出现在where子句中的字段而且过滤性很强的,特别是大表的字段,应该建立索引
索引的优点:
1、建立唯一性索引,可以保证数据库表中的每一行数据的唯一性
2、大大加快数据的检索速度,加速了表和表之间的连接,特别是实现数据的参照完整性。
3、在使用分组和排序子句进行数据检索时,同样可以显著减少查询中分组和排序的时间
索引的缺点:
1、索引创建在表上,不能创建在索引上
2、创建索引和维护索引耗费时间,时间随着数据量的增加而增加
3、索引需要占用物理空间,除了数据表占用数据空间之外,每一个索引还要占用一定的物理空间,如果要建立聚集索引,那么消耗的空间更大,一个表只能有一个聚集索引。
4、当对表中的数据进行增加,删除,修改的时候,索引也需要动态的维护,降低了数据的维护速度。
3、视图的使用
创建视图:
create view view_name as select column_name from table_name
视图的优点:
1、可以简单的将视图理解为SQL查询语句,视图最大的好处就是不占用系统空间
2、一些安全性很高的系统,不会公布系统的表结构,可能会使用视图将一些敏感信息过滤或者重命名后公布结构
3、简化查询,可以控制权限,在使用的时候需要将视图的使用权限grant给用户。
4、合并查询
有时候,为了合并多个select语句的结果,可以使用集合操作符号UNION,UNION ALL,INTERSECT,MINUS多用于数据量比较大的数据库,运行速度快。
1、union:取得两个结果集的并集,使用它时,会自动去掉结果集中重复行
2、union all:也是取得两个结果集的并集,但是不会取消重复行,也不会排序。
3、intersect:取得两个结果集的交集
4、minus:取得两个结果集的差集。
5、维护数据的完整性
数据的完整性用于确保数据库数据遵从一定的商业规则和逻辑规则。
Oracle中,数据完整性可以使用约束,触发器,应用程序(存储过程,函数)来实现。这三个因为约束更容易维护,并且具有最好的性能,所以作为维护数据完整性的首选。
不过约束还可以用:not null,unique,primary key,foreign key,check