日历

2010年六月
« 5月   7月 »
 123456
78910111213
14151617181920
21222324252627
282930  

最近评论

    linux企业应用

    mysql第五部分 mysql存储过程中的参数变量

    下面,学习怎样在存储过程中使用参数,首先看下面4个例子:
    1、create procedure p1() ……
    2、create procedure p2([IN] name data-type) ……
    3、create procedure p3(OUT name data-type) ……
    4、create procedure p4(INOUT name data-type) ……
    上面第一个例子的没有参数;第二个例子有一个输入参数(IN是input的缩写,而且参数默认是输入参数,所以IN可以省略不写);第三个例子中有一个输出参数;第四个例子中的参数既能作为输入参数也可以作为输出参数。根据这四个例子,再举几个实际的例子,第一种类型的例子在这里就不再列举了,“第二部分mysql为什么使用存储过程”使用的例子就是没有参数的情况。
        首先看一下输入的例子:
    mysql> create procedure p6(i int) set @x=i;
    Query OK, 0 rows affected (0.01 sec)

    linux/unix基础知识

    mysql第四部分 mysql的特征句子

       1、首先来看几个能反映存储过程特性的子句,子句在存储过程之后(也就是p20()之后),存储过程的主题之前(也就是sql语句之前)。
    mysql> create procedure p20()
        ->  language sql                #注意,每个->之后都要有一个空格,否则,辛辛苦苦将全部的存储过程语句写完后,会提示错误
        ->  not deterministic     #也可以在每行的最后一个词之后加一个空格
        ->  sql security definer
        ->  comment ‘a procedure’
        ->  select current_date,rand() from t1;
    调用一下存储过程,看一下结果:
    mysql> call p20;
    +————–+——————+
    | current_date | rand()           |
    +————–+——————+
    | 2010-06-25   | 0.25000709225424 |
    +————–+——————+
    1 row in set (0.00 sec)
    Query OK, 0 rows affected (0.00 sec)
        实际上并没有t1这个表中的数据!!只是返回了当前日期和一个随机数:lol: 那么这些子句,哪些是需要的,哪些是不需要的呢?接着看。

    linux企业应用

    mysql第三部分 在mysql中那些是合法的存储语句

         在Mysql存储过程使用包含INSERT, UPDATE,  DELETE, SELECT, DROP, CREATE, REPLACE等关键词的sql语句都是合法的sql语句,需要特别注意的是如果代码中包含MySQL扩充功能,那么代码将不能移植。在标准SQL语句中:任何数据库定义语言都是合法的,如:
    mysql> create procedure p() delete from t1;
        SET、COMMIT以及ROLLBACK也是合法的,如:
     mysql> create procedure p2() set @x=5;
        MySQL的附加功能:任何数据操作语言的语句都是合法,比如:mysql> create procedure p3() drop table t1;
       MySQL扩充功能:直接的SELECT也是合法的,比如:mysql> create procedure p4() select ‘a’;
        在SQL标准中,没有把DDL语句的功能定义为核心功能,所以在mysql中,将DDL功能只算一个附加功能。