Oracle【序列、索引、视图、分页】
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【序列、索引、视图、分页】的更多相关文章
- oracle 序列、视图、索引
序列 创建 在sequences里 作用 生成自动增长(或减少)的整数值 经常添加数据时使用,可控性好 写法:序列名.nextval 获取下一个序列值 序列名.currval 获取当前序列值,不常 ...
- oracle 序列 视图 索引 同义词
序列 Oracle 12C 之后,Oracle 之中提供的是一种手工的自动增长列控制,而这样的控制在 Oracle 之中使用序列(对象)完成. 序列的创建: CREATE SEQUENCE 序列名称 ...
- oracle--序列&视图&索引&视图&可视化操作&分页&数据库备份
--oracle学习内容--oracle的管理系统学习--oracle的数据管理学习--oracle的用户管理--oracle二维表管理--oracle的其他知识 --oracle的序列.视图.索引 ...
- 序列、视图、索引(面试看这个就GO了)
oracle内置对象 序列.视图.索引 序列 create sequence aaa start with 1; 使用 视图 创建好之后 然后直接用 就OK了 有了视图可以代替子查询,使得sql简洁 ...
- Oracle数据库之视图与索引
Oracle数据库之视图与索引 1. 视图简介 视图是基于一个表或多个表或视图的逻辑表,本身不包含数据,通过它可以对表里面的数据进行查询和修改. 视图基于的表称为基表,视图是存储在数据字典里的一条SE ...
- 序列&权限&索引&视图的语句
create sequence 订单_订单编号_seq -- 创建序列 (成功后在sequence中查询) increment by start with maxvalue nocycle nocac ...
- Oracle序列 与 基本函数介绍
目录 Oracle序列 与 基本函数介绍 常用词汇 数据字典(data dictionary:dd) oracle序列技术理解 账号管理 基本函数介绍及应用 海韵听心 PL/SQL Developer ...
- SQL Server索引视图以(物化视图)及索引视图与查询重写
本位出处:http://www.cnblogs.com/wy123/p/6041122.html 经常听Oracle的同学说起来物化视图,物化视图的作用之一就是可以实现查询重写,听起来有一种高大上的感 ...
- Oracle索引梳理系列(七)- Oracle唯一索引、普通索引及约束的关系
版权声明:本文发布于http://www.cnblogs.com/yumiko/,版权由Yumiko_sunny所有,欢迎转载.转载时,请在文章明显位置注明原文链接.若在未经作者同意的情况下,将本文内 ...
- Oracle之物化视图
来源于:http://www.cnblogs.com/Ronger/archive/2012/03/28/2420962.html 近期根据项目业务需要对oracle的物化视图有所接触,在网上搜寻关于 ...
随机推荐
- Spark任务踩到的坑
原因:文本编辑器导致多出来一个 “.”在首行
- 数学建模python matlab 编程(指派问题)
指派授课问题 现有A.B.C.D四门课程,需由甲.乙.丙.丁四人讲授,并且规定: 每人只讲且必须讲1门课:每门课必须且只需1人讲. 四人分别讲每门课的费用示于表中: 课 费用 人 A B C D 甲 ...
- R语言与概率统计(三) 多元统计分析(下)广义线性回归
广义线性回归 > life<-data.frame( + X1=c(2.5, 173, 119, 10, 502, 4, 14.4, 2, 40, 6.6, + 21.4, 2.8, 2. ...
- JAVA 基础编程练习题1 【程序 1 不死神兔】
1 [程序 1 不死神兔] 题目:古典问题:有一对兔子,从出生后第 3 个月起每个月都生一对兔子,小兔子长到第三个月后每个月 又生一对兔子,假如兔子都不死,问每个月的兔子对数为多少? 程序分析: 兔子 ...
- Metasploit-初篇
Metasploit metasploit 是一款开源的安全漏洞检测工具 渗透测试的操作系统 无需赘言,kali Linux发行版是目前最流行的安全操作系统;基于Debian的操作系统附带了600多个 ...
- 安装vsftpd
通用安装和配置 1.下载安装包并安装 wget http://mirror.centos.org/centos/7/os/x86_64/Packages/vsftpd-3.0.2-25.el7.x86 ...
- Linux .bin安装的文件制作
setup.sh #! /bin/sh lines=8 #shell 脚本行数+,在这个例子中,setup.sh一共7行,则lines=8 > tmp.tar.gz tar -xvf tmp.t ...
- 【Python】【demo实验6】【练习实例】【奖金发放计算(阶梯)】
题目: 企业发放的奖金根据利润提成.利润(I)低于或等于10万元时,奖金可提10%:利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%:20万到40万 ...
- centos git clone 报错 fatal: HTTP request failed 解决办法
git clone报错提示 git clone https://github.com/xxxx.git Initialized empty Git repository in /root/xxxx/. ...
- DOS bcp
C:\>bcp /?用法: bcp {dbtable | query} {in | out | queryout | format} 数据文件 [-m 最大错误数] [ ...