MySQL查询----函数查询案例分享 2023.07.11

文章介绍了如何在MySQL中创建一个名为count_sch的存储函数,用于统计sch表的记录条数,以及建立一个avg_sal的存储过程,该过程接受部门编号和职位作为输入参数,输出指定条件下的平均工资,特别地,查询了emp表中dept为30且job为销售员的平均薪资。
摘要由CSDN通过智能技术生成

一、素材

字段名	数据类型	主键	外键	非空   唯一 自增
id 	    INT	是 	 否 	  是    是 	否
name	VARCHAR(50)  否 	 否 	  是    否 	否
glass   VARCHAR(50)  否 	 否 	  是    否 	否

mysql> create table sch(
    -> id int PRIMARY KEY NOT NULL UNIQUE KEY,
    -> name varchar(50) NOT NULL,
    -> glass varchar(50) NOT NULL);
Query OK, 0 rows affected (0.01 sec)



sch 表内容
id	name		glass
1	xiaommg 	glass 1
2 	xiaojun 		glass 2

mysql> insert into sch values(1,'xiaoming','glass 1'),(2,'xiaojojun','glass 2');
Query OK, 2 rows affected (0.00 sec)
Records: 2  Duplicates: 0  Warnings: 0

二、查询要求

1、创建一个可以统计表格内记录条数的存储函数 ,函数名为count_sch()

mysql> \d /
mysql> create function count_sch() 
    -> returns int
    ->  begin 
    ->  declare i int default 0; 
    ->  select count(1) into  i from sch; 
    ->  return i; 
    ->  end/
Query OK, 0 rows affected (0.00 sec)

2、创建一个存储过程avg_sai,有3个参数,分别是deptno,job,接收平均工资,
功能查询emp表dept为30,job为销售员的平均工资。

mysql> create procedure avg_sal(in p1 int,in p2 varchar(50),out avg_salary float)
    ->  begin 
    ->  select avg(sal) into avg_salary from emp
    -> where deptno =p1 and job = p2;
    -> end/
Query OK, 0 rows affected (0.00 sec)


mysql> select @a/
+------+
| @a   |
+------+
| NULL |
+------+
1 row in set (0.00 sec)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值