`

mysql procedure人门学习笔记(1)

阅读更多
#创建resources表 #resources自关联
CREATE TABLE tt_Resources(
id BIGINT NOT NULL ,
title VARCHAR(255),
intro VARCHAR(255),
src   VARCHAR(255),
onoff TINYINT(255),
resources_id VARCHAR(255),
PRIMARY KEY(id)
);

ALTER TABLE tt_Resources ADD CONSTRAINT parent_resources
FOREIGN KEY(resources_id) REFERENCES tt_Resources(id) ON DELETE SET NULL;

CREATE PROCEDURE select_employee(IN parameter INTEGER)
BEGIN
IF parameter=0 THEN
SELECT * FROM employee ORDER BY id asc;
else
SELECT * FROM employee ORDER BY id desc;
END if;
END;

CREATE PROCEDURE test_p(IN isLimit boolean,IN prow INTEGER)
BEGIN
IF
isLimit THEN
SELECT prow;
SELECT * FROM bb_menu_new limit 0,3;
END IF;
END;

预编译:
创建:PREPARE stmt1 FROM "SELECT * FROM bb_menu_new where id=?"
执行:EXECUTE stmt1 USING @x;
销毁:DEALLOCATE PREPARE stmt2;

分页:
CREATE PROCEDURE page(IN wh VARCHAR(150) ,IN st INT,IN sz INT)
BEGIN
DECLARE menuSql VARCHAR(255) DEFAULT 'SELECT * FROM bb_menu_new';
IF
wh IS NOT NULL THEN
SET menuSql=CONCAT(menuSql," WHERE ",wh);
END IF;
IF
sz IS NOT NULL THEN
SET menuSql=CONCAT(menuSql," limit ",st,sz);
END IF;
SELECT menuSql;
SET @sql=menuSql;
PREPARE menuStatement FROM @sql;
EXECUTE menuStatement;
DEALLOCATE PREPARE menuStatement;
END;

1.DECLARE 程序处理 (若果报错 '21S01' 则会执行 SET @x=1; 并跳过该错误语句)
CREATE PROCEDURE handlerdemo()
BEGIN
DECLARE flag CONDITION FOR SQLSTATE '21S01';
DECLARE CONTINUE HANDLER FOR flag SET @x=1;
INSERT INTO bb_menu_new VALUES(1);
END;




2.CURSOR  (相当于java的result结果集 )
CREATE PROCEDURE cursordemo()
BEGIN
DECLARE  a VARCHAR(255);
DECLARE   b VARCHAR(255);
DECLARE cursor1 CURSOR FOR SELECT text,url FROM bb_menu_new;
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET @x=10;
OPEN cursor1;
REPEAT
FETCH cursor1 INTO a,b;
SELECT a,b;
FETCH cursor1 INTO a,b;
SELECT a,b;
UNTIL true END REPEAT;
CLOSE cursor1;
END;

3.CASE 语句
CREATE PROCEDURE casedemo()
BEGIN
DECLARE age INT DEFAULT 3;
CASE
WHEN age=1 THEN
SELECT * FROM bb_menu_new;
WHEN age=3 THEN
SELECT 3 as error;
END CASE;
END;

4.LOOP循环语句
CREATE PROCEDURE loopdemo()
BEGIN
DECLARE i INT DEFAULT 0;
lable:LOOP
SET i =i+1;
SELECT i;
/*IF i<10 THEN ITERATE lable;END IF;
LEAVE lable;
*/
IF i>=10 THEN
LEAVE lable;
END IF;
END LOOP lable;
END;

5.REPEAT 语句 (满足条件跳出)
CREATE PROCEDURE repeatdemo()
BEGIN
DECLARE i INT DEFAULT 0;
REPEAT
SET i=i+1;
SELECT i;
UNTIL i>=10 END REPEAT;
END;
6.WHILE 语句(满足条件循环)
CREATE PROCEDURE whiledemo()
BEGIN
DECLARE i INT DEFAULT 0;
WHILE i<=10 DO
SET i=i+1;
SELECT i;
END WHILE;
END;
分享到:
评论

相关推荐

    MySQL核心技术学习笔记

    ### MySQL核心技术学习笔记 #### 一、为什么要学习数据库 学习数据库的重要性主要体现在以下几个方面: 1. **持久化数据到本地**:数据库能够将应用程序产生的数据持久化存储在磁盘上,即使系统重启也不会丢失...

    MySQL高可用学习笔记mysqlrouter_MHA.docx

    MySQL 高可用学习笔记 mysqlrouter_MHA 本文档主要讲解了 MySQL Router 和 MHA 的高可用配置和测试步骤。MySQL Router 是一个提供高可用和负载均衡的工具,而 MHA 是一个提供高可用和自动failover 的工具。下面我们...

    数据库 MySQL 学习笔记高级篇.md

    数据库 MySQL 学习笔记高级篇.md

    MySQL优化学习思维笔记.xmind

    MySQL优化学习思维笔记.xmind

    MySQL学习笔记.zip

    这份“MySQL学习笔记”将引导我们深入理解其核心概念和实用技能。 一、MySQL简介 MySQL是一个开源、免费的数据库系统,由瑞典的MySQL AB公司开发,后被Oracle公司收购。它的设计目标是速度、可移植性和简洁性,支持...

    MySQL DBA深度学习笔记

    ### MySQL DBA深度学习笔记知识点概述 #### 一、MySQL版本选择与下载 - **MSI与ZIP包区别**: - **MSI文件**:适用于Windows系统,提供图形化安装界面,支持自定义安装路径及组件选择等功能,适合希望进行定制化...

    MySQL学习笔记.chm

    MySQL学习笔记.chmMySQL学习笔记.chmMySQL学习笔记.chmMySQL学习笔记.chm

    MySQL进阶篇学习笔记

    黑马MySQL课程总结的学习笔记

    Mysql燕十八学习笔记.doc

    Mysql学习燕十八学习笔记文本文件,Mysql三大列类型 1. 数值型2. 字符串型3. 日期时间类型

    mysql 个人学习笔记

    这份“MySQL个人学习笔记”涵盖了从基础到进阶的多个方面,旨在帮助学习者全面理解MySQL的使用。 1. **安装与配置**: 在开始学习MySQL之前,你需要了解如何在不同的操作系统上安装MySQL服务器,如Windows、Linux...

    mysql DBA学习笔记

    这份"超经典mysql DBA学习笔记"涵盖了成为一名优秀DBA所需掌握的众多知识点,旨在帮助学习者深入理解MySQL数据库的运维与优化。 一、MySQL概述 MySQL是一种开源、免费的关系型数据库管理系统,广泛应用于互联网应用...

    mysql学习笔记(一).txt

    mysql入门学习笔记整理,如何创建数据库、查看数据库,删除数据库,创建表和对表字段类型操作、约束、mysql数据类型整理

    mysql学习笔记.rar

    这份"mysql学习笔记.rar"包含的资源旨在帮助初学者和有经验的开发者深入理解和掌握MySQL的相关知识。 首先,"mysql学习笔记.doc"很可能是核心的学习资料,它可能包含了MySQL的基础概念、安装与配置、SQL语言基础、...

    mysql集群 优化 学习笔记.zip

    mysql集群 优化 学习笔记

    MySQL思维导图学习笔记.zip

    MySQL思维导图学习笔记.zip

    大神写的MySQL DBA学习笔记

    这份“大神写的MySQL DBA学习笔记”无疑是深入理解和掌握MySQL技术的重要资源,尤其适合那些希望提升自己在数据库管理领域技能的人。笔记内容可能涵盖了从基础概念到高级实践的全方位知识,包括但不限于以下关键点:...

    MySQL DBA架构师学习笔记

    MySQL DBA架构师学习笔记涉及了MySQL数据库的部署、配置、监控和优化等多方面的知识点。以下是对文件内容中提及知识点的详细说明: 1. MySQL部署规划:在进行MySQL数据库部署时,需要进行前期规划,确定软件包、...

    Mysql最全学习笔记

    MySQL学习笔记 数据库基础知识: * 数据库(DB):存储数据的容器。 * 数据库管理系统(DBMS):创建或管理数据库的软件,例如 MySQL、Oracle、SQL Server 等。 SQL 介绍: * 结构化查询语言(SQL):与数据库...

Global site tag (gtag.js) - Google Analytics