MySQL(8)存储过程和函数
字段名 数据类型 主键 外键 非空 唯一 自增
id INT 是 否 是 是 否
name VARCHAR(50) 否 否 是 否 否
glass VARCHAR(50) 否 否 是 否 否
mysql> create table sch (-> id int primary key not null unique,-> name varchar(50) not null,-> glass varchar(50) not null-> );
sch 表内容
id name glass
1 xiaommg glass 1
2 xiaojun glass 2
insert into sch values('1','xiaommg','glass 1'),('2','xiaojun','glass 2');
select * from sch ;
1、创建一个可以统计表格内记录条数的存储函数 ,函数名为count_sch()
1.1创建函数
mysql> \d $$
mysql> create procedure count_sch()-> begin -> select count(*) from sch;-> end $$
Query OK, 0 rows affected (0.00 sec)mysql> \d ;
1.2叫一下函数
mysql> call count_sch();
2、创建一个存储过程avg_sai,有3个参数,分别是deptno,job,接收平均工资,功能查询emp表dept为30,job为销售员的平均工资。(使用之前的emp表)
2.1创建emp表
CREATE TABLE `emp` (`empno` int(4) NOT NULL,`ename` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,`job` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,`mgr` int(4) NULL DEFAULT NULL,`hiredate` date NOT NULL,`sai` int(255) NOT NULL,`comm` int(255) NULL DEFAULT NULL,`deptno` int(2) NOT NULL,PRIMARY KEY (`empno`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
2.2插入数据
INSERT INTO `emp` VALUES (1001, '甘宁', '文员', 1013, '2000-12-17', 8000, NULL, 20);
INSERT INTO `emp` VALUES (1002, '黛绮丝', '销售员', 1006, '2001-02-20', 16000, 3000, 30);
INSERT INTO `emp` VALUES (1003, '殷天正', '销售员', 1006, '2001-02-22', 12500, 5000, 30);
INSERT INTO `emp` VALUES (1004, '刘备', '经理', 1009, '2001-04-02', 29750, NULL, 20);
INSERT INTO `emp` VALUES (1005, '谢逊', '销售员', 1006, '2001-09-28', 12500, 14000, 30);
INSERT INTO `emp` VALUES (1006, '关羽', '经理', 1009, '2001-05-01', 28500, NULL, 30);
INSERT INTO `emp` VALUES (1007, '张飞', '经理', 1009, '2001-09-01', 24500, NULL, 10);
INSERT INTO `emp` VALUES (1008, '诸葛亮', '分析师', 1004, '2007-04-19', 30000, NULL, 20);
INSERT INTO `emp` VALUES (1009, '曾阿牛', '董事长', NULL, '2001-11-17', 50000, NULL, 10);
INSERT INTO `emp` VALUES (1010, '韦一笑', '销售员', 1006, '2001-09-08', 15000, 0, 30);
INSERT INTO `emp` VALUES (1011, '周泰', '文员', 1006, '2007-05-23', 11000, NULL, 20);
INSERT INTO `emp` VALUES (1012, '程普', '文员', 1006, '2001-12-03', 9500, NULL, 30);
INSERT INTO `emp` VALUES (1013, '庞统', '分析师', 1004, '2001-12-03', 30000, NULL, 20);
INSERT INTO `emp` VALUES (1014, '黄盖', '文员', 1007, '2002-01-23', 13000, NULL, 10);
INSERT INTO `emp` VALUES (1015, '张三', '保洁员', 1001, '2013-05-01', 80000, 50000, 50);
2.3创建avg_sai
mysql>\d $$
mysql> create procedure avg_sai(in a1 int ,in a2 varchar(50),out a3 int)-> begin-> select avg(sai) into a3 from emp-> where deptno = a1 and job = a2;-> end $$
Query OK, 0 rows affected (0.00 sec)mysql> \d ;
mysql> call avg_sai(30,'销售员',@xx);
ERROR 1366 (HY000): Incorrect string value: '\xE9\x94\x80\xE5\x94\xAE...' for column 'a2' at row 1
炸裂
有待完善。
MySQL(8)存储过程和函数相关推荐
- MySQL之存储过程及函数的使用
MySQL之存储过程及函数的使用 4.存储过程和函数 4.1 存储过程和函数概述 存储过程和函数是 事先经过编译并存储在数据库中的一段SQL语句的集合,调用存储过程和函数可以简化应用开发人员的很多工作 ...
- mysql创建存储过程及函数详解
文章来源: 学习通http://www.bdgxy.com/ 目录 1. 存储过程 1.1. 基本语法 1.2 创建一个指定执行权限的存储过程 1.3?DELIMITER 的使用 2. 创建函数? 1 ...
- MySQL 案例实战--MySQL数据库 存储过程 存储函数
MySQL数据库 存储过程 & 存储函数 前言 一.什么是存储过程 & 存储函数 二.存储过程的创建和调用 三.存储函数的创建和调用 前言 本环境是基于 Centos 7.8 系统构建 ...
- MySQL的存储过程和函数简单写法
什么是存储过程 简单的说,就是一组SQL语句集,功能强大,可以实现一些比较复杂的逻辑功能,类似于JAVA语言中的方法: ps:存储过程跟触发器有点类似,都是一组SQL集,但是存储过程是主动调用的,且功 ...
- mysql存储过程输入参数拆分_一文看懂mysql数据库存储过程、函数、视图、触发器、表...
概述 抽空总结一下mysql的一些概念性内容,涉及存储过程.函数.视图.触发器等. 一.查看存储过程.函数.视图.触发器.表 1.存储过程 select * from mysql.proc where ...
- MySQL高级-存储过程和函数
存储过程和函数 1.存储过程和函数概述 2 创建存储过程 3 调用存储过程 4 查看存储过程 5 删除存储过程 6 语法 6.1 变量 6.2 if条件判断 6.3 传递参数 6.4 case结构 6 ...
- MySQL——创建存储过程和函数
简单地说,存储过程就是一条或多条 SQL 语句的集合,可视为批文件,但是其作用不仅限于批处理.存储程序可以分为存储过程和函数.存储过程要用 CALL 语句来调用,并且只能用输出变量返回值. 1. ...
- MySQL 基础 ———— 存储过程与函数
一.存储过程介绍 存储过程是一组预先编译好的SQL语句的集合,可理解成批处理语句.它的优点主要有以下几点: 1.提高代码的重用性: 2.简化操作: 3.减少了编译次数并且减少了和数据库服务器的连接次数 ...
- MySQL之存储过程和函数
1. 变量 系统变量: 定义:变量由系统提供,不是用户定义,属于服务器层面 查看所有变量:SELECT global | session variables; 查看满足条件的部分系统变量:SELECT ...
- Mysql使用存储过程与函数进行批量插入数据
批量插入 第一步表格 SET FOREIGN_KEY_CHECKS=0;-- ---------------------------- -- Table structure for dept -- - ...
最新文章
- MFC之按键消息(长按处理)
- 彻底理解 Spring 容器和应用上下文
- Windows7 64位 plsql developer连接oracle最终解决方法
- doxygen:代码生成文档的工具
- CSUOJ 1196- Staginner 去爬山
- jdk1.6的项目可以用1.8吗_摩托车链条的保养项目有哪些?可以用高压水枪清洗吗?...
- Eclipse安装试用Hanlp
- SAP如何自定义客户编码
- 马克龙宣布15亿欧元投资AI,DeepMind拥吻巴黎
- 算法一看就懂之「 递归 」
- maya curveflow修改
- 关于动作捕捉动画一些记录
- 计算机软件网络工程师考试试题,计算机软件水平考试《网络工程师》试题及答案(6)...
- 新手入门吉他买什么好?十年吉他老司机教你如何远离烧火棍,附上靠谱吉他品牌推荐!
- R语言-变量命名规则
- 关于任务计划指定错误:0X80041315、0X80070005拒绝访问
- 全球与中国蘑菇市场深度研究分析报告
- 《我想进大厂》之Java基础夺命连环14问
- launch 文件中remap标签的使用
- linux给网卡添加一个ip地址,linux网络配置中如何给一块网卡添加多个IP地址
热门文章
- AOP+自定义注解 实现service统一的异常信息处理
- android studio 调用c++,android studio配置opencv,调用c++,处理图像
- 获取当前系统时间c语言,使用C语言获取当前系统的时间
- linux下mtr命令,如何使用Linux mtr命令
- mysql的存储引擎详解_MySQL常见存储引擎详解
- san分布式共享文件系统_SAN网络存储共享软件全攻略剖析
- C语言实现静态顺序表
- java成员变量的初始化_Java成员变量初始化过程
- 扇区 修复 linux,linux – 如何使用hdparm来修复挂起的扇区?
- circlegan_【源码解读】cycleGAN(二) :训练