存储过程入门与提高[转]

Oracle 数据库存储过程:从入门到精通 本文针对初学者oracle数据库存储过程的作用和使用方法进行了解 阅读详情


什么是存储过程呢?

定义:

将常用的或很复杂的工作,预先用SQL语句写好并用一个指定的名称存储起来,那么以后要叫数据库提供与已定义好的存储过程的功能相同的服务时,只需调用execute,即可自动完成命令。

讲到这里,可能有人要问:这么说存储过程就是一堆SQL语句而已啊?

Microsoft公司为什么还要添加这个技术呢?

那么存储过程与一般的SQL语句有什么区别呢?

存储过程的优点:

1.存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般SQL语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度。

2.当对数据库进行复杂*作时(如对多个表进行Update,Insert,Query,Delete时),可将此复杂*作用存储过程封装起来与数据库提供的事务处理结合一起使用。

3.存储过程可以重复使用,可减少数据库开发人员的工作量

4.安全性高,可设定只有某此用户才具有对指定存储过程的使用权

存储过程的种类:

1.系统存储过程:以sp_开头,用来进行系统的各项设定.取得信息.相关管理工作,

如sp_help就是取得指定对象的相关信息

2.扩展存储过程以XP_开头,用来调用*作系统提供的功能

execmaster..xp_cmdshell'ping10.8.16.1'

3.用户自定义的存储过程,这是我们所指的存储过程

常用格式

Createprocedureprocedue_name

[@parameterdata_type][output]

[with]{recompile|encryption}

as

sql_statement

解释:

output:表示此参数是可传回的

with{recompile|encryption}

recompile:表示每次执行此存储过程时都重新编译一次

encryption:所创建的存储过程的内容会被加密

如:

表book的内容如下

编号书名价格

001C语言入门$30

002PowerBuilder报表开发$52

实例1:查询表Book的内容的存储过程

createprocquery_book

as

select*frombook

go

execquery_book

实例2:加入一笔记录到表book,并查询此表中所有书籍的总金额

Createprocinsert_book

@param1char(10),@param2varchar(20),@param3money,@param4moneyoutput

withencryption---------加密

as

insertbook(编号,书名,价格)Values(@param1,@param2,@param3)
select@param4=sum(价格)frombook
go

执行例子:
declare@total_pricemoney
execinsert_book'003','Delphi控件开发指南',$100,@total_price
print'总金额为'+convert(varchar,@total_price)
go
存储过程的3种传回值:
1.以Return传回整数
2.以output格式传回参数
3.Recordset
传回值的区别:
output和return都可在批次程式中用变量接收,而recordset则传回到执行批次的客户端中

实例3:设有两个表为Product,Order,其表内容如下:
Product
产品编号产品名称客户订数
001钢笔30
002毛笔50
003铅笔100
Order
产品编号客户名客户订金
001南山区$30
002罗湖区$50
003宝安区$4
请实现按编号为连接条件,将两个表连接成一个临时表,该表只含编号.产品名.客户名.订金.总金额,
总金额=订金*订数,临时表放在存储过程中

代码如下:
Createproctemp_sale
as
selecta.产品编号,a.产品名称,b.客户名,b.客户订金,a.客户订数*b.客户订金as总金额
into#temptablefromProductainnerjoinOrderbona.产品编号=b.产品编号
if@@error=0
print'Good'
else
print'Fail'
go

第19课 SQL入门之使用存储过程 什么是存储过程,为什么要使用存储过程,如何使用存储过程,以及创建和使用存储过程的基本语法 阅读详情

相关推荐

告别QWebEngineView!用QtLocation+SQLite打造离线地图应用(附完整源码)

本文详细介绍了如何利用QtLocation模块与SQLite数据库构建高性能离线地图引擎,解决传统QWebEngineView方案在网络依赖、内存占用和定制化方面的不足。通过多级缓存机制、异步写入优化和纹理压缩技术,实现工业级应用的稳定运行和高效渲染,特别适合车载导航和野外勘探等场景。

weixin_30431445的博客 363

[转]存储过程入门与提高

存储过程入门与提高http://www.knowsky.com/2951.html什么是存储过程呢?定义:      将常用的或很复杂的工作,预先用SQL语句写好并用一个指定的名称存储起来, 那么以后要叫数据库提供与已定义好的存储过程的功能相同的服务时,只需调用execute,即可自动完成命令。讲到这里,可能有人要问:这么说存储过程就是一堆SQL语句而已啊?        

launzeboy的专栏 772

深入解析SerDes系统中的时钟数据恢复电路(CDR)——基于Cadence的PLL/Bang-Bang/PS-PI架构实现与仿真

本文深入解析SerDes系统中的时钟数据恢复电路(CDR),重点探讨基于Cadence平台的PLL、Bang-Bang和PS-PI三种架构的实现与仿真。通过详细的技术对比和工程实践案例,揭示CDR在高速串行通信中的关键作用,并提供TSMC 28nm工艺下的优化策略与故障排查经验,助力工程师应对10Gbps以上SerDes设计挑战。

weixin_29202687的博客 251

存储过程入门与提高

                                        存储过程入门与提高什么是存储过程呢?定义:      将常用的或很复杂的工作,预先用SQL语句写好并用一个指定的名称存储起来, 那么以后要叫数据库提供与已定义好的存储过程的功能相同的服务时,只需调用execute,即可自动完成命令。讲到这里,可能有人要问:这么说存储过程就是一堆SQL语句而已啊?  

liaodaibo的专栏 828

FCL碰撞检测库在Windows下的编译与配置(MinGW+CMake)

本文详细介绍了在Windows系统下使用MinGW和CMake编译配置FCL碰撞检测库的完整流程。内容涵盖MinGW-w64、CMake的安装与环境配置,关键依赖库Eigen和libccd的安装,以及FCL源码的编译、安装与实战测试。重点解析了CMake配置命令中的关键参数与常见错误解决方案,旨在帮助开发者高效完成FCL在Windows平台的部署,适用于机器人、游戏物理引擎等需要精确碰撞检测的开发场景。

sunny的博客 484

【时时三省】vector cast (vcast) 集成测试使用教程

山不在高,有仙则名。水不在深,有龙则灵。----优快云 时时三省。

时时三省的博客 709

SQLSERVER存储过程入门与提高

什么是存储过程呢?定义:      将常用的或很复杂的工作,预先用SQL语句写好并用一个指定的名称存储起来, 那么以后要叫数据库提供与已定义好的存储过程的功能相同的服务时,只需调用execute,即可自动完成命令。讲到这里,可能有人要问:这么说存储过程就是一堆SQL语句而已啊?                                       Microsoft公司为什么还要添加这个技术

inshine的专栏 694

【txt文本加密】使用 cryptography 库实现加密和解密

cryptography 库是一个强大的 Python 库,用于实现加密和解密功能。它提供了各种加密算法,包括对称加密、非对称加密、哈希函数等。

📷 图像处理践行者 | 传统算法 · 深度学习 · 多模态 | 分享实战经验与技术洞见,探索从像素到智能的无限可能。 2667

存储过程入门

本文参考: Oracle Database concepts guide(11g2) By Thomas Kyte Stored Procedure Wiki 闲言:开始实习的时候才发现,虽然大学上过了数据库的课程,也算是系统的学习了数据库知识,但是偏偏就对常常听到的名词存储过程不是那么熟悉。 百度上搜索“存储过程”的教程, 虽然官方文档和书籍是最好的学习材料, 但是如果能有入门博文快速地带领新手快

萧萧的专栏 3万+

uniapp(全端兼容) - 最新详细实现支付键盘功能组件,从底部弹出数字键盘输入支付密码进行付款交互效果,自定义支付密码键盘仿微信、支付宝支付键盘,1~9密码数字键盘,电商支付(详细示例代码复制运行

uniapp,微信小程序,自定义数字键盘,输入支付密码的键盘组件,uniapp小程序如何实现从底部弹出输入支付密码自定义键盘功能,uniapp小程序密码支付键盘组件插件,自定义数字键盘输入页面,怎么封装底部弹窗自定义数字键盘用于输入支付密码,uniapp小程序仿类似电商支付密码输入模态框,uniapp微信小程序平台实现自定义支付密码键盘,uniapp 密码支付,数字键盘,安全键盘,交易键盘,交易密码,交易密码输入框,uniapp自定义支付键盘: uniapp自定义支付键盘,uniapp小程序端实现键盘输入支

✅ 精选推荐文章 2906

材料仿真软件:Materials Studio_(14).电学性质计算

设置计算参数,包括 k 点网格、交换相关泛函等。

kkchenjj的博客 1864

存储过程入门与提高.

什么是存储过程呢? 定义: 将常用的或很复杂的工作,预先用SQL语句写好并用一个指定的名称存储起来, 那么以后要叫数据库提供与已定义好的存储过程的功能相同的服务时,只需调用execute,即可自动完成命令。 讲到这里,可能有人要问:这么说存储过程就是一堆SQL语句而已啊? Microsoft公司为什么还要添加这个技术呢? 那么存储过程与一般的SQL语句有什么区别呢? 存储过程的优点: 1.存储过程

Welcome to itblog 1275

第182期 Claude Skills:深入探究Anthropic的智能体框架(一篇彻底讲透彻)

摘要: Claude Skills是Anthropic推出的智能体框架,通过连接外部工具和服务扩展Claude AI的功能,支持实时交互与任务执行。其核心架构包含技能路由器、注册表、执行引擎等模块,采用渐进式披露机制优化上下文管理。与MCP和A2A相比,Skills更注重模块化设计与Claude深度集成,通过SKILL.md文件定义可重复工作流程,兼具高效性和灵活性。开发者可创建自定义技能,遵循聚焦用户价值、安全隐私等最佳实践,实现AI能力的场景化拓展。该框架与MCP、A2A形成互补,共同推动智能体生态发展

全网120W+关注AI拉呱,专注人工智能以及科技前沿! 2134
上一篇: 存储过程
下一篇: 在Linux下搭建Web应用环境 [转]
ealpha
博客等级 码龄23年 1粉丝 52原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值