发布网友 发布时间:2022-05-02 06:02
共3个回答
懂视网 时间:2022-05-02 10:24
缺点:数据库不同,过程的代码也不同,所以,数据库如果更换,就比较麻烦。
调用过程:call 过程名[参数]
创建过程的语法:
DELIMITER $$ -- 标记过程创建的开始,作用避免系统对业务代码中的;的误解
create PROCEDURE sp_student()
begin
-- 业务代码在这里
select * from student;
end $$ -- 过程的结束
参数有三种:输入参数(in 默认)、输出参数(out)、输入输出参数(inout)
输入参数:需要把值传入到过程里面
-- 查询指定学期的课程信息(编号、课程名、课时、年级名称),如果没有输入则查询所有年级科目,否则只查询当前年级的科目信息
DELIMITER $$ create PROCEDURE sp_subjectByGradeName(in gn varchar(10) ) begin if(gn is null or gn = ‘‘) then -- if开始 select subjectNo,subjectName,classHour,gradeName from grade g inner join subject j on g.gradeid = j.gradeid; else select subjectNo,subjectName,classHour,gradeName from grade g inner join subject j on g.gradeid = j.gradeid where g.gradeName=gn; end if; -- if结束 end $$
输出参数:把过程里面的值传出,调用时就可以获取。参数前加:out
当一个过程中的参数又有输入参数,又有输出参数,建议把输出参数在前面,输入参数放在后面,方便于以后的调用。
输入输出参数:把值传入到过程中去,并在过程中又对参数进行赋值,此参数可以把过程中所赋的值传出来,在调用的位置可以获取到。参数前加: inout
stuId 参数传入了学号3,在过程中取得此学员的年龄并赋值给stuId参数,
调用后,在外部输入stuId参数的值,结果是 25.
MySQL_高级部分
标签:永久 .com ber 调用 默认 一起 排序 存储过程 存储
热心网友 时间:2022-05-02 07:32
不可以,但其实差别不大,学好了sqlserver,mysql自己看看书就可以。热心网友 时间:2022-05-02 08:50
创建表、增、删、改、查数据 这些基本的语句 在sql server和mysql是一样的. 高级部分才是不相同的 放心使用