1、Oracle序列
语法:create sequence 序列名
 特点1:默认是无值,指针指向没有值的位置
 特点2:序列名.nextval 每次执行值会自增一次,步长为 1
 特点3:序列名.currval查看当前序列的值。[默认是没有,需要创建再执行先]
作用:作为主键使用,动态的获取主键的值,这样新增数据的时候的避免了主键冲突
  --使用的是 序列名.nextval作为主键
注意:主键是非空唯一,不需要主键的值是连续的值,不重复即可

 --创建默认序列
create sequence cc;--创建序列
select cc.nextval from dual;--递增的方式去创建序列
select cc.currval from dual;--查询当前序列
 --创建测试表
create table student(
tid number(10) primary key,
tname varchar(100) not null
)
--添加测试数据
--之前写法:【多复制多改动很多数据,费时间】
insert into student values(1,'迪丽热巴');
insert into student values(2,'柚子解说');
--使用序列添加
insert into student values(cc.nextval,'迪丽热巴');
insert into student values(cc.nextval,'柚子解说');
 --创建自定义序列
create sequence c1--创建序列
start with 5 --设置开始位置
increment by 2 --设置步长
select c1.nextval from dual
select c1.currval from dual
--删除序列:drop sequence 序列名
drop sequence cc;

2、Oracle索引
作用:提升查询效率,处理大量的数据才会发现索引的强大之处
--特点:显示的创建,隐式的执行
--注意:oracle会自动给表的主键创建索引。[一般是编号,学号等]
使用索引:【创建、删除】

 --创建语法
create index 索引名 on 表名(字段名)
--测试数据
create index index_student_tname on student(tname)--创建索引
select * from student where tname='柚子解说'
--删除索引
drop index index_student_tname

3、Oracle视图
使用视图:【创建、删除】
创建视图: create view 视图名 as select 对外提供的内容 from 真实表名 
删除视图: drop view 视图名 
视图特点:
 特点1:保护真实表,隐藏重要字段的数据。保护数据。
 特点2:在视图中的操作会映射执行到真实表中
 特点3:可以手动开启只读模式 使用关键字 with read only
注意:视图的创建用户必须具有DBA权限

 --测试视图
--创建视图并对外提供了sid,sname,ssex三个字段
create view stu as select sid,sname,ssex from student
select * from student--可查询所有的详细数据
select * from stu--只能查询到视图对外开放的字段

--视图的只读模式
create view stu2 as select sid,sname,ssex from student with read only

4、分页
当一个表中的数据量庞大时,如果数据一次性全部显示给用户,则造成页面过于庞大,体验感low。
使用:rownum 关键字 :--oracle对外提供的自动给查询结果编号的关键字,与数据没有关系。
注意:rownum 关键字只能做< <=的判断,不能进行> >=的判断

 --查询员工信息前5条数据[第一页]
select rownum,e.* from emp e where rownum<=5
select * from (select rownum r,e.* from emp e where rownum <=5) t where r>0;

 --查询员工信息的6-10条后所有数据[第二页]
select * from (select rownum r,e.* from emp e where rownum<=10) t where r>5

 --查询员工信息的11-15条数据[第三页]
select * from (select rownum r,e. * from emp e where rownum<=15) t where r>10;


分页的总结:每页显示n条数据,查询第m页数据 
select * from (select rownum r,e. * from 分页的表 e where rownum<=n*m) t where r>n*m-n;

例子:每页显示3条数据,查询第2页的数据
select * from (select rownum r,e. * from emp e where rownum<=3*2) t where r>3*2-3;
select * from (select rownum r,e. * from emp e where rownum<=6) t where r>3;


灵活应变:

 --只查询员工姓名,工资。【每页显示3条数据,查询第4页的数据】
select * from (select rownum r,e. * from emp e where rownum<=3*4) t where r>3*4-3;
select t.ename,t.sal from (select rownum r,e. * from emp e where rownum<=12) t where r>9;


 --分页查询员工信息按照工资排序
select * from (select rownum r,t.* from (select * from emp order by sal desc) t where rownum<=10 ) where r>5

Oracle【序列、索引、视图、分页】的更多相关文章

  1. oracle 序列、视图、索引

    序列 创建 在sequences里 作用 生成自动增长(或减少)的整数值 经常添加数据时使用,可控性好 写法:序列名.nextval  获取下一个序列值 序列名.currval  获取当前序列值,不常 ...

  2. oracle 序列 视图 索引 同义词

    序列 Oracle 12C 之后,Oracle 之中提供的是一种手工的自动增长列控制,而这样的控制在 Oracle 之中使用序列(对象)完成. 序列的创建: CREATE SEQUENCE 序列名称 ...

  3. oracle--序列&视图&索引&视图&可视化操作&分页&数据库备份

    --oracle学习内容--oracle的管理系统学习--oracle的数据管理学习--oracle的用户管理--oracle二维表管理--oracle的其他知识 --oracle的序列.视图.索引 ...

  4. 序列、视图、索引(面试看这个就GO了)

    oracle内置对象 序列.视图.索引 序列 create sequence aaa start with 1; 使用 视图 创建好之后 然后直接用 就OK了 有了视图可以代替子查询,使得sql简洁 ...

  5. Oracle数据库之视图与索引

    Oracle数据库之视图与索引 1. 视图简介 视图是基于一个表或多个表或视图的逻辑表,本身不包含数据,通过它可以对表里面的数据进行查询和修改. 视图基于的表称为基表,视图是存储在数据字典里的一条SE ...

  6. 序列&权限&索引&视图的语句

    create sequence 订单_订单编号_seq -- 创建序列 (成功后在sequence中查询) increment by start with maxvalue nocycle nocac ...

  7. Oracle序列 与 基本函数介绍

    目录 Oracle序列 与 基本函数介绍 常用词汇 数据字典(data dictionary:dd) oracle序列技术理解 账号管理 基本函数介绍及应用 海韵听心 PL/SQL Developer ...

  8. SQL Server索引视图以(物化视图)及索引视图与查询重写

    本位出处:http://www.cnblogs.com/wy123/p/6041122.html 经常听Oracle的同学说起来物化视图,物化视图的作用之一就是可以实现查询重写,听起来有一种高大上的感 ...

  9. Oracle索引梳理系列(七)- Oracle唯一索引、普通索引及约束的关系

    版权声明:本文发布于http://www.cnblogs.com/yumiko/,版权由Yumiko_sunny所有,欢迎转载.转载时,请在文章明显位置注明原文链接.若在未经作者同意的情况下,将本文内 ...

  10. Oracle之物化视图

    来源于:http://www.cnblogs.com/Ronger/archive/2012/03/28/2420962.html 近期根据项目业务需要对oracle的物化视图有所接触,在网上搜寻关于 ...

随机推荐

  1. MATLAB学习(六)绘图图形功能

    >> x=0:.1:2*pi;plot(x,sin(x),x,cos(x))                               >> plot(x,sin(x),'p ...

  2. Windows 桌面利用 Navicat等工具连接 虚拟机Mysql

    1.mysql>use mysql;2.mysql>update user set host = '%' where user ='root';3.mysql>select host ...

  3. mybatis 传递多个查询参数

    方法1:顺序传参法 public User selectUser(String name, int deptId); <select id="selectUser" resu ...

  4. 用maven建立一个工程

    建立java工程 mvn archetype:generate -DgroupId=cn.maxhou.demo -DartifactId=myapp -DarchetypeArtifactId=ma ...

  5. DAY 吐

    今天所学: 一,Linux的文件和目录管理 #1 cd( 变更用户所在目录)直接运行cd会进入root的/root下,后面跟目录名,会进入指定目录下( 后面只能是目录名,不能跟文件名). #2 pwd ...

  6. Spring+SpringMvc+Hibernate整合记录

    Spring+SpringMvc+Hibernate+Maven整合各大配置文件记录 1.Idea新建的Maven架构 2.Maven的对象模型的内容 <project xmlns=" ...

  7. 【转】redis数据库入门教程(全面详细)+面试问题

    [本教程目录] 1.redis是什么2.redis的作者何许人也3.谁在使用redis4.学会安装redis5.学会启动redis6.使用redis客户端7.redis数据结构 – 简介8.redis ...

  8. Oracle的查询-单行查询

    单行函数:作用于一行,返回一个值 多行函数:作用于多行,返回一个值 字符函数 --小写变大写 select upper('yes') from dual; --YES --大写变小写 select u ...

  9. MySQL优化心得

    一打开科技类论坛,最常看到的文章主题就是MySQL性能优化了,为什么要优化呢? 因为: 数据库出现瓶颈,系统的吞吐量出现访问速度慢 随着应用程序的运行,数据库的中的数据会越来越多,处理时间变长 数据读 ...

  10. shell 字符

    Shell 中的符号: 在shell中有很多符号代表了一些意思,重点说说 键盘上的符号在shell中的意义. 通配符: ~ 匹配家目录 ?  匹配单个字符.( ?之匹配单一的一个字符.x11 这种的就 ...