之前一直用的是Sql Server数据库,最近偶然机会接触到mysql。这里总结了关于mysql 存储过程、视图的“创建、调用、删除”示例

=================================存储过程==================================

1、带参数的存储过程

/*创建存储过程*/
DELIMITER $$      /*为了避免冲突,首先用"DELIMITER &&"将MySQL的结束符设置为&&*/
USE `DataName`$$   /*DataName-->数据库名*/
DROP PROCEDURE IF EXISTS `aa`$$   /*判断存储过程是否存在(存在则删除)*/
CREATE DEFINER=`root`@`%` PROCEDURE `aa`(str_id VARCHAR(34))/*str_id VARCHAR(34)-->参数*/

BEGIN
SELECT * FROM tj_archive WHERE id=str_id; /*执行的Sql脚本*/
END$$
DELIMITER; /*最后再用"DELIMITER ;"来将结束符恢复成分号*/

/*查看存储过程*/
CALL `aa`('D1608220023')

/*删除存储过程*/
DROP PROCEDURE `aa`

2、带IF条件判断的存储过程

DELIMITER $$ 
USE `iu`$$
DROP PROCEDURE IF EXISTS `bb`$$ 
CREATE DEFINER=`root`@`%` PROCEDURE `bb`(Xb VARCHAR(6)) -- 创建
BEGIN
IF (Xb='男') THEN SET Xb='1';END IF;
IF (Xb='女') THEN SET Xb='0';END IF;
SELECT * FROM tj_archive WHERE sex=Xb; 
END$$
DELIMITER;

CALL `bb`('女')  -- 调用

DROP PROCEDURE `bb` -- 删除

3、使用 SELECT... INTO 给变量赋值

DELIMITER $$ 
USE `iu`$$
DROP PROCEDURE IF EXISTS `cc`$$ 
CREATE DEFINER=`root`@`%` PROCEDURE `cc`()
BEGIN
DECLARE RYDAID VARCHAR(34);
SELECT CONCAT('D',CAST((CAST(SUBSTRING(MAX(id),2) AS UNSIGNED)) AS CHAR)) INTO RYDAID FROM tj_archive;
SELECT * FROM tj_archive WHERE id=RYDAID; 
END$$
DELIMITER;

CALL `cc`(); -- 调用
DROP PROCEDURE `cc`; -- 删除

=======================================视图==================================

-- 创建视图
CREATE VIEW MyView AS 
SELECT 
CASE sex                -- 适用性别 0:男女通用 1:男 2:女
WHEN sex='男' THEN 1        -- 适用 男
WHEN sex='女' THEN 2          -- 适用 女
WHEN sex='通用' THEN 0       -- 男女通用
END AS XB 
FROM MyTable                 -- 表
-- where                    -- 过滤条件

select * from MyView                       -- 查看视图

原文:https://www.cnblogs.com/CHNMurphy/p/5829099.html

mysql 存储过程、视图---创建、调用、删除的更多相关文章

  1. MySQL存储过程_创建-调用

    阅读目录:MySQL存储过程_创建-调用-参数 存储过程:SQL中的"脚本" 创建存储过程 调用存储过程 存储过程体 语句块标签 存储过程的参数 in:向过程里传参 out:过程向 ...

  2. MySQL存储过程的创建及调用

    阅读目录:MySQL存储过程_创建-调用-参数 存储过程:SQL中的“脚本” 1.创建存储过程 2.调用存储过程 3.存储过程体 4.语句块标签 存储过程的参数 1.in:向过程里传参 2.out:过 ...

  3. MySQL索引的创建、删除和查看

    MySQL索引的创建.删除和查看 此文转自http://blogold.chinaunix.net/u3/93470/showart_2001536.html 1.索引作用 在索引列上,除了上面提到的 ...

  4. MySQL查看、创建和删除索引的方法

    本文实例讲述了MySQL查看.创建和删除索引的方法.分享给大家供大家参考.具体如下: 1.索引作用 在索引列上,除了上面提到的有序查找之外,数据库利用各种各样的快速定位技术,能够大大提高查询效率.特别 ...

  5. taskctl实现自定义mysql存储过程作业类型调用

    TASKCTL支持任意作业类型的扩展,但目前TASKCTL 4.1.3版本中并没有内置mysql存储过程的作业插件.通过介绍使TASKCTL支持调度mysql存储过程作业类型的步骤,一方面解决一些朋友 ...

  6. SQLServer、Mysql、Oracle 创建、删除用户和授予用户权限

    SQLServer 1.创建用户 CREATE LOGIN [用户名称] WITH PASSWORD='用户密码', DEFAULT_DATABASE=[默认数据库名称], CHECK_EXPIRAT ...

  7. MySql存储过程的创建与使用及在thinkphp中如何调用笔记

    学习sql的存储过程,笔记总结如下: MySQL默认将分号,即";"作为语句的分隔符.如果是这样的话,则一个存储过程将很难正常创建,因为它的BEGIN和END之间可以是任意数量的S ...

  8. mysql存储过程的创建和调用

    描述:存储过程就是具有名字的一段代码,用来完成一个特定的功能.创建的存储过程保存在数据库的数据词典中. --创建一个名为GreetWorld的存储过程,拼接两个值 CREATE PROCEDURE G ...

  9. mysql存储过程且mybatis调用

    首先,需要执行符DELIMITER ,建议用//,即在存储过程开始前定义delimiter //,在结束后加上//,最后加上DELIMITER ; 具体原因@参考文章1写的很清楚,不再赘述. 参考文章 ...

  10. mysql表的创建和删除

    在创建数据库表时,最好是在编辑器中写好创建表的代码,然后粘贴到命令行中,这样如果有错修改起来方便. 现在来创建一个user表: -- 打开数据库, --后面必须要有空格, 表示注释 USE mydb3 ...

随机推荐

  1. `ll/sc` 指令在`linux`中的软件实现

    load-link与store-conditional (LL/SC)是一对用于并发同步访问内存的CPU指令.Load-link返回内存位置处的当前值,随后的store-conditional在该内存 ...

  2. 基于 Mathematica 的机器人仿真环境(机械臂篇)[转]

    完美的教程,没有之一,收藏学习. 目的 本文手把手教你在 Mathematica 软件中搭建机器人的仿真环境,具体包括以下内容(所使用的版本是 Mathematica 11.1,更早的版本可能缺少某些 ...

  3. Single Cell Genomics Day: A Practical Workshop

    干货满满! Single Cell Genomics Day: A Practical Workshop

  4. HTTP、MQTT、Websocket、WebService区别

    相同点: HTTP.MQTT.Websocket均为OSI 7层模型的[应用层协议]注意. WebService并非通信协议,而是一种远程接口调用(RPC)的框架技术. 不同点: MQTT MQTT协 ...

  5. mysql索引原理及优化(二)

    索引原理分析:数据结构 索引是最常见的慢查询优化方式其是一种优化查询的数据结构,MySql中的索引是用B+树实现,而B+树就是一种数据结构,可以优化查询速度,可以利用索引快速查找数据,优化查询. 可以 ...

  6. PHP系列 | ThinkPHP5数据库迁移工具 migration

    了解更多,请关注微信公众号 ThinkPHP5数据库迁移工具 migration 什么是Migration? migration用谷歌翻译是移民的意思,在PHP中我们将它理解为迁移,将Migratio ...

  7. MySQL8.0项目启动遇到的问题

    写在前面 看到jeecg论坛更新了jeecg-boot版本, 比较新颖的技术都有, down代码, 执行sql脚本, 起项目, 本来是一气呵成的事儿遇到了两个问题, 做个记录. 环境: IDEA201 ...

  8. typescript - 9.装饰器

    装饰器:装饰器是一种特殊类型的声明,它能够被附加到类声明,方法,属性或参数上,可以修改类的行为. 通俗的讲装饰器就是一个方法,可以注入到类.方法.属性参数上来扩展类.属性.方法.参数的功能. 常见的装 ...

  9. chartjs

    chartjs是一个图表控件集合,使用html5的canvas进行绘制. 官网:http://www.chartjs.org/ 文档:https://www.chartjs.org/docs/late ...

  10. 下载youtube视频到本地

    https://www.clipconverter.cc/ 先通过上面的网站对youtube视频的url 进行解析获得下载链接地址 获得链接地址后 可通过阿里云香港服务器去下载 , 速度比较快 在阿里 ...