创建表格books,price;

books
b_id   bname author b_date
01 大江东去 阿耐 2019-01-01
02 解忧百货店 东野圭吾 2012-03-28
price
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学习笔记---存储过程和函数①相关推荐

  1. mysql学习笔记12 其他函数

    1.概述: 举例: 查询用户 mysql> select user(); +--------------------+ | user() | +--------------------+ | r ...

  2. MySQL学习笔记(2)——存储过程与存储函数

    MySQL学习笔记(2)--存储过程与存储函数 文章目录 MySQL学习笔记(2)--存储过程与存储函数 一.存储过程 1.概念:预先编译好的sql语句的集合,理解成批处理语句 2.好处: 3.语法: ...

  3. MySQL 学习笔记-第三篇-索引、存储过程和函数、视图、触发器

    目录 1 索引 1.1 索引简介 1.2 创建索引 1.3 删除索引 1.4 MySQL 8.0 的新特性 1 -支持降序索引 1.5 MySQL 8.0 的新特性 2 -统计直方图 2 存储过程和函 ...

  4. 小白终是踏上了这条不归路----小文的mysql学习笔记(22)--------函数

    ** 小白终是踏上了这条不归路----小文的mysql学习笔记(1) 小白终是踏上了这条不归路----小文的mysql学习笔记(2)----条件查询 小白终是踏上了这条不归路----小文的mysql学 ...

  5. MYSQL学习笔记三:日期和时间函数

    MYSQL学习笔记三:日期和时间函数 1. 获取当前日期的函数和获取当前时间的函数 /*获取当前日期的函数和获取当前时间的函数.将日期以'YYYY-MM-DD'或者'YYYYMMDD'格式返回 */ ...

  6. MySQL学习记录 (五) ----- 存储函数、存储过程和触发器

    相关文章: <MySQL学习记录 (一) ----- 有关数据库的基本概念和MySQL常用命令> <MySQL学习记录 (二) ----- SQL数据查询语句(DQL)> &l ...

  7. MySQL学习笔记—自定义函数

    MySQL学习笔记-自定义函数 注释语法: MySQL服务器支持3种注释风格: 从'#'字符从行尾. 从'– '序列到行尾.请注意'– '(双破折号)注释风格要求第2个破折号后面至少跟一个空格符(例如 ...

  8. MySQL学习笔记(四)——分组函数,分组查询,连接查询

    MySQL学习笔记(四)--分组函数,分组查询,连接查询 作者:就叫易易好了 日期:2020/11/18 一.分组函数 功能:用作统计使用,又称为聚合函数或统计函数 分类: sum函数 avg函数 m ...

  9. 【mysql学习笔记整理】

    /*mysql学习笔记整理*/ /*常用的数据库操作对象*/ #库的操作 #创建 #数据库的创建 USE mysql; CREATE DATABASE db_x; #删除 #删除数据库 DROP DA ...

最新文章

  1. c++输出数据的二进制表示形式
  2. java set spliterator_Java TreeSet spliterator()方法
  3. react-template 包含客户端,服务端渲染完整示例
  4. jsp连接mysql数据库代码_JSP连接MySQL数据库代码
  5. jquery插件之thickbox
  6. switch字符串jdk_JDK 12 Early Access Build 12中的原始字符串文字支持
  7. JS线程与事件循环解析
  8. 第七章 二叉搜索树 (d2)AVL树:插入
  9. Hibernate组件作为Map索引(四)
  10. NLP领域最优秀的8个预训练模型(附开源地址)
  11. LINGO编程简介与实例
  12. 财务人员福音,财务收支报告模板
  13. 自己电脑配置Oracle WebLogic Server
  14. Android11 使用NTP同步时间
  15. WWW 2022 | 搜索广告CVR延迟反馈建模DEFUSE
  16. postman设置前置条件
  17. 「 WEB测试工程师 」岗位一面总结
  18. 联通物联卡为什么没有网络_物联网卡显示3g 联通物联网
  19. db9接口(db9接口详细接线图)
  20. Opencv之图像矩(晦涩难懂,用到再看吧)

热门文章

  1. 【Pygame小游戏】一发超人:弓箭手佛系射鸟休闲小游戏,你能射中几只?(源码白嫖)
  2. Dream-hacking 造梦工程与脑波艺术
  3. python生成曼德勃罗分形图形
  4. springboot配置打印日志文件
  5. 经典日内策略——空中花园(附源码)
  6. 运行时绘制Gizmo——关于unity3D的GL图像库的使用(非常详细)
  7. 美颜的奥秘——磨皮底层原理
  8. opencv——感兴趣区域(ROI)的分析和选取[详细总结]
  9. 哥大五年CV岁月:只有开心,才能做出有影响力的工作
  10. 2021-2027全球与中国猫罐头市场现状及未来发展趋势