存储过程2
来源:互联网 发布:android 数据绑定 编辑:程序博客网 时间:2024/06/06 04:33
今天老师又带我们回顾了存储过程方面的知识:
1)我们之所以要学习存储过程是因为使用存储过程可以一次性执行成批的SQL语句,不仅节省了我们的时间而且也提高了服务器的操作速度。
2)存储过程的优点:
1、批处理,减少客户和服务器之间的交流次数;
2、服务器端运行,移植性好;
3、安全要求高的行业;
4、包含流程控制结构的SQL语句的集合
3)存储过程的创建:
语法格式: create database
create table
存储函数
;---每条语句的结束
声明新的结束符(任选,避免在MySQL环境下有特殊含义)
delimiter(分隔符) $$
delimiter //
delimiter ;//
create procedure(过程) p_name(in c_name 数据类型)
注意:存储过程的主体部分,里面包含在过 程调用中必须执行的语句,以begin开始end结束。在存储过程体只有一个SQL语句时可以 省略begin_end标志。存储过程可以不加参数但名称后面的括号不可以省略,参数的不要等于列的名字。在创建存储过程前先使用deliminter命令将MYSQL语句的结束标志修改为其他符号。语法格式为: deliminter $$ ($$是用户定义的结束符)
要想恢复使用分号作为结束符语法格式为: deliminter ;
例; deliminter //
create procedure delete_student(in xh char(6))
begin
delete from xs where 学号=xh;
end //
deliminter ;
4)创建存储过程的步骤:
1、检验mysql版本
Select version()
Select @@VERSION
2、存储过程是属于数据库
Show databases;
Create database db1;
Use db1;
3、声明结束符
Delimiter //
4、创建存储过程
Create procedure p1() select “”; //
5、调用存储过程
Call p1()//
6、恢复结束符
Delimiter ;
5)存储过程的调用:
语法格式:Call 存储过程名(…);
6)、参数的应用:
IN 输入形参参数的使用set @x=3;或者select @x;
调用必须有对应的实参(类型、数量)将信息带入到存储过程
create procedure p10(IN para1 int) set @x=para1;
或create procedure p10(para1 int) set @x=para1;
call p10(18);
select @x;
用户定义变量:声明开始set @x=3;到断开连接结束不能和其他用户共享
作用域: 存储过程的局部变量:临时结果
作用范围:从声明位置开始,到end结束
语法格式 分步declare(声明) var_name type;
var_name初值是null
set var_name=值;
Declare var_name type default 值;
1) Declare v1,v2 int;
Set v1=5,v2=8;
OUT 输出形参的使用\:用一个变量(实参位置)保存存储过程中返回的结果
例:Create procedure p14(OUT para1 int)
begin
set para1=10;
end//
call p14(@x);
select @x;
select @y:=@x+1;
例如:函数 Function fun1()
{。。。。
Return 32;
}
$name=fun1();
$a=$name+1;
3、嵌套
Create procedure p15()
Begin
Declare v1 char(10) default’ ‘outer;
Begin
Declare v1 char(10) default ‘inner’;
Select v1;
End;
Select v1;
End//
三、流程控制结构
第一组:条件分支结构
IF语句
CASE 语句
语法:
IF 条件1 THEN 语句集合
【ELSEIF 条件2 THEN 语句集合】
【ELSE 语句集合】
注意:
形参中的变量如果和存储过程中的局部变量同名,会“覆盖”;
形参变量在存储过程中无大小写的要求;
例子:创建存储过程,如果参数<60分,给t1表插入数据0;否则给t1
表插入2学分;
Create procedure t1_add(para1 int)
BEGIN
IF para1>=60 THEN
Insert into t1 values(2);
ELSE
Insert into t1 values(0);
END IF;
END//
CALL t1_add(70);//
Select * from t1;//
- 分页存储过程2
- 存储过程翻页2
- 2个存储过程
- 分页存储过程2
- 存储过程-2
- SQL 存储过程(2)
- 存储过程翻页2
- 存储过程2
- 分页存储过程2
- 存储过程2
- 存储过程2
- 存储过程2
- 存储过程2
- oracle存储过程2
- 存储过程分页2
- 存储过程2
- 存储过程示例2
- 存储过程2
- mark
- 详解 C# 中的 Hashtable 类
- 关于设计的一点小结
- 【故障处理】ORA-12162: TNS:net service name is incorrectly specified
- iPhone db文件组织结构
- 存储过程2
- iPhone电话事件监听
- java正则表达式验证邮箱、IP地址、手机号码
- Ext.TabPanel
- lambda表达式
- C# 执行外部批处理(bat)文件
- 正则表达式:网页爬虫:从TXT中获取邮箱地址(获取的练习)
- mysql存储过程(下)
- 【Android笔记】Android Resourse