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的物化视图有所接触,在网上搜寻关于 ...
随机推荐
- SQL server中获取语句执行时间
在写代码的时候,有时候实现一个功能会有好多个方法,有时候会做一下方法的耗时对比,综合下时间复杂度与空间复杂度,写出最好的代码: 同样,在写一些SQL查询,SQL代码的时候,也希望能写出一个高效一点的查 ...
- 前端学习(一) html介绍和head标签
HTML 一. HTML 介绍 1. HTML概述:html全称Hyper Text Mackeup Language, 翻译为超文本标记语言, 它不是一种编程语言, 是一种描述性的标记语言, 用于描 ...
- python基础知识(集合)
集合 可变集合set()/不可变集合frozenset() {} 大写的拉丁字母 用于保存不重复元素.无序不能通过索引来获取 集合的创建 空集合 使用set()函数 变量名 = set() 集合的添 ...
- strcpy函数内存分析
void strcpy(char* strDest, char* strSrc) { while((*strDest++ = *strSrc++) != '\0'); } 看上面这段代码,只有一条语句 ...
- Linux 脚本
1.理解Linux Shell和基本Shell脚本语言的小贴士(一) http://blog.jobbole.com/63952/ ------伯乐在线
- python中的FQA (python 学习篇 1)
Q:1. " if __name__=='__main__' " 这句是什么意思,可以不加吗? A: 如果单独运行该文件,则该模块的内容会被执行: 若运行的文件引用该 ...
- POJ1041 John's trip 【字典序输出欧拉回路】
题目链接:http://poj.org/problem?id=1041 题目大意:给出一个连通图,判断是否存在欧拉回路,若存在输出一条字典序最小的路径. 我的想法: 1.一开始我是用结构体记录边的起点 ...
- RFID/13.56MHZ/NFC线圈防干扰原理-附磁导材料防干扰原理 20191128
RFID/13.56MHZ/NFC之间采用电磁感应方式进行通信. 1.铁氧体.硅钢片等导磁材料的相对磁导率比较高,多年前在变压器中已经有广泛的应用.有防止磁通饱和,提高变压器感应效率的作用. 2.RF ...
- [官网] 一个很好的 search rpm 或者是deb 包的网站
https://pkgs.org Home About About pkgs.org - Packages Search The pkgs.org is created to provide you ...
- 【LOJ】#3087. 「GXOI / GZOI2019」旅行者
LOJ#3087. 「GXOI / GZOI2019」旅行者 正着求一遍dij,反着求一遍,然后枚举每条边,从u到v,如果到u最近的点和v能到的最近的点不同,那么可以更新答案 没了 #include ...