mysql 存储过程、视图---创建、调用、删除
之前一直用的是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 存储过程、视图---创建、调用、删除的更多相关文章
- MySQL存储过程_创建-调用
阅读目录:MySQL存储过程_创建-调用-参数 存储过程:SQL中的"脚本" 创建存储过程 调用存储过程 存储过程体 语句块标签 存储过程的参数 in:向过程里传参 out:过程向 ...
- MySQL存储过程的创建及调用
阅读目录:MySQL存储过程_创建-调用-参数 存储过程:SQL中的“脚本” 1.创建存储过程 2.调用存储过程 3.存储过程体 4.语句块标签 存储过程的参数 1.in:向过程里传参 2.out:过 ...
- MySQL索引的创建、删除和查看
MySQL索引的创建.删除和查看 此文转自http://blogold.chinaunix.net/u3/93470/showart_2001536.html 1.索引作用 在索引列上,除了上面提到的 ...
- MySQL查看、创建和删除索引的方法
本文实例讲述了MySQL查看.创建和删除索引的方法.分享给大家供大家参考.具体如下: 1.索引作用 在索引列上,除了上面提到的有序查找之外,数据库利用各种各样的快速定位技术,能够大大提高查询效率.特别 ...
- taskctl实现自定义mysql存储过程作业类型调用
TASKCTL支持任意作业类型的扩展,但目前TASKCTL 4.1.3版本中并没有内置mysql存储过程的作业插件.通过介绍使TASKCTL支持调度mysql存储过程作业类型的步骤,一方面解决一些朋友 ...
- SQLServer、Mysql、Oracle 创建、删除用户和授予用户权限
SQLServer 1.创建用户 CREATE LOGIN [用户名称] WITH PASSWORD='用户密码', DEFAULT_DATABASE=[默认数据库名称], CHECK_EXPIRAT ...
- MySql存储过程的创建与使用及在thinkphp中如何调用笔记
学习sql的存储过程,笔记总结如下: MySQL默认将分号,即";"作为语句的分隔符.如果是这样的话,则一个存储过程将很难正常创建,因为它的BEGIN和END之间可以是任意数量的S ...
- mysql存储过程的创建和调用
描述:存储过程就是具有名字的一段代码,用来完成一个特定的功能.创建的存储过程保存在数据库的数据词典中. --创建一个名为GreetWorld的存储过程,拼接两个值 CREATE PROCEDURE G ...
- mysql存储过程且mybatis调用
首先,需要执行符DELIMITER ,建议用//,即在存储过程开始前定义delimiter //,在结束后加上//,最后加上DELIMITER ; 具体原因@参考文章1写的很清楚,不再赘述. 参考文章 ...
- mysql表的创建和删除
在创建数据库表时,最好是在编辑器中写好创建表的代码,然后粘贴到命令行中,这样如果有错修改起来方便. 现在来创建一个user表: -- 打开数据库, --后面必须要有空格, 表示注释 USE mydb3 ...
随机推荐
- SRS之安装与使用
1. 安装 1.1 github 获取源码 git clone https://github.com/ossrs/srs.git 1.2 编译 1.2.1 关闭防火墙和 selinux 先关闭防火墙, ...
- 2019软工实践_Alpha(事后诸葛亮)
组长博客 感谢组长 总结思考 设想和目标 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述? 弥补Powerpoint中模板转换存在的缺陷,完善PPT模板一键转换的功能 ...
- Oralce 如何将查询结果中的0转成空的
我们遇到过大多的情况的需求是查询结果中空转为0,这个可以通过oracle的NVL()函数就可以搞定. 之前做报表客户有个需求,查询出结果为0 要转成空的,不显示0 那么在oracle有没有现成函数能搞 ...
- navicat for mysql 如何设置字段唯一
在设计表时,上面会有索引这一项 点开,在栏位处选择你需要设置的字段,然后选择unique索引类型即可 望采纳,谢谢!
- [LeetCode] 206. Reverse Linked List 反向链表
Reverse a singly linked list. Hint: A linked list can be reversed either iteratively or recursively. ...
- 【LeetCode】删除排序数组中的重复项&&移除特定元素【双指针,原地算法】
给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成. 示例 1 ...
- Java中遍历Map对象的4种方法
java中的所有map都实现了Map接口,以下方法适用于任何map实现(HashMap, TreeMap, LinkedHashMap, Hashtable, 等等). HashMap<Inte ...
- lambda表达式笔记
前几天一位好友分享了一篇文章,其中讲到了lambda表达式,正好最近看了一些内容,就做做笔记吧... lambda表达式服务于函数式接口,如果需要一个函数式接口的对象时,就可以用lambda表达式代替 ...
- MySQL必知必会3
创建和操纵表 创建表 输入 CREATE TABLE customers ( cust_id int NOT NULL AUTO_INCREMENT, cust_name char(50) NOT N ...
- 基于 Docker 和 GitLab 的前端自动化部署实践笔记
基于 Docker 和 GitLab 的前端自动化部署 实践笔记 随着接触的项目越来越多,在部署测试流程上重复耗时工作也越来越多,所以对前端工作的CI/CD实现愈发迫在眉睫. 前端开发由于三大框架的崛 ...