MySQL 分頁查詢和存儲過程


一、分頁查詢

使用limit函數,limit關鍵字的用法:

LIMIT [offset,] rows;

offset指定要返回的第一行的偏移量,rows第二個指定返回行的最大數目。初始行的偏移量是0(不是1)。

例:分別取前40條數據和后40條數據

1                                  0-起始個數  40-查詢個數
2                       --第一頁     (1-1)*40,40
3 select * from table_name limit 0,40 
4                       --第二頁     (2-1)*40,40
5 select * from table_name limit 40,80  --此處后面的5代指個數
6                       --第三頁     (3-1)*40,40

二、存儲過程

特點:1、適合需要長期保存在數據庫中

   2、需要被多個用戶重復調用

           3、業務邏輯相同,參數不同

           4、大批量的數據的操作、插入、修改和刪除

與函數的區別:

      1、函數只能返回一個值,且必須設置返回值,在存儲過程可以返回多個值。

           2、最大的區別:函數要放入sql語句或者某個表達式進行調用,而存儲過程可以獨立執行且不能被sql語句調用,直接通過call或者declare直接執行。

1、無參

1 create procedure pd_selectAll3()
2     begin
3         select * from student;
4     end;
5 --調用
6 call pd_selectAll3();

2、帶參數

1 create procedure pd_findByid(in sid int)  --此處參數格式與Oracle不同
2     begin
3         select * from student where id=sid;
4     end;
5 --調用
6 call pd_findByid(2);

3、帶輸出

首先說一下,查看全局變量:

1 show variables;  --查看全局變量

set對屬性進行賦值操作:

1 set @name2='abc';
2 select @name2;

執行結果:abc

4、參數帶輸出

 1 --帶輸出
 2 create procedure pd_testout(out str varchar(20))
 3     begin
 4         select str11;
 5         --set是賦值
 6         set str11='今晚吃雞’;  7     end;
 8 --調用
 9 call pd_testout(@vount2);
10 select @vout2;  

執行結果:今晚吃雞

5、參數既是輸出也是輸入

 1 --既是輸出也是輸入 inout
 2 create procedure pd_testinout(inout str12 varchar(20))
 3     begin
 4         select str12;
 5         --set是賦值
 6         set str12='666’;  7  end;  8 --調用
 9 set @str=123;     --輸入 10 call pd_testinout(@str);
11 select @str;        --輸出

執行結果:123


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM