MySql编写一个存储过程?

编写一个存储过程。现有数据表books(cBookID char(10),vBookName varchar(100),mSalePrice decimal, siQuantity smallint)。现在需要输入一个价格变量price,找到离该价格最接近的价格和对应书籍,将找到的价格赋值给price。存储过程声明如下:
create procedure MYPROC(inout price decimal, out bookname varchar(100))

1、delimiter // ,声明分隔符:DELIMITER是分割符的意思,因为MySQL默认以";"为分隔符,如果我们没有声明分割符,那么编译器会把存储过程当成SQL语句进行处理,则存储过程的编译过程会报错,所以要事先用DELIMITER关键字申明当前段分隔符,这样MySQL才会将";"当做存储过程中的代码,不会执行这些代码(这里如果不懂的话,你可以通过试错的方法来理解)。
2、编写存储过程的格式:CREATE PROCEDURE([[IN |OUT |INOUT ]参数名数据类形...])
例子:
  1)create procedure proc1(out s int) // 只有输出
  2)create procedure proc2(in p_in bigint) // 只有输入
  3)create procedure proc15() // 没有输入与输出
  4)create procedure demo_multi_param(in id bigint,in name varchar(32),out c int) //多输入与输出
3、过程体的开始与结束使用BEGIN与END进行标识。
4、select count (*) into s from student; // 过程体,一系列的逻辑语句,sql语句
5、delimiter ; 用完了之后要把分隔符还原。
温馨提示:内容为网友见解,仅供参考
无其他回答

mysql数据库如何创建存储过程?
1. 利用CREATE PROCEDURE语句定义无参存储过程。执行示例及结果展示:2. 通过CALL语调用无参存储过程。插入数据库表实例:3. 使用存储过程更新数据库表。循环插入数据库表实现:4. 创建包含循环的无参存储过程。有参存储过程操作:5. 创建带参数的存储过程。游标使用示例:6. 创建存储过程并运用游标处理...

MySql编写一个存储过程?
1、delimiter \/\/ ,声明分隔符:DELIMITER是分割符的意思,因为MySQL默认以";"为分隔符,如果我们没有声明分割符,那么编译器会把存储过程当成SQL语句进行处理,则存储过程的编译过程会报错,所以要事先用DELIMITER关键字申明当前段分隔符,这样MySQL才会将";"当做存储过程中的代码,不会执行这些代码(这里...

mysql存储过程怎么写
MySQL 存储过程支持三种类型的参数,即输入参数、输出参数和输入\/输出参数,分别用 IN、OUT 和 INOUT 三个关键字标识。其中,输入参数可以传递给一个存储过程,输出参数用于存储过程需要返回一个操作结果的情形,而输入\/输出参数既可以充当输入参数也可以充当输出参数。需要注意的是,参数的取名不要与数据表...

【MYSQL】存储过程 循环插入数据
接下来,编写循环插入的核心代码。只需将代码段中的表名和字段名替换为你实际需要的,例如设置一个简单的WHILE循环,如'i'从1开始,当'i'小于或等于2时,循环执行两次,如:WHILE (i<=2)。完成后,保存你的存储过程。在右侧操作栏,单击运行按钮,即可执行预设的循环插入操作。这样,你就可以快速生...

mysql数据库存储过程怎么写
创建存储过程 mysql> delimiter $ -- delimiter $是设置 $为命令终止符号,代替默认的分号,因为分号有其他用处.mysql> create procedure sp_test(IN pi_id int, OUT po_name varchar(10))-> begin -> select * from test.tb_test;-> select tb_test.name into po_name from test.tb_test ...

mysql存储过程怎么把一个表的数据取模分给不同的表?
取模操作在数学中指的是计算两个整数相除后的余数。在MySQL中,取模运算使用%符号实现,如11 % 4 的结果为3,表示11除以4的余数是3。此运算同样适用于浮点数,但只计算整数部分的余数。要将一个表的数据按特定条件进行取模并分发到不同的表中,可编写存储过程实现此功能。以将数据按照id取模分配...

关于mysql存储过程
说明一点:tid编号是连续的,如(1,2,3,4···)存储过程如下,测试通过:create proc my_search beg_id int ,end_id int as declare @names varchar(200),bcp varchar(8000)if(@beg_id<@end_id)begin while @beg_id<=@end_id begin select @names=subject from mytb where tid=@...

在MySQL中创建带有IN和OUT参数的存储过程的方法
MySQL教程4 MySQL8运算符、函数、存储过程及新增数据类型 17.之创建带有IN和OUT参数的存储过程 学习猿地

mysql如何创建存储过程?
1用mysql客户端登入2 选择数据库 mysql>use test3 查询当前数据库有哪些存储过程 mysql>show procedure status where Db='test'4 创建一个简单的存储过程 mysql>create procedure hi() select 'hello';5 存储过程创建完毕,看怎么调用它 mysql>call hi();显示结果 mysql> call hi(); +---+ | hello |...

创建存储过程sql语句
存储过程可以没有参数(此时存储过程的名称后仍需加上一对括号),也可以有1个或多个参数。MySQL存储过程支持三种类型的参数,即输入参数、输出参数和输入\/输出参数,分别用IN、OUT和INOUT三个关键字标识。其中,输入参数可以传递给一个存储过程,输出参数用于存储过程需要返回一个操作结果的情形,而输入\/...

相似回答