在phpmyadmin中创建存储过程并在php中调用
来源:互联网 发布:透明桌面日历软件 编辑:程序博客网 时间:2024/06/13 18:40
CREATE PROCEDURE p()
CREATE PROCEDURE productpricing()
#
#
调用存储过程的方法是:
# CALL加上过程名以及一个括号
# 例如调用上面定义的存储过程
CALL productpricing();
# 哪怕是不用传递参数,存储过程名字后面的括号“()”也是必须的
删除存储过程的方法是:
DROP PROCUDURE productpricing;
创建带参数的存储过程:
CREATE PROCUDURE productpricing(
OUT p1 DECIMAL(8,2),
OUT ph DECIMAL(8,2),
OUT pa DECIMAL(8,2)
)
BEGIN
SELECT Min(prod_price) INTO pl FROM products;
SELECT Max(prod_price) INTO ph FROM products;
SELECT Avg(prod_price) INTO pa FROM products;
END;
# DECIMAL用于指定参数的数据类型
# OUT用于表明此值是用于从存储过程里输出的
# MySQL支持 OUT, IN, INOUT
调用带参数的存储过程:
CALL productpricing(@pricelow,
# 所有的参数必须以@开头
# 要想获取@priceaverage的值,用以下语句
SELECT @priceaverage;
# 获取三个的值,用以下语句
SELECT @pricehigh, @pricelow, @priceaverage;
另一个带IN和OUT参数的存储过程:
CREATE PROCEDURE ordertotal(
)
BEGIN
END;
CALL ordertotal(20005, @total);
SELECT @total;
注意:在phpmyadmin中创建时,那个delimite要改成//
存储过程返回数据集:
CREATE PROCEDURE simpleproc (IN myId INT)BEGIN CREATE TEMPORARY TABLE tmpMyTbl LIKE t2; insert into tmpMyTbl select * from t2 where id<myId; END; mysql> call simpleproc(10); Query OK, 9 rows affected (0.13 sec) mysql> select * from tmpMyTbl;
在php中调用存储过程:
$host="localhost";
$user="root";
$password="";
$db="xydc";
$dblink=mysql_connect($host,$user,$password)
or die("can't connect to mysql");
mysql_select_db($db,$dblink)
or die("can't select samp_db");
$res=mysql_query("call pp(@total)",$dblink);
$res=mysql_query("select @total as total",$dblink);
$row=mysql_fetch_row($res);
echo $row['total']."<br />";
print_r($row);
区块,条件,循环
begin
……
end;
也可以给区块起别名,如:
lable:begin
………..
end lable;
可以用leave lable;跳出区块,执行区块以后的代码
2.条件语句
statement
else
statement
end
3.循环语句
(1).while循环
statements
statements
statements
UNTIL
五.其他常用命令
显示数据库中所有存储的存储过程基本信息,包括所属数据库,存储过程名称,创建时间等
2.show create procedure sp_name
显示某一个存储过程的详细信息
mysql存储过程中要用到的运算符
mysql存储过程学习总结-操作符
算术运算符
+
-
*
/
DIV
%
比较运算符
<
<=
>=
BETWEEN
NOT BETWEEN
IN
NOT IN
=
<>, !=
<=>
LIKE
REGEXP
IS NULL
IS NOT NULL
逻辑运算符
与(AND)
AND
TRUE
FALSE
NULL
TRUE
TRUE
FALSE
NULL
FALSE
FALSE
FALSE
NULL
NULL
NULL
NULL
NULL
或(OR)
OR
TRUE
FALSE
NULL
TRUE
TRUE
TRUE
TRUE
FALSE
TRUE
FALSE
NULL
NULL
TRUE
NULL
NULL
异或(XOR)
XOR
TRUE
FALSE
NULL
TRUE
FALSE
TRUE
NULL
FALSE
TRUE
FALSE
NULL
NULL
NULL
NULL
NULL
位运算符
|
&
<<
>>
~
mysq存储过程中常用的函数,字符串类型操作,数学类,日期时间类。
mysql存储过程基本函数
一.字符串类
CONCAT (string2
INSTR (string ,substring ) //返回substring首次在string中出现的位置,不存在返回0
LCASE (string2 ) //转换成小写
LEFT (string2 ,length ) //从string2中的左边起取length个字符
LENGTH (string ) //string长度
LOAD_FILE (file_name ) //从文件读取内容
LOCATE (substring , string
LPAD (string2 ,length ,pad ) //重复用pad加在string开头,直到字串长度为length
LTRIM (string2 ) //去除前端空格
REPEAT (string2 ,count ) //重复count次
REPLACE (str ,search_str ,replace_str ) //在str中用replace_str替换search_str
RPAD (string2 ,length ,pad) //在str后用pad补充,直到长度为length
RTRIM (string2 ) //去除后端空格
STRCMP (string1 ,string2 ) //逐字符比较两字串大小,
SUBSTRING (str , position
注:mysql中处理字符串时,默认第一个字符下标为1,即参数position必须大于等于1
+———————–+
| substring(‘abcd’,0,2) |
+———————–+
|
+———————–+
1 row in set (0.00 sec)
+———————–+
| substring(‘abcd’,1,2) |
+———————–+
| ab
+———————–+
1 row in set (0.02 sec)
TRIM([[BOTH|LEADING|TRAILING] [padding] FROM]string2) //去除指定位置的指定字符
UCASE (string2 ) //转换成大写
RIGHT(string2,length) //取string2最后length个字符
SPACE(count) //生成count个空格
二.数学类
BIN (decimal_number ) //十进制转二进制
CEILING (number2 ) //向上取整
CONV(number2,from_base,to_base) //进制转换
FLOOR (number2 ) //向下取整
FORMAT (number,decimal_places ) //保留小数位数
HEX (DecimalNumber ) //转十六进制
注:HEX()中可传入字符串,则返回其ASC-11码,如HEX(‘DEF’)返回4142143
也可以传入十进制整数,返回其十六进制编码,如HEX(25)返回19
LEAST (number , number2
MOD (numerator ,denominator ) //求余
POWER (number ,power ) //求指数
RAND([seed]) //随机数
ROUND (number
(1)默认变为整形值
mysql> select round(1.23);
+————-+
| round(1.23) |
+————-+
|
+————-+
1 row in set (0.00 sec)
mysql> select round(1.56);
+————-+
| round(1.56) |
+————-+
|
+————-+
1 row in set (0.00 sec)
(2)可以设定小数位数,返回浮点型数据
mysql> select round(1.567,2);
+—————-+
| round(1.567,2) |
+—————-+
|
+—————-+
1 row in set (0.00 sec)
SIGN (number2 ) //返回符号,正负或0
SQRT(number2) //开平方
三.日期时间类
CONVERT_TZ (datetime2 ,fromTZ ,toTZ ) //转换时区
CURRENT_DATE (
CURRENT_TIME (
CURRENT_TIMESTAMP (
DATE (datetime ) //返回datetime的日期部分
DATE_ADD (date2 , INTERVAL d_value d_type ) //在date2中加上日期或时间
DATE_FORMAT (datetime ,FormatCodes ) //使用formatcodes格式显示datetime
DATE_SUB (date2 , INTERVAL d_value d_type ) //在date2上减去一个时间
DATEDIFF (date1 ,date2 ) //两个日期差
DAY (date ) //返回日期的天
DAYNAME (date ) //英文星期
DAYOFWEEK (date ) //星期(1-7) ,1为星期天
DAYOFYEAR (date ) //一年中的第几天
EXTRACT (interval_name
MAKEDATE (year ,day ) //给出年及年中的第几天,生成日期串
MAKETIME (hour ,minute ,second ) //生成时间串
MONTHNAME (date ) //英文月份名
NOW (
SEC_TO_TIME (seconds ) //秒数转成时间
STR_TO_DATE (string ,format ) //字串转成时间,以format格式显示
TIMEDIFF (datetime1 ,datetime2 ) //两个时间差
TIME_TO_SEC (time ) //时间转秒数]
WEEK (date_time [,start_of_week ]) //第几周
YEAR (datetime ) //年份
DAYOFMONTH(datetime) //月的第几天
HOUR(datetime) //小时
LAST_DAY(date) //date的月的最后日期
MICROSECOND(datetime) //微秒
MONTH(datetime) //月
MINUTE(datetime) //分
- 在phpmyadmin中创建存储过程并在php中调用
- mysql创建存储过程并在php中调用
- 在phpMyAdmin中创建存储过程应该注意的问题
- MySQL存储过程,并在.net中调用
- 如何创建oracle存储过程及在jsp中调用
- 结合oracle中的存储过程,在Java中调用并测试该存储过程
- SQLServer 中存储过程返回的三种方式( 包括存储过程的创建, 在存储过程中调用, 在VS中调用的方法)
- 在.NET中调用存储过程
- 在ASP中调用存储过程
- 在.NET中调用存储过程
- 在ASP中调用存储过程
- 在ACCESS 中调用后台存储过程
- 在 ibatis 中 调用 存储过程
- 在.NET中调用存储过程
- 在.NET中调用存储过程
- 在ASP.NET中调用存储过程
- 在Java中怎么调用存储过程
- 在.NET中调用存储过程
- 数据科学的完整学习路径—Python版(转载)
- java HelloWorld
- Unity3D学习(3)——物体的运动&简易太阳系
- python类访问限制
- SVN权限
- 在phpmyadmin中创建存储过程并在php中调用
- 创建Git版本库
- CRectTracker类的使用
- 配置环境心得
- android学习(二十) 执行网络操作(一) 连接到网络
- 缓存区
- Ubuntu 16.04lts 安装NVIDIA 私有驱动、cuda、cudnn、tensorflow-gpu等问题
- Python常用方法记录——replace()、split()
- 折线分割平面