天下之事,必先处之难,而后易之。
君临
知我者谓我心忧,不知我者谓我何求

一.变量

MSSQL:  有二种类型: 系统变量(@@标识)和用户变量(用@标识), 我们只能自定义用户变量,系统变量是只读的
                    每一个变量都要用DECLARE来作声明
                    随用随声明,不需要放在固定位置
                    声明语法:  declare  @变量名 类型, 解要求是行声明后赋值

mysql:  在mysql中变量有三种类型: 系统变量、用户变量(前加@)和局部变量(变量名前没有任何标志)
                    Mysql也采用了随用随声明的方式


pl/sql: 声明语法:  DECLARE  变量名  [CONSTANT]  变量类型 [:=默认值]
        在PL/SQL中是将变量集中放在一起进行声明的,没有采用MSSQL随用随声明的方式, 也就是说声明时只有
        一个declare出现。
 


二、存储过程

1. 删除已经存在的存储过程
MSSQL:  IF EXISTS(SELECT * FROM sysobjects where name='存储过程' )
      DROP procedure 存储过程名
        GO

MYSQL: DROP PROCEDURE IF EXISTS 存储过程名;
PL/SQL: 创建时直接替换 


2. 创建

  (1) MSSQL与MySQL没有 or replace选项
  (2) 参数:
          类型:  mssql它的参数分为input和output类型
                 mysql和oracle 的类型则为 in 和 out
          参数类型的存放位置:
                 mssql中,类型标识符位于变量名和变量类型之后 proc_test(@rowcount) int output)
                 mysql中,类型标识符位于变量名之前      proc_test(out rowcount int)
                 oracle中,类型标识符位于变量名和变量类型之间 proc_test(rowcount out int)
          参数声明方式:
                 mssql: 参数名前必须有@
                 mysql: 参数名前可以用@表示是用户变量, 也可以不加@表示的是局部变量 [推荐用局部变量]
                 oracle: 参数名前不能有@
          参数声明时对字符串长度的处理
                 mssql:  必须加  varchar(200)
                 mysql:  必须加  varchar(200)
                 oracel: 不能指定找度
          默认值:
                 mssql:  可以加默认值的, 只需要在参数类型后加上 "= 值" 就可以了
                 mysql:  不支持默认值
                 oracle:  有两种方式: (1) :=    (2) default
   (3)内部变量
     A.声明
         MSSQL和MYSQL都是采用的随用随声明方式,比较简单。而ORACLE要求在过程体内所使用的变量必须
      在As后集中进行声明。
         MSSQL和MYSQL声明变量都必须使用DECLARE关键字[mysql中的用户变量可以不用声明,直接使用],
      而oracle中声明变量一般不用DECLARE关键字
 
     B.赋值
         MSSQL中用set或select ,
         MYSQL 可以使用set和select ... into ..为变量赋值,  可以使用"=",也可以使用":="
         ORACEL 比较直接,直接用 "变量名 := 变量值"这种方式,当然也可以使用select ... into...

     
   (4)动态语句的处理
        MSSQL :    exec sp_executesql  动态sql语句,N'动态参数声明',动态参数赋值
        MySQL:     PREPARE 自定义变量 FROM  动态sql语句;
                   EXECUTE 自定义变量;
                   deallocate PREPARE 自定义变量
        ORACLE:   execute immediate 动态sql语句 [into 输出变量] [using 参数值]

 

 

     [mylw:]WHILE 表达式   DO
 操作语句
     END  WHILE [mylw];

   
     REPEAT 
         循环体语句
     UNTIL  表达式
     END REPEAT;
  

 

 


    

posted on 2011-06-28 14:12  boonya  阅读(324)  评论(0编辑  收藏  举报

我有佳人隔窗而居,今有伊人明月之畔。
轻歌柔情冰壶之浣,涓涓清流梦入云端。
美人如娇温雅悠婉,目遇赏阅适而自欣。
百草层叠疏而有致,此情此思怀彼佳人。
念所思之唯心叩之,踽踽彳亍寤寐思之。
行云如风逝而复归,佳人一去莫知可回?
深闺冷瘦独自徘徊,处处明灯影还如只。
推窗见月疑是归人,阑珊灯火托手思忖。
庐居闲客而好品茗,斟茶徐徐漫漫生烟。

我有佳人在水之畔,瓮载渔舟浣纱归还。
明月相照月色还低,浅近芦苇深深如钿。
庐山秋月如美人衣,画堂春阁香气靡靡。
秋意幽笃残粉摇曳,轻轻如诉画中蝴蝶。
泾水潺潺取尔浇园,暮色黄昏如沐佳人。
青丝撩弄长裙翩翩,彩蝶飞舞执子手腕。
香带丝缕缓缓在肩,柔美体肤寸寸爱怜。
如水之殇美玉成欢,我有佳人清新如兰。
伊人在水我在一边,远远相望不可亵玩。