存储过程,自总结.doc_第1页
存储过程,自总结.doc_第2页
存储过程,自总结.doc_第3页
存储过程,自总结.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

存储过程 create procedure pro1 (OUT s int) BEGIN SELECT count(*) INTO s FROM table1 END1. 特点:l 用户能够重用代码和更改控制:控制,数据库结构,安全权限 l 能够获得快速的性能:可以处理复杂的条件语句和sqll 更容易的安全管理特性:10表不同的权限许可分配-分配该存储过程1次l 减少了网络通信流量:针对同一数据库对象的多次查询,或sql较多情况下,php每执行一次sql就要编译一次。l 安全:通过存储过程可以使没有权限的用户在控制之下间接地存取数据库,从而保证数据的安全;可设置存储过程的使用权限,避免sql注入破坏程序l 结合事物l 易于维护,集中控制:企业规则变更-变更存储过程,无需变更代码2. 存储过程的参数类型(IN , OUT , INOUT)IN输入参数:用于输入参数OUT输出参数:用于返回参数return $aINOUT输入输出参数:用于向存储过程传递参数值,如果该值改变则返回MySQL 存储过程 inout 参数跟 out 类似,都可以从存储过程内部传值给调用者。不同的是:调用者还可以通过 inout 参数传递值给存储过程。3. 声明变量,赋值DECLARE 变量名 数据类型(int) DEFAULT局部变量,这个变量可用于该语句块的子块中。SET a=1,b=2,c=3SELECT . INTO变量名不能与列名相同,如果相同,mysql会将其解释为变量而非列名4. 查询存储过程:select name from c where db=数据库名查看详细:show create procedure;查看基本信息:show procedure status;5. begin_label-end_label复合语句可以被标记,必须成对出现(也许用于区分语句块)6. 控制语句:IFEND IFCASE WHENTHENWHENTHENELSEEND CASElabel: REPEATstatement_listUNTIL search_conditionEND REPEAT label循环至search_condition为真!label: LOOP.LEAVE labelEND LOOP labelITERATE 再次循环,用于LOOP, REPEAT, 和WHILE7. 事务:start transaction-commit-rollback8. 扩展:DECLARE条件、处理程序:DECLARE条件将一个名字与一个错误条件相关联,这个名字可以再随后的DECLARE HANDLER处理语句中使用。(用于对于特殊错误的相应处理)游标(光标):便于某些应用程序逐行或分段处理符合sql中条件的结果集9. 字符串类CHARSET(str) /返回字串字符集CONCAT (string2 ,. ) /连接字串INSTR (string ,substring ) /返回substring首次在string中出现的位置,不存在返回0LCASE (string2 ) /转换成小写LEFT (string2 ,length ) /从string2中的左边起取length个字符LENGTH (string ) /string长度LOAD_FILE (file_name ) /从文件读取内容LOCATE (substring , string ,start_position ) 同INSTR,但可指定开始位置LPAD (string2 ,length ,pad ) /重复用pad加在string开头,直到字串长度为lengthLTRIM (string2 ) /去除前端空格REPEAT (string2 ,count ) /重复count次REPLACE (str ,search_str ,replace_str ) /在str中用replace_str替换search_strRPAD (string2 ,length ,pad) /在str后用pad补充,直到长度为lengthRTRIM (string2 ) /去除后端空格STRCMP (string1 ,string2 ) /逐字符比较两字串大小,SUBSTRING (str , position ,length ) /从str的position开始,取length个字符,注:mysql中处理字符串时,默认第一个字符下标为1,即参数position必须大于等于1TRIM(BOTH|LEADING|TRAILING padding FROMstring2) /去除指定位置的指定字符UCASE (string2 ) /转换成大写RIGHT(string2,length) /取string2最后length个字符SPACE(count) /生成count个空格10. 数学类ABS (number2 ) /绝对值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)返回19LEAST (number , number2 ,.) /求最小值MOD (numerator ,denominator ) /求余POWER (number ,power ) /求指数RAND(seed) /随机数ROUND (number ,decimals ) /四舍五入,decimals为小数位数SIGN (number2 ) /返回符号,正负或0SQRT(number2) /开平方11. 时间日期类ADDTIME (date2 ,time_interval ) /将time_interval加到date2CONVERT_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格式显示datetimeDATE_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 FROM date ) /从date中提取日期的指定部分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

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论