博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Mysql Programming CS 155P笔记(三)
阅读量:4914 次
发布时间:2019-06-11

本文共 2641 字,大约阅读时间需要 8 分钟。

CREATE PROCEDURE

CREATE PROCEDURE sp_name ([proc_parameter[,...]])
    [characteristic ...] routine_body
mysql> delimiter // mysql> CREATE PROCEDURE simpleproc (OUT param1 INT)    -> BEGIN    ->   SELECT COUNT(*) INTO param1 FROM t;    -> END    -> //Query OK, 0 rows affected (0.00 sec) mysql> delimiter ; mysql> CALL simpleproc(@a);Query OK, 0 rows affected (0.00 sec) mysql> SELECT @a;+------+| @a   |+------+| 3    |+------+1 row in set (0.00 sec)

由括号包围的参数列必须总是存在。如果没有参数,也该使用一个空参数列()。每个参数 默认都是一个IN参数。要指定为其它参数,可在参数名之前使用关键词 OUT或INOUT 

注意: 指定参数为IN, OUT, 或INOUT 只对PROCEDURE是合法的。(FUNCTION参数总是被认为是IN参数)

procedure需要使用call来调用

CALL sp_name([parameter[,...]])

CALL语句调用一个先前用CREATE PROCEDURE创建的程序。

CALL语句可以用 声明为OUT或的INOUT参数的参数给它的调用者传回值

 

CREATE FUNCTION

CREATE FUNCTION sp_name ([func_parameter[,...]])
    RETURNS type
    [characteristic ...] routine_body
   
    proc_parameter:
    [ IN | OUT | INOUT ] param_name type
   
    func_parameter:
    param_name type
 
type:
    Any valid MySQL data type
 
characteristic:
    LANGUAGE SQL
  | [NOT] DETERMINISTIC
  | { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA }
  | SQL SECURITY { DEFINER | INVOKER }
  | COMMENT 'string'
 
routine_body:
    Valid SQL procedure statement or statements
mysql> delimiter // mysql> CREATE FUNCTION hello (s CHAR(20)) RETURNS CHAR(50)    -> RETURN CONCAT('Hello, ',s,'!');    -> //Query OK, 0 rows affected (0.00 sec) mysql> delimiter ; mysql> SELECT hello('world');+----------------+| hello('world') |+----------------+| Hello, world!  |+----------------+1 row in set (0.00 sec)

RETURNS字句只能对FUNCTION做指定,对函数而言这是强制的。它用来指定函数的返回类型,而且函数体必须包含一个RETURN value语句 

 

 

ALTER {PROCEDURE | FUNCTION} sp_name [characteristic ...]
 
characteristic:
    { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA }
  | SQL SECURITY { DEFINER | INVOKER }
  | COMMENT 'string'
DROP {PROCEDURE | FUNCTION} [IF EXISTS] sp_name
SHOW CREATE {PROCEDURE | FUNCTION} sp_name
mysql> SHOW CREATE FUNCTION test.hello\G*************************** 1. row ***************************       Function: hello       sql_mode:Create Function: CREATE FUNCTION `test`.`hello`(s CHAR(20)) RETURNS CHAR(50)RETURN CONCAT('Hello, ',s,'!')

  

SHOW {PROCEDURE | FUNCTION} STATUS [LIKE 'pattern']
mysql> SHOW FUNCTION STATUS LIKE 'hello'\G*************************** 1. row ***************************           Db: test         Name: hello         Type: FUNCTION      Definer: testuser@localhost     Modified: 2004-08-03 15:29:37      Created: 2004-08-03 15:29:37Security_type: DEFINER      Comment:

  

posted on
2018-02-23 10:24 阅读(
...) 评论(
...)

转载于:https://www.cnblogs.com/ecwork/p/8461038.html

你可能感兴趣的文章
【IE6的疯狂之二】IE6中PNG Alpha透明(全集)
查看>>
第一个Shell脚本
查看>>
C++ 小笔记
查看>>
zabbix 安装rpm
查看>>
PhantomJS:Full web stack,No browser required
查看>>
Git远程操作详解
查看>>
java课后思考问题(七)
查看>>
5.9 容器
查看>>
创建oracle数据库的表空间、用户、目录、导入\导出文件等信息
查看>>
php禁止浏览器使用缓存页面的方法
查看>>
django的模型类管理器-----------数据库操作的封装
查看>>
java 回调
查看>>
CF1100E Andrew and Taxi 二分答案+拓扑排序
查看>>
子弹朝向问题的解决,移动方法的编写
查看>>
$("#id a") - $("#id .c a") = ?
查看>>
题目1034:寻找大富翁---用了sort()函数,注意头文件;
查看>>
Windows下Wamp装不上Memcache扩展
查看>>
js中数组的map()方法
查看>>
wpa破解学习实践
查看>>
USACO 2008 FEB Eating Together
查看>>