SqlServer和Oracle中一些常用的sql语句6 存储过程
- --不带参数的存储过程
- CREATE procedure proc_sql1
- as
- begin
- declare @i int
- set @i=0
- while @i<26
- begin
- print char(ascii('a')+@i)+'的ASCII码是:'+cast(ascii('a')+@i as varchar(50))
- set @i=@i+1
- end
- end
- execute proc_sql1
- --数据查询不带参数的储存过程
- create procedure proc_sql4
- as
- begin
- select * from 职工 where 姓名 like '%张%'
- select * from 仓库 where 仓库号 in(
- select 仓库号 from 职工 where 姓名 like '%张%' )
- end
- go
- execute proc_sql4
- --带有输入参数的存储过程
- create proc proc_sql5
- @x1 int,
- @x2 int,
- @x3 int
- as
- begin
- declare @max int
- if @x1>@x2
- set @max=@x1
- else
- set @max=@x2
- if @x3>@max
- set @max=@x3
- print '3个数中最大的数是:'+cast(@max as varchar(50))
- end
- execute proc_sql5 15,28,39
- --带有输入参数的查询存储过程
- create proc proc_sql7
- @mingz int,
- @maxgz int
- as
- select * from 职工 where 工资 between @mingz and @maxgz
- execute proc_sql7 1500,1800
- --带输入和输出参数的存储过程
- create proc proc_sql9
- @changkuhao varchar(50),
- @maxgz int output,
- @avggz real output
- as
- begin
- select * from 职工 where 仓库号=@changkuhao
- select @maxgz=max(工资) from 职工 where 仓库号=@changkuhao
- select @avggz=avg(工资) from 职工 where 仓库号=@changkuhao
- end
- --显示指定仓库号的职工信息及该仓库号的最大工资和平均工资
- declare @x1 int,@x2 real
- execute proc_sql9 'wh1',@x1 output,@x2 output
- select @x1 as wh1职工最大工资,@x2 as wh1职工平均工资
- ---带登陆判断功能的存储过程
- create proc proc_sql10
- @hyuser varchar(50),
- @hypwd varchar(50)
- as
- begin
- declare @msg varchar(50)
- if @hyuser='hystu1'
- begin
- if @hypwd='111'
- set @msg='用户名与密码正确,成功登录!'
- else
- set @msg='密码不正确,请重新输入!'
- end
- else if @hyuser='hystu2'
- begin
- if @hypwd='222'
- set @msg='用户名与密码正确,成功登录!'
- else
- set @msg='密码不正确,请重新输入!'
- end
- else if @hyuser='hystu3'
- begin
- if @hypwd='333'
- set @msg='用户名与密码正确,成功登录!'
- else
- set @msg='密码不正确,请重新输入!'
- end
- else
- set @msg='用户名不正确,请重新输入!'
- print @msg
- end
- execute proc_sql10 'hystu1','111'
- --带有判断条件的插入功能的存储过程
- create proc proc_sql13
- @zghao varchar(30),
- @ckhao varchar(30),
- @sname varchar(50),
- @sex varchar(10),
- @gz int
- as
- begin
- if exists(select * from 职工 where 职工号=@zghao)
- print '该职工已存在,请重新输入职工号!'
- else
- begin
- if exists(select * from 仓库 where 仓库号=@ckhao)
- begin
- insert into 职工(职工号,仓库号,姓名,性别,工资) values(@zghao,@ckhao,@sname,@sex,@gz)
- print '成功的插入一条记录'
- end
- else
- print '输入的仓库号不合法,请重新输入仓库号!'
- end
- end
- GO
- execute proc_sql13 'zg1','wh1','张平','女',1350
- execute proc_sql13 'zg42','wh11','张平','女',1350
- execute proc_sql13 'zg42','wh1','张平','女',1350
SqlServer和Oracle中一些常用的sql语句6 存储过程的更多相关文章
- SqlServer和Oracle中一些常用的sql语句9 SQL优化
--SQL查询优化 尽量避免使用or,not,distinct运算符,简化连接条件 /*Or运算符*/ use db_business go select * from 仓库 where 城市='北京 ...
- SqlServer和Oracle中一些常用的sql语句5 流程控制语句
--在sql语句中 begin...end 用来设定一个程序块 相关于c#中的{} declare @yz real,@w int --声明变量 set @w=120 --为变量赋值 if @w< ...
- SqlServer和Oracle中一些常用的sql语句10 特殊应用
--482, ORACLE / SQL SERVER --订购数量超过平均值的书籍 WITH Orders_Book AS ( SELECT Book_Name, SUM(Qty) Book_Qty ...
- SqlServer和Oracle中一些常用的sql语句3 行列转换
--217, SQL SERVER SELECT Cust_Name , MAX(CASE WHEN Order_Date ='2009-08-01' THEN AR END) "2009- ...
- SqlServer和Oracle中一些常用的sql语句7 游标
declare db_cursor4 scroll cursor for select * from 供应商 --声明游标 open db_cursor4 --打开游标 fetch first fro ...
- SqlServer和Oracle中一些常用的sql语句8 触发器和事务
--创建和执行事后触发器 --更新仓库备份表中记录时自动创建数据表且插入三条记录 create trigger db_trigger1 on 仓库备份 for update as begin if E ...
- SqlServer和Oracle中一些常用的sql语句4 局部/全局变量
--把wh1仓库号中姓名含有"平"字的职工工资在原来的基础上加288 update 职工备份 set 工资=工资+288 where 仓库号='wh1' and 姓名 like ' ...
- SqlServer 获取字符串中小写字母的sql语句
SQL字符串截取(SubString) 作用:返回第一个参数中从第二个参数指定的位置开始.第三个参数指定的长度的子字符串. 有时候我们会截取字符串中的一些特殊想要的东西,大小写字母.模号.汉字.数字等 ...
- SqlServer 查看备份文件中逻辑文件信息的Sql语句
RESTORE FILELISTONLY FROM DISK = 'D:\All\DataBase\(2013-12-18)-1.bak' 用来查看备份文件中的逻辑文件信息. 相关信息:SqlServ ...
随机推荐
- [C#参考]事件和委托的关系
前面说了委托,接下来就要说一说事件了,同时最后再说一下委托和事件的区别. 事件和委托很相似,事件就好像是被简化的针对特殊用途的委托.看下面的图: 从这张图中能看到,事件是发布者的一个成员,它不是类型. ...
- chown命令详解
chown将指定文件的拥有者改为指定的用户或组,用户可以是用户名或者用户ID:组可以是组名或者组ID:文件是以空格分开的要改变权限的文件列表,支持通配符.系统管理员经常使用chown命令,在将文件拷贝 ...
- easyui学习日记20141213
一.前言 对于页面的设计一直都不是很懂.看到easyui样式简洁大方的样子,就心里痒痒,趁这段时间工作没什么项目的同时充充电.同时给自己做个笔记吧. 首先需要下载easyui的包,有两种版本,支持GP ...
- Laravel OAuth2 (三) ---使用 services 和 facades
前言 既然要判断用户是否存在,然后创建用户,那么就要实现几个功能函数.为了方便调用,于是我尝试着写了第一个service 和 facade . 创建 Facade class Social exten ...
- 一、Linux启动过程详解
启动第一步--加载BIOS当你打开计算机电源,计算机会首先加载BIOS信息,BIOS信息是如此的重要,以至于计算机必须在最开始就找到它.这是因为BIOS中包含了CPU的相关信息.设备启动顺序信息.硬盘 ...
- KbmMW资源汇总(更新中…)
KbmMW框架是收费的,不在此提供下载,如需购买,请自行联系作者Kim Madsen. 网址资源: 官网主页:http://www.components4programmers.com/product ...
- C 语言中的变量为什么不能以数字打头
C 语言中的变量为什么不能以数字打头? C 语言中的变量为什么不能以数字打头? 不要告诉我编译原理书上有.我暂时看不懂. 除了下面的解释外, “假如变量名允许以数字开头的话,那么语法分析器在解析一个全 ...
- PHP 自学之路-----XML编程(Xpath技术,simpleXml技术)基础入门
XPAth技术 XPath的设计的核心思想,可以通过xpath迅速简介的定位到你希望查找的节点.主要目的是描述节点相对其他节点的位置,可以取得所有符合条件的节点,成为[位置路径]. Xapth主要用来 ...
- hdu4513之manacher算法
吉哥系列故事——完美队形II Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others) T ...
- 案例分析:java中substring引发的Full gc
问题定位 由于应用频繁地Full gc,就dump了内存下来用MAT分析,发现有个map占用了98%的内存,于是找到这个map private ConcurrentMap<String, Str ...