sql基础之存储过程
来源:互联网 发布:淘宝店铺营销 编辑:程序博客网 时间:2024/05/20 02:25
网上有个比较通俗易懂的理解:存储过程就是预先定义好的SQL语句,然后存储起来,等你用的时候再把自己所需要的匹配的SQL语句用Execute(即exec)调用就行!
使用存储过程的优势:
1.性能高:一条SQL语句可以被多个地方使用,这样进行复杂的操作时(比如多张表连表查询)可将那些复杂的操作用存储过程先封装起来然后进行查询!
2.高速并减少网络流量:只在创造时进行编译,以后每次执行都不需要重新编译,这与一般的SQL语句(一般的SQL语句每执行一次就编译一次)相比就速度加快了很多!
3.安全:可以指定只有某用户才可以进行访问!
创建存储过程:CREATE PROCEDURE 存储过程名形参表AS 存储过程体
执行存储过程:EXECUTE 存储过程名 实参表
删除存储过程:DROP PROCEDURE 存储过程名
create table student1(/*创建表student1*/ Sid int identity(1,1),/*自增1*/ Sno varchar(50) primary key,/*主键*/ Sname varchar(50), Sage int, Ssex varchar(5) )运行结果如下:
/*无参数存储过程之查询所有数据*/ create proc stu1 as begin /*与end成对出现,也可以成对省略不写*/ select * from student1 end go exec stu1/*执行语句查询*/
/*有参数的存数过程*/ create proc stu2 @Sname varchar(150) /*声明全局变量*/ as select *from student1 where student1.Sname=@Sname go exec stu2 '王刚' /*调用stu2 这个存储过程并执行*/ go
/*有参数的存数过程之内部设定用户名查询用户信息*/ create proc stu3 @Sname varchar(50)='李泽'/*声明全局变量并赋值即内部设置默认值*/ as select * from student1 where Sname=@Sname-- select * from student1 where student1.Sname=@Sname go exec stu3
drop proc stu3/*删除存储过程stu3*/
/*局部变量*/ create proc stu4 as declare @Sname varchar(50)/*声明局部变量*/ set @Sname ='张明'select * from student1 where Sname=@Snamegoexec stu4
/*存储过程根据条件用户学号查询用户年龄 */create proc stu5@Sno varchar(50)as declare @Sage varchar(50)set @Sage=(select Sage from student1 where Sno=@Sno)--set @Sage=(select Sage from student1 s where s.Sno=@Sno)select @Sagegoexec stu5 '06'
/*新增用户信息*/ create proc stu6 @Sno varchar(50), @Sname varchar(50), @Sage int, @Ssex varchar(5) as begin insert into student1 (Sno,Sname,Sage,Ssex) values (@Sno,@Sname,@Sage,@Ssex) end go exec stu6 '07','陈浩','26','男' go /*存储过程根条件(此例是学号)查询用户存在性*/create proc stu7 @sno varchar(50), @result varchar(8) output --输出参数 as begin if (select COUNT(1) from student1 where Sno=@sno)>0 -- if exists (select Sno from student1 s where s.Sno=@Sno) set @result='存在!' else set @result='不存在!' end go declare @result varchar(8) exec stu7'09',@result output print @result Go
结果:不存在
阅读全文
1 0
- sql基础之存储过程
- pl*sql 基础(二)之存储过程
- SQL Server基础之存储过程
- SQL Server基础之存储过程
- SQL Server基础之存储过程
- SQL Server基础之存储过程
- SQL Server基础之存储过程
- SQL Server基础之存储过程
- SQL基础--存储过程
- sql 存储过程基础
- SQL之存储过程
- SQL之存储过程
- SQL之存储过程
- SQL之存储过程
- PL/SQL程序设计之存储过程(基础篇)
- SQL Server基础之存储过程(清晰使用)
- sql存储过程基础语法
- sql server存储过程基础
- 【连接数据库】PHP7的连接数据库的三种方法【原创】
- 如何用Maven构建一个project(二)—创建Web项目
- 【Python】power
- 进度条下方显示进度Tag
- Tomcat下运行web项目出现Cannot load JDBC driver class 'oracle.jdbc.driver.OracleDriver'
- sql基础之存储过程
- Retrofit(OKHttp)多BaseUrl情况下url实时自动替换完美解决方法
- HDOJ-2222 (AC自动机模板)
- Android 实现某控件旋转(中心点旋转)
- Python中的axis=0,axis=1
- 公司开发者账号申请(2017最新版)
- SpringCloud微服务系列(1): 创建Eureka服务注册中心
- VS中遇到 _WIN32_WINNT not defined
- Linux中,wget下载卡死的问题解决方案