一、分頁查詢
使用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
