mysql学习笔记---存储过程和函数①
创建表格books,price;
b_id | bname | author | b_date |
01 | 大江东去 | 阿耐 | 2019-01-01 |
02 | 解忧百货店 | 东野圭吾 | 2012-03-28 |
b_id | b_price |
01 | 100 |
02 | 50 |
#b_date:出版时间
#notes:若要设置存储过程或自定义函数,首先运行以下语句,为了不发生执行错误
set global log_bin_trust_function_creators=TRUE;
问题:
根据books数据,输入作者名,得到作者的书的价格?(假定一个作者一本书的情况)
分别用存储过程以及自定义函数写
解答:
①用存储过程写
思路:
存储过程:首先先把每一个查询语句即步骤写出来,再做封装,定义存储字段
步骤1:输入作者名那就是表books的author,例如阿耐,得出b_id=01
步骤1语句:select b_id from books where author="作者名";.
步骤2:根据步骤1得出的b_id查出价格,表price中的字段b_price,得出b_price=100;
步骤2语句:select b_price from price where b_id =01;
输入:
#注意以下创建字段一起选中运行
create procedure proc_maxprice(zuozheming varchar(10))#创建存储过程
begindeclare book_id int;#创建字段名book_id对应books表中的b_id字段名#封装步骤#步骤1的作者名替换为zuozheming,b_id 传入 book_id,使用into;select b_id into book_id from books where author=zuozheming;#步骤2,步骤1的结果b_id替换为book_id,即01替换为book_idselect b_price from price where b_id=book_id;
end;
#调用存储过程
call proc_maxprice("阿耐");
②用自定义函数写
思路:
自定义函数首先先确定函数内的参数以及它的数据类型
我们使用什么字段可以得到结果
因为函数调用是使用select语句且函数只返回一个值,所以确定查询表格及返回值
步骤:
#第一步,先确定函数内的参数,即对应books表格中的字段author
参数:作者名 数据类型
#第二步,除第一步需要的字段,还需要查询表的其他字段,即books表格中的b_id,price表的b_price,这里叫做定义变量
变量:书id 数据类型:int 价格 数据类型:int
#第三步,确定调用函数时,语句中的查询表以及返回值以及数据类型
#查询表,因为是根据作者名得到价格,所以没有查询表。所以语句为
select func_get_price() ;
returns int
return 价格
#注意以下创建字段一起选中运行
create function func_get_price(zuozheming varchar(10))#创建自定义函数
returns int#返回值的类型
begindeclare book_price int;declare book_id int;select b_id into book_id from books where author=zuozheming;select b_price into book_price from price where b_id=book_id;return book_price;#函数返回值只有一个
end;
#调用函数
select func_get_price("阿耐");
可创建表,自行练习,代码如下
#创建表books并写入数据
create table books(b_id int,bname varchar(10),author varchar(10),b_date date);
insert into books values
(01,"大江东去","阿耐","2019-01-01"),
(02,"解忧百货店","东野圭吾","2012-03-28");
#创建表price并写入数据
create table price(b_id int,b_price int);
insert into price values
(01,100),
(02,50);
mysql学习笔记---存储过程和函数①相关推荐
- mysql学习笔记12 其他函数
1.概述: 举例: 查询用户 mysql> select user(); +--------------------+ | user() | +--------------------+ | r ...
- MySQL学习笔记(2)——存储过程与存储函数
MySQL学习笔记(2)--存储过程与存储函数 文章目录 MySQL学习笔记(2)--存储过程与存储函数 一.存储过程 1.概念:预先编译好的sql语句的集合,理解成批处理语句 2.好处: 3.语法: ...
- MySQL 学习笔记-第三篇-索引、存储过程和函数、视图、触发器
目录 1 索引 1.1 索引简介 1.2 创建索引 1.3 删除索引 1.4 MySQL 8.0 的新特性 1 -支持降序索引 1.5 MySQL 8.0 的新特性 2 -统计直方图 2 存储过程和函 ...
- 小白终是踏上了这条不归路----小文的mysql学习笔记(22)--------函数
** 小白终是踏上了这条不归路----小文的mysql学习笔记(1) 小白终是踏上了这条不归路----小文的mysql学习笔记(2)----条件查询 小白终是踏上了这条不归路----小文的mysql学 ...
- MYSQL学习笔记三:日期和时间函数
MYSQL学习笔记三:日期和时间函数 1. 获取当前日期的函数和获取当前时间的函数 /*获取当前日期的函数和获取当前时间的函数.将日期以'YYYY-MM-DD'或者'YYYYMMDD'格式返回 */ ...
- MySQL学习记录 (五) ----- 存储函数、存储过程和触发器
相关文章: <MySQL学习记录 (一) ----- 有关数据库的基本概念和MySQL常用命令> <MySQL学习记录 (二) ----- SQL数据查询语句(DQL)> &l ...
- MySQL学习笔记—自定义函数
MySQL学习笔记-自定义函数 注释语法: MySQL服务器支持3种注释风格: 从'#'字符从行尾. 从'– '序列到行尾.请注意'– '(双破折号)注释风格要求第2个破折号后面至少跟一个空格符(例如 ...
- MySQL学习笔记(四)——分组函数,分组查询,连接查询
MySQL学习笔记(四)--分组函数,分组查询,连接查询 作者:就叫易易好了 日期:2020/11/18 一.分组函数 功能:用作统计使用,又称为聚合函数或统计函数 分类: sum函数 avg函数 m ...
- 【mysql学习笔记整理】
/*mysql学习笔记整理*/ /*常用的数据库操作对象*/ #库的操作 #创建 #数据库的创建 USE mysql; CREATE DATABASE db_x; #删除 #删除数据库 DROP DA ...
最新文章
- c++输出数据的二进制表示形式
- java set spliterator_Java TreeSet spliterator()方法
- react-template 包含客户端,服务端渲染完整示例
- jsp连接mysql数据库代码_JSP连接MySQL数据库代码
- jquery插件之thickbox
- switch字符串jdk_JDK 12 Early Access Build 12中的原始字符串文字支持
- JS线程与事件循环解析
- 第七章 二叉搜索树 (d2)AVL树:插入
- Hibernate组件作为Map索引(四)
- NLP领域最优秀的8个预训练模型(附开源地址)
- LINGO编程简介与实例
- 财务人员福音,财务收支报告模板
- 自己电脑配置Oracle WebLogic Server
- Android11 使用NTP同步时间
- WWW 2022 | 搜索广告CVR延迟反馈建模DEFUSE
- postman设置前置条件
- 「 WEB测试工程师 」岗位一面总结
- 联通物联卡为什么没有网络_物联网卡显示3g 联通物联网
- db9接口(db9接口详细接线图)
- Opencv之图像矩(晦涩难懂,用到再看吧)