Oracle和MySql的分页查询区别和PL/SQL的基本概念
SELECT *
FROM (SELECT ROWNUM rn,empno,ename,job,mgr,hiredate,comm,deptno
FROM emp
WHERE ROWNUM<=3) temp
WHERE temp.rn>=1;
SELECT *
FROM (SELECT ROWNUM rn,empno,ename,job,mgr,hiredate,comm,deptno
FROM emp
WHERE ROWNUM<=6) temp
WHERE temp.rn>=4;
显示第三页,每页显示三条数据
SELECT *
FROM (SELECT ROWNUM rn,empno,ename,job,mgr,hiredate,comm,deptno
FROM emp
WHERE ROWNUM<=9) temp
WHERE temp.rn>=7;
通过以上三个例子我们可以总结出知道了当前页(cp)和每页显示的数据量(ls),就可以计算出要从数据库中第m条查询到第n条数据的公式:
m=(currentPage-1) * lineSize+1
n=currentPage * linesSize
SELECT* FROM emp LIMIT m,ls
SELECT * FROM emp LIMIT 0,3
SELECT * FROM emp LIMIT 3,3
SELECT * FROM emp LIMIT 6,3
m = (currentPage - 1) * lineSize
ls = lineSize
SELECT * FROM 数据表 LIMIT m,n
优化性能:
PL/SQL以整个语句块发送给服务器,这个过程在单次调用中完成,降低了网络拥挤。而如果不使PL/SQL,每条SQL语句都有单独的传输交互,在网络环境下占用大量的服务器时间,同时导致网络拥挤。
可重用性:
PL/SQL能运行在任何ORACLE环境中(不论它的操作系统和平台),在其他ORACLE能够运行的操作系统上无需修改代码。
模块化:
每个PL/SQL单元可以包含一个或多个程序块,程序中的每一块都实现一个逻辑操作,从而把不同的任务进行分割,由不同的块来实现,块之间可以是独立的或是嵌套的。
BEGIN --表示开始过程
NUULL; --过程代码
END; --过程结束
/
输出 ‘hello world’
--开启打印功能
SET SERVEROUTPUT ON;
BEGIN --表示开始过程
DBMS_OUTPUT.put_line('hello world'); --过程代码
END; --过程结束
/
定义变量
DECLARE
v_num NUMBER; --声明一个全局变量
BEGIN --表示过程开始
DBMS_OUTPUT.put_('变量的值是:'|| v_num); --过程代码
END; --过程结束
/
字符串的连接使用的不是‘+’而是‘||’
全局变量的声明放在DECLARE关键字之后
如果声明了变量但是没有赋值则默认是空
为变量赋值:
DECLARE
v_num NUMBER; --定义了变量
BEGIN --表示过程开始
v_num:=30; --为变量赋值
DBMS_OUTPUT.put_('变量的值是:'|| v_num); --过程代码
END; --过程结束
/
上面为变量赋值代码可以在DECLARE后面声明变量的时候给出默认值,如果在BEGIN 之后没有为变量赋新的值,则按照默认值输出。
下方是一个完整代码示例:
根据雇员的编号查询出雇员的名字,要求编号从键盘输入。
DECLARE
v_empno NUMBER; --保存雇员编号
v_ename VARCHAR2(100); --保存编号
BEGIN --表示开始过程
--在键盘输入雇员编号
DBMS_OUTPUT.put_line('请输入编号:');
v_empno:=&empno;
--开始查询
SELECT ename INTO v_ename
FROM emp
WHERE empno=v_empno;
DBMS_OUTPUT.put_line('编号是:'||v_empno || ' 名字是:'||v_ename); --过程代码
END; --过程结束
/
//*********************************************分割线***************************************************//
Oracle和MySql的分页查询区别和PL/SQL的基本概念的更多相关文章
- MySQL、SqlServer、Oracle三大主流数据库分页查询
在这里主要讲解一下MySQL.SQLServer2000(及SQLServer2005)和ORCALE三种数据库实现分页查询的方法.可能会有人说这些网上都有,但我的主要目的是把这些知识通过我实际的应用 ...
- oracle 的分页查询与mysql 的分页查询
oracle 的分页查询: select * from (select o.*,rownum rn from Persons o) where rn >40 and rn <=60 : ...
- MySQL、SqlServer、Oracle三大主流数据库分页查询 (MySQL分页不能用top,因为不支持)
一. MySQL 数据库 分页查询MySQL数据库实现分页比较简单,提供了 LIMIT函数.一般只需要直接写到sql语句后面就行了.LIMIT子 句可以用来限制由SELECT语句返回过来的数据数量,它 ...
- oracle sqlserver mysql数据库分页
1.Mysql的limit用法 在我们使用查询语句的时候,经常要返回前几条或者中间某几行数据,这个时候怎么办呢?不用担心,mysql已经为我们提供了这样一个功能. SELECT * FROM tabl ...
- oracle count 百万级 分页查询记要总数、总条数优化
oracle count 百万级 分页查询记录总数.总条数优化 oracle count 百万级 查询记录总数.总条数优化 最近做一个项目时,做分页时,发现分页查询速度很慢,分页我做的是两次查询,一次 ...
- Mysql中分页查询两个方法比较
mysql中分页查询有两种方式, 一种是使用COUNT(*)的方式,具体代码如下 1 2 3 SELECT COUNT(*) FROM foo WHERE b = 1; SELECT a FROM ...
- 【SQL】Oracle和Mysql的分页、重复数据查询(limit、rownum、rowid)
上周三面试题有两道涉及Oracle的分页查询,没有意外地凉了,现在总结一下. · Mysql mysql的分页可以直接使用关键字limit,句子写起来比较方便. 语法: ① limit m,n -- ...
- MySQL的分页查询及Oracle分页查询
MySQL: Select ... from ...where ...order by...limit start,pageNum 例:比如从 取 个数据 , String sql = )*pageR ...
- 说说mysql和oracle他门的分页查询,分别是怎么实现的?
MySQL: 1.MySQL数据库实现分页比较简单,提供了 LIMIT函数.一般只需要直接写到sql语句后面就行了. 2.LIMIT子 句可以用来限制由SELECT语句返回过来的数据数量,它有一个或两 ...
随机推荐
- Python之操作RabbitMQ
RabbitMQ是一个在AMQP基础上完整的,可复用的企业消息系统.他遵循Mozilla Public License开源协议. MQ全称为Message Queue, 消息队列(MQ)是一种应用程序 ...
- 让SNIPER-MXNet从标准的COCO格式数据集中直接使用file_name作为图片路径
告别项目中“依index生成路径”的方法,直接使用我们在生成.json标签时就已经写入的图片路径(这里我写入的是绝对路径 full path)来获取图片. 需要做的,用以下代码替换SNIPER/lib ...
- 前端HTML介绍,标签介绍,基础选择器,CSS引入方法
1. HTML 1.1 前端: 所有用户能看到的界面网页.pc端的应用exe.移动端应用app.微信小程序.手环的时间界面html5为基础的前端:网页.app.微信小程序 1.2 前端三剑客: 1.h ...
- ADRMS与office的整合(一)
因为微软之前针对客户的RMS加密服务是一种免费的测试服务,虽然用户很多但实质上还是一种“测试服务”. 后来微软把这个服务商业化了,需要继续使用的话需要打下这个补丁 https://support.mi ...
- 最新 光环新网java校招面经 (含整理过的面试题大全)
从6月到10月,经过4个月努力和坚持,自己有幸拿到了网易雷火.京东.去哪儿.优刻得等10家互联网公司的校招Offer,因为某些自身原因最终选择了优刻得.6.7月主要是做系统复习.项目复盘.LeetCo ...
- Python报错:TypeError: data type not understood
K-Means聚类算法 def randCent(dataSet, k): m, n = dataSet.shape # numpy中的shape函数的返回一个矩阵的规模,即是几行几列 centrod ...
- vue操作数组时遇到的坑
用vue操作数组时,一般就那几个方法,而且是可以渲染的,但是有时候列表是渲染不了的先说下操作数组的几个方法吧 1 push ( ) 这个方法是在数组的最后面添加元素 用法: 括号里写需要加入的元素 ...
- 洛谷 题解 P2502 【[HAOI2006]旅行】
由于此题边数比较小,所以可以先给边排个序,然后跑m遍最小生成树,每跑一次删除一条边,找最优解. 防TLE技巧 把边按从小到大的顺序排好,那么只要当前无法联通,那么后面也无法联通 最优解找法 doubl ...
- HTML5 & CSS初学者教程(详细、通俗易懂)
前端语言基础:HTML5 & CSS (一) HTML5:超文本标记语言 (1) 基本概念 是由一系列成对出现的元素标签(标记)嵌套组合而成 ( XML也是标签构成的 ) 这些标签以的形式出现 ...
- Linux安装zookeeper集群
一.单机部署: ①下载.解压 http://archive.apache.org/dist/zookeeper/ tar -zxf zookeeper-3.4.10.tar.gz -C /usr/lo ...