MySQL 分页查询和存储过程
一、分页查询
使用limit函数,limit关键字的用法:
LIMIT [offset,] rows;
offset指定要返回的第一行的偏移量,rows第二个指定返回行的最大数目。初始行的偏移量是0(不是1)。
例:分别取前40条数据和后40条数据
0-起始个数 40-查询个数
--第一页 (1-1)*40,40
select * from table_name limit 0,40
--第二页 (2-1)*40,40
select * from table_name limit 40,80 --此处后面的5代指个数
--第三页 (3-1)*40,40
二、存储过程
特点:1、适合需要长期保存在数据库中
2、需要被多个用户重复调用
3、业务逻辑相同,参数不同
4、大批量的数据的操作、插入、修改和删除
与函数的区别:
1、函数只能返回一个值,且必须设置返回值,在存储过程可以返回多个值。
2、最大的区别:函数要放入sql语句或者某个表达式进行调用,而存储过程可以独立执行且不能被sql语句调用,直接通过call或者declare直接执行。
1、无参
create procedure pd_selectAll3()
begin
select * from student;
end;
--调用
call pd_selectAll3();
2、带参数
create procedure pd_findByid(in sid int) --此处参数格式与Oracle不同
begin
select * from student where id=sid;
end;
--调用
call pd_findByid(2);
3、带输出
首先说一下,查看全局变量:
show variables; --查看全局变量
set对属性进行赋值操作:
set @name2='abc';
select @name2;
执行结果:abc
4、参数带输出
--带输出
create procedure pd_testout(out str varchar(20))
begin
select str11;
--set是赋值
set str11='今晚吃鸡’;
end;
--调用
call pd_testout(@vount2);
select @vout2;
执行结果:今晚吃鸡
5、参数既是输出也是输入
--既是输出也是输入 inout
create procedure pd_testinout(inout str12 varchar(20))
begin
select str12;
--set是赋值
set str12='666’;
end;
--调用
set @str=123; --输入
call pd_testinout(@str);
select @str; --输出
执行结果:123
MySQL 分页查询和存储过程的更多相关文章
- MySQL分页查询存储过程
-- 分页查询delimiter $create procedure p_List(in i_Name varchar(50),in i_CName varchar(20),in pageIndex ...
- (记录)mysql分页查询,参数化过程的坑
在最近的工作中,由于历史遗留,一个分页查询没有参数化,被查出来有sql注入危险,所以对这个查询进行了参数化修改. 一看不知道,看了吓一跳,可能由于种种原因,分页查询sql是在存储过程中拼接出来的,wh ...
- mysql 分页查询
mysql,; : mysql,; -last. //如果只给定一个参数,它表示返回最大的记录行数目: mysql; 个记录行 ,n. 动态传参的分页查询 SELECT * FROM table LI ...
- sql连表分页查询(存储过程)
1.平时分页查询都比较多针对一个表的数据 而这个分页查询是针对连表查询的 ,这也是我网上改版别人的sql语句 先在数据库新建一个存储过程 拷贝以下代码 CREATE PROCEDURE [dbo].[ ...
- mysql分页查询详解
我们做的后端项目一般都会有admin管理端,当管理端将要展示数据的时候,就需要用到分页.所以分页的考查在面试中也相当多.在mysql中进行分页查询时,一般会使用limit查询,而且通常查询中都会使用o ...
- Java GUI+mysql+分页查询
1.要求 : 创建一个学生信息管理数据库 2.实现分页查询 代码如下: a)学生实体类: /** * @author: Annie * @date:2016年6月23日 * @description: ...
- Mysql分页查询性能分析
[PS:原文手打,转载说明出处,博客园] 前言 看过一堆的百度,最终还是自己做了一次实验,本文基于Mysql5.7.17版本,Mysql引擎为InnoDB,编码为utf8,排序规则为utf8_gene ...
- MySql分页查询慢|这里告诉你答案
一.背景 我们在开发的过程中使用分页是不可避免的,通常情况下我们的做法是使用limit加偏移量:select * from table where column=xxx order by xxx li ...
- MySQL分页查询性能优化
当需要从数据库查询的表有上万条记录的时候,一次性查询所有结果会变得很慢,特别是随着数据量的增加特别明显,这时需要使用分页查询.对于数据库分页查询,也有很多种方法和优化的点.下面简单说一下我知道的一些方 ...
随机推荐
- P3455 [POI2007]ZAP-Queries(莫比乌斯反演)
思路 和YY的GCD类似但是更加简单了 类似的推一波公式即可 \[ F(n)=\sum_{n|d}f(d) \] \[ f(n)=\sum_{n|d}\mu(\frac{d}{n})F(d) \] \ ...
- 【C#】C#学习笔记_1
C#的程序入口为某一个类里面的static void Main(string[] args){}方法,如果一个工程有多个Main方法,那么需要在工程配置中选择一个作为程序入口. C#的输入.输出操作在 ...
- skype for business 无法共享桌面、无法传输图片
以管理员身份运行如下PowerShell命令,清除Skype for Business缓存记录 #以管理员身份运行如下PowerShell命令,清除Skype for Business缓存记录 Sto ...
- 2019年前端面试题 | CSS篇 (更新于4月15日)
虽说刷面试题有走捷径之嫌,但我发现,对于我这样没有工作经历的人来说,其实是拓展自己实战技能和加深知识理解的一个好机会. 分享出来,也希望大家不要背完了事,正经的去细细琢磨各种原由. 本篇是一个题目合集 ...
- SMTP发送邮件
SMTP是发送邮件的协议,Python内置对SMTP的支持,可以发送纯文本邮件.HTML邮件以及带附件的邮件. Python对SMTP支持有smtplib和email两个模块,email负责构造邮件, ...
- hdu 6071 Lazy Running 最短路建模
Lazy Running Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 524288/524288 K (Java/Others) P ...
- python 删除文件夹
只能删除空文件夹,删除非空文件夹会报错 >>> import os >>> os.rmdir("/tmp/ssh-GyoPWOFZ47") Tr ...
- mysql 中判断表是否存在 以及表存在则删除
select * from information_schema.tables where table_name ='student';select * from information_schema ...
- django序列化 serializers
Django的序列化工具让你可以将Django的模型‘翻译’成其它格式的数据.通常情况下,这种其它格式的数据是基于文本的,并且用于数据交换\传输过程. 一.序列化数据 Django为我们提供了一个强大 ...
- main方法介绍
main方法是程序的入口点,程序从这里开始,也是从这里结束. 执行过程:程序在执行编译的过程中先找main方法,然后执行main‘{’下的第一行代码,以此执行,如果遇到main方法中有调用其他的方法时 ...