数据库存储过程

简介:

一、存储过程的优点

  1.执行速度更快 – 在数据库中保存的存储过程语句都是编译过的

  2.允许模块化程序设计 – 类似方法的复用

  3.提高系统安全性 – 防止SQL注入


  4.减少网络流通量 – 只要传输存储过程的名称

二、存储过程语法"["   里面的内容表示可选项

  create proc 存储过程名

  @参数1        数据类型 [=默认值] [output],

  @参数2        数据类型 [=默认值] [output],

  ...

  as

  SQL语句

例:无参数操作


create proc  proc_stu  //创建存储过程

  as

  select * from 学生信息

执行完后会创建一个proc_stu的存储过程

执行存储过程 exec  proc_stu

例:使用默认值参数

create proc p_employee

@departmentid varchar(10),//不带默认值

@zhiwei  varchar(20)='职员'

As 

SELECT A.员工姓名,A.性别,B.部门名称

FROM 员工信息 A,部门名称 B 

WHERE A.所在部门编号=B.部门编号 AND B.部门编号=@departmentid  AND A.所任职位=@zhiwei   //(要查看的职位)

执行 exec p_employee @departmentid='技术部',@zhiwei='经理'

wKioL1m6gIyS19SnAABwIuyuakI063.jpg-wh_50


例:使用输出参数

create proc p_sorce

@name varchar(10),

@sorce int output   //输出参数

As

SELECT B.姓名,avg[A.分数]

FROM  成绩信息  A,学生信息 B

WHERE A.学生编号=B.学号 AND B.姓名=@name

avg[]聚合函数;

执行存储过程

DECLARE @SORCE1 INT 声明一个对象;

exec  p_sorce  @name='张苗苗',@ sorce  =@SOCRCE1 OUTPUT  //OUTPUT 指定输出参数

PRINT @SORCE1 //打印结果值

wKiom1m6gNKw3bUFAAAaW3NtwJE005.jpg-wh_50

再例如:

create proc p_stu

@na varchar(10),

@sco int=10

as

select * from stu where stu.name=@na and  stu.score=@sco

go 

exec   p_stu  @na='lilu',@sco=88

wKiom1m6gO2xc8FOAAB-B406Nsk673.jpg-wh_50



本文转自 Linux_woniu 51CTO博客,原文链接:http://blog.51cto.com/linuxcgi/1965333

相关文章
|
存储 SQL 关系型数据库
【MySQL 数据库】9、存储过程
【MySQL 数据库】9、存储过程
1237 0
|
存储 SQL 数据库
数据库sql语句-----游标和存储过程
数据库sql语句-----游标和存储过程
248 1
|
存储 SQL 关系型数据库
MySql数据库---存储过程
MySql数据库---存储过程
250 5
|
存储 SQL 安全
【数据库高手的秘密武器:深度解析SQL视图与存储过程的魅力——封装复杂逻辑,实现代码高复用性的终极指南】
【8月更文挑战第31天】本文通过具体代码示例介绍 SQL 视图与存储过程的创建及应用优势。视图作为虚拟表,可简化复杂查询并提升代码可维护性;存储过程则预编译 SQL 语句,支持复杂逻辑与事务处理,增强代码复用性和安全性。通过创建视图 `high_earners` 和存储过程 `get_employee_details` 及 `update_salary` 的实例,展示了二者在实际项目中的强大功能。
277 1
|
存储 SQL JSON
【Azure Logic App】微软云逻辑应用连接到数据库,执行存储过程并转换执行结果为JSON数据
【Azure Logic App】微软云逻辑应用连接到数据库,执行存储过程并转换执行结果为JSON数据
199 0
【Azure Logic App】微软云逻辑应用连接到数据库,执行存储过程并转换执行结果为JSON数据
|
存储 SQL 数据库
触发器的设计、掌握存储过程的基本概念和创建、执行、删除方法。掌握数据库备份的方法和数据库恢复的方法。
这篇文章介绍了数据库中触发器的设计概念,包括创建、修改、删除触发器的方法,并通过实验内容教授如何使用SQL命令创建DML触发器以及如何利用触发器实现数据的完整性和自动化处理。
触发器的设计、掌握存储过程的基本概念和创建、执行、删除方法。掌握数据库备份的方法和数据库恢复的方法。
|
存储 SQL 关系型数据库
MySQL数据库进阶第四篇(视图/存储过程/触发器)
MySQL数据库进阶第四篇(视图/存储过程/触发器)
|
JSON 数据格式 Java
化繁为简的魔法:Struts 2 与 JSON 联手打造超流畅数据交换体验,让应用飞起来!
【8月更文挑战第31天】在现代 Web 开发中,JSON 成为数据交换的主流格式,以其轻量、易读和易解析的特点受到青睐。Struts 2 内置对 JSON 的支持,结合 Jackson 库可便捷实现数据传输。本文通过具体示例展示了如何在 Struts 2 中进行 JSON 数据的序列化与反序列化,并结合 AJAX 技术提升 Web 应用的响应速度和用户体验。
492 0
|
存储 SQL 数据库
|
存储 关系型数据库 MySQL
MySQL数据库——存储过程-条件处理程序(通过SQLSTATE指定具体的状态码,通过SQLSTATE的代码简写方式 NOT FOUND)
MySQL数据库——存储过程-条件处理程序(通过SQLSTATE指定具体的状态码,通过SQLSTATE的代码简写方式 NOT FOUND)
229 0
MySQL数据库——存储过程-条件处理程序(通过SQLSTATE指定具体的状态码,通过SQLSTATE的代码简写方式 NOT FOUND)