mysql中的一些语法(录)

来源:互联网 发布:深圳 人工智能 政策 编辑:程序博客网 时间:2024/05/20 14:40

 

 

 

**********************************************************

MYSQL存储过程:

 

 

-- --------------------------------------------------------------------------------

-- Routine DDL

-- --------------------------------------------------------------------------------

DELIMITER $$

 

CREATE DEFINER=`root`@`` PROCEDURE `TableName_MethodName`(

    _Parameter MYSQLPARAMETERTYPE

)

BEGIN

 

    MYSQL_SENTENCE;

 

END$$

 

 

 

 

**********************************************************

MYSQL事物:

 

 

-- --------------------------------------------------------------------------------

-- Routine DDL

-- --------------------------------------------------------------------------------

DELIMITER $$

 

CREATE DEFINER=`root`@`` PROCEDURE `TableName_MethodName`(

    _Parameter MYSQLPARAMETERTYPE

)

BEGIN

 

 

 

    DECLARE EXIT HANDLER FOR SQLEXCEPTION ROLLBACK;

    START TRANSACTION;

    SAVEPOINT SP;

 

 

    MYSQL_SENTENCE;

 

    IF @@ERROR_COUNT <> 0 THEN

        ROLLBACK TO SAVEPOINT SP;

        ……;

    ELSE

        ……;

        COMMIT;

    END IF;

 

END$$

 

 

 

 

-- --------------------------------------------------------------------------------

-- Routine DDL

-- --------------------------------------------------------------------------------

DELIMITER $$

 

CREATE DEFINER=`root`@`` PROCEDURE `TableName_MethodName`(

    _Parameter MYSQLPARAMETERTYPE

)

BEGIN

 

    DECLARE EXIT HANDLER FOR SQLWARNING,SQLEXCEPTION

    BEGIN

        ROLLBACK;

        SET _PTransactionId = 0;

    END; 

 

 

    START TRANSACTION;

 

    MYSQL_SENTENCE;

 

    COMMIT;

 

END$$

 

后者的执行效率比前者高。

 

 

 

*********************************************************

MYSQL 函数:

 

 

-- --------------------------------------------------------------------------------

-- Routine DDL

-- --------------------------------------------------------------------------------

DELIMITER $$

 

CREATE DEFINER=`root`@`localhost` FUNCTION `Func_FunctionName`(`_Parameter` ParameterType) RETURNS ReturnType CHARSET utf8

BEGIN

 

    SET @ReturnVar = ParameterTypeDefaultValue;

 

    MYSQLSENTENCE;

 

    RETURN @ReturnVar;

 

END$$

 

 

 

*******************************************************

MYSQL 执行一个字符串语句@SqlStr='select……':

 

 

PREPARE StmtTotalCount FROM @SqlStr;

EXECUTE StmtTotalCount;

DEALLOCATE PREPARE StmtTotalCount;

 

 

 

*******************************************************

MYSQL连接字符串(mysql中不能用+连接字符串,可以用mysql的方法连接):

 

SET @SqlStr = CONCAT(@SqlStr, ' AND UserId > 0');

 

 

*******************************************************

MYSQL  IF ELSE:

 

IF conditions THEN

……

 

[ELSE]

……

 

[ELSE]

……

 

END IF;

 

 

*******************************************************

MYSQL WHILE:

 

WHILE CONDITIONS DO

 

……

 

END WHILE;

 

------------------------------------------------------------------------------------

eg.

依次取出最后一个EmployeeId进行操作

 

SET _EmployeeIds ='1,2,3,4,5,6,7,0,9,12,51,77'

 

WHILE _EmployeeIds != '' DO

 

        SET @EmployeeId = SUBSTRING_INDEX(_EmployeeIds,',',-1);

 

        INSERT INTO Member

        (

            EmployeeId

        )

        VALUES

        ( 

            @EmployeeId

        );

 

        SET @NUM = 0;

 

        SET @STR = _EmployeeIds;

 

        WHILE INSTR(@STR,SUBSTRING_INDEX( _EmployeeIds, ',', -1 )) != 0 DO  

 

            SET @NUM =@NUM+INSTR(@STR,SUBSTRING_INDEX( _EmployeeIds, ',', -1 ));  

 

            SET @STR = SUBSTRING(@STR,INSTR(@STR,SUBSTRING_INDEX( _EmployeeIds, ',', -1 ))+1);  

 

        END WHILE;

 

        SET _EmployeeIds=LEFT( _EmployeeIds, @NUM -2);

 

    END WHILE;

 

 

 

*******************************************************

 

MYSQL SELECT INTO:

 

mysql的table不支持select * from oldTable into newTable

 

但可以这么写:CREATE TABLE newTable (SELECT * FROM oldTable)

 

 

SET @COLVALUE = DEFAULTVALUE;

 

SELECT COL FROM TABLENAME INTO @COLVALUE;

 

将某个字段或者字段处理后的值放到自定义变量 @COLVALUE中。注意,@COLVALUE要赋初始值,否则会出现NULL值的情况。

 

 

 

*****************************************************

MYSQL中判断是否为NULL值用:col IS NULL 或者 col IS NOT NULL。

 

 

 

 

*****************************************************

MYSQL中

 

条件里用“=”而不是“==” 来表示是否等于。

 

“>=”,“<=”,“>”,“<”,“<>”分别表示“大于等于”,“小于等于”,“大于”,“小于”,“不等于”。

 

 

 

*****************************************************

 

 

 

 

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 百度网盘下载速度慢怎么办 负债累累没有钱没有资源怎么办 好福利密码忘了怎么办 手机无法申请百度网盘怎么办 魅族手机运行慢怎么办 阿里小宝卡流量用完了怎么办 阿里宝卡流量用完了怎么办 百度网盘本地空间不足怎么办 百度网盘空间不足怎么办 百度网盘容量不够怎么办 百度网盘内存不够怎么办 百度网盘储存空间不足怎么办 百度网盘手机号注销了怎么办 手机系统升级后照片没了怎么办 换手机照片没了怎么办 苹果手机icloud满了怎么办 百度网盘密码忘记怎么办 手机卡不用了支付宝账号怎么办 手机校园网不弹出登录界面怎么办 百度云需要邮箱验证怎么办 网页百度网盘不播放视频怎么办 手机qq邮箱中转站容量不足怎么办 qq邮箱容量满了怎么办 手机邮箱中转站容量不足怎么办 微信号登陆要好友验证怎么办 邮箱账号名忘了怎么办 苹果六话筒坏了怎么办 iphone后置摄像头坏了怎么办 苹果8听歌声音小怎么办 酷狗音乐没了怎么办 手机听歌音量小怎么办 苹果手机酷狗音乐打不开怎么办 电脑酷狗音乐打不开怎么办 酷狗音乐无法运行播放怎么办? 酷狗音乐停止运行怎么办 米6蓝牙声音小怎么办 手里酷狗id丢了怎么办 连麦声音不好听怎么办 微信语音声音很难听怎么办 微信聊天语音没有声音怎么办 微信发语音声音不好听怎么办