while 循环,存储过程
1、while 循环
declare @ss int
set @ss=2
while @ss<10
begin
set @ss=@ss+1
print 'HELLO'+convert(char(10),@ss)
if @ss=7
break
end
declare @sss int
set @sss=2
while @sss<10
begin
set @sss=@sss+1
if @sss=7
continue
print 'HELLO'+convert(char(10),@sss)
end
--查询总分最高的学生的语文教师的所有信息
select*from teacher where tcode=
(select yujiao from student where xcode=
(select top 1 fcode from score group by fcode order by SUM(shufen+yufen+yingfen)desc))
2、存储过程
① 没有参数,没有返回值
--利用存储过程查找语文教师张晓华所教课程的学生的分数,
--过80的算优秀,优秀人数超过3个人即为【教师评测达标】
--若不到三个人,【不达标】
create proc x
as
declare @count decimal(18,2)
select @count=COUNT(*) from score where fcode
in(select xcode from student where yujiao=(select tcode from teacher where name='邓凯'))and yufen>80
if @count>=3
print '教师测评达标'
else
print '不达标'
go
exec x--执行
② 有参数 ,没有返回值
--查看所输入编号的学生是否能够结业,两门以上及格即可结业
--三门都及格,【优秀】
--两门及格,【结业】
--一门及格,【不结业】
--三门都不及格,【请重修】
alter proc xinproc
@shu int
as
declare @shufen decimal(18,2),@yufen decimal(18,2),@yingfen decimal(18,2)
select @shufen=shufen,@yufen=yufen,@yingfen=yingfen from score where fcode=@shu
declare @sum int
set @sum=0
if @shufen>=60
set @sum+=1
if @yufen>=60
set @sum+=1
if @yingfen>=60
set @sum+=1
if @sum=3
print '优秀'
if @sum=2
print '及格'
if @sum=1
print '不及格'
if @sum=0
print '重修'
go
exec xinproc 2
③ 有一个参数,有返回值
--输入一个学生的学号,想要经过存储过程之后得到在这个学生的总分
create proc firstproc1
@shu int
as
declare @sum decimal(18,2)
select @sum=SUM(shufen+yufen+yingfen)from score where fcode=@shu
return @sum
go
declare @fan decimal(18,2)
exec @fan=firstproc1 2 --定义一个变量接收
print @fan
④有两个参数,有返回值
create proc twelveproc
@one int,
@two int
as
declare @sum int
set @sum = @one +@two
return @sum
go
--执行
declare @fanhuizonghe int
exec @fanhuizonghe = twelveproc 2,4
print @fanhuizonghe
实例:
①
--存储过程练习:输入一个数,求1~n的和
alter proc sec
@n int
as
declare @sum int,@i int
set @sum=0
set @i=1
while @i<=@n
begin
set @sum=@sum+@i
set @i=@i+1
end
return @sum
go
declare @fan int
exec @fan=sec 4
print @fan
②
--存储过程练习:输入一个数求这个1!+2!+...+n!的阶乘
create proc m
@n int
as
declare @sum int,@jie int,@i int
set @sum=0
set @jie=1
set @i=1
while @i<=@n
begin
set @jie=@jie*@i
set @sum=@sum+@jie
set @i=@i+1
end
return @sum
go
declare @fan int
exec @fan=m 3
print @fan
while 循环,存储过程的更多相关文章
- MySQL存储过程中的3种循环,存储过程的基本语法,ORACLE与MYSQL的存储过程/函数的使用区别,退出存储过程方法
在MySQL存储过程的语句中有三个标准的循环方式:WHILE循环,LOOP循环以及REPEAT循环.还有一种非标准的循环方式:GOTO,不过这种循环方式最好别用,很容易引起程序的混乱,在这里就不错具体 ...
- MYSQL 简单的循环存储过程
BEGIN ; ; DO DO ); ; ) THEN ; END IF; END WHILE; ; ; END WHILE; END
- mysql for循环存储过程
DROP PROCEDURE IF EXISTS test_insert; DELIMITER ;; CREATE PROCEDURE test_insert () BEGIN DECLARE i i ...
- MySql 存储过程、触发器和权限问题
存储过程 1.1 什么是存储过程 存储过程,带有逻辑的sql语句 之前的sql没有条件判断,没有循环 存储过程带上流程控制语句(if while) 1.2 存储过程特点 1)执行效率非常快!存储过程 ...
- Mysql 视图,触发器,存储过程,函数,事务
视图 视图虚拟表,是一个我们真实查询结果表,我们希望将某次查询出来的结果作为单独的一个表,就叫视图,无法对图字段内容进行增删改. --格式: CREATE VIEW 视图名字 AS 操作; --比如: ...
- DB开发之oracle存储过程
1. 存储过程格式 /* Formatted on 2011/1/17 13:20:44 (QP5 v5.115.810.9015) */ CREATE OR REPLACE procedure pr ...
- MySQL多表关联查询与存储过程
-- **************关联查询(多表查询)**************** -- 需求:查询员工及其所在部门(显示员工姓名,部门名称) -- 1.1 交叉连接查询(不推荐.产生笛卡尔乘积 ...
- 可视化查询(sp_helptext)——快速查询包含指定字符串的存储过程(附源码)
前言 在开发中,随着业务逻辑的调整,修改存储过程是必不可免的. 那怎么定位到需要修改的存储过程呢?一个一个的点开查询?存储过程少的话还行,一旦存储过程过多,这样是很浪费时间的,一个不注意还会遗漏掉. ...
- 13、mysql/触发器
1. mysql mysql基础 1)mysql存储结构: 数据库 -> 表 -> 数据 sql语句 2)管理数据库: 增加: create database 数据库 default ...
- MySQL强化
大纲: 数据约束 数据库设计(表设计) 关联查询(多表查询) 存储过程 触发器 mysql权限问题 1 数据约束 1.1 什么是数据约束 对用户操作表的数据进行约束. 1.2 约束种类 1.2.1 默 ...
随机推荐
- [工具向]__申请,下载,使用百度地图api
前言 api即应用程序接口,在我们的日常开发中,我们不仅可以在开源代码仓库(,github,码云)中获得很大的帮助,在日常开发中占重要地位的另一个东西就是api,我们可以使用众多的第三方编写的优秀的a ...
- 遇到的一些Jquery,js函数
jQuery.extend() jQuery.merge():函数用于合并两个数组内容到第一个数组. <script> $(function () { ,,], [,,] ...
- 【原创】驱动卸载之DeleteService
BOOL WINAPI DeleteService( _In_ SC_HANDLE hService ); 函数作用:从SCM数据库中标志一个服务已删除 参数: 1. OpenService 或Cre ...
- 修改wampsever中MySql5.7.14默认为空的密码
①打开WAMP找中MySql控制台,提示输入密码,开始密码为空,直接按回车 ②输入[use mysql],控制台提示[Database changed] ③输入[update user set aut ...
- Spring Cloud Stream消费失败后的处理策略(四):重新入队(RabbitMQ)
应用场景 之前我们已经通过<Spring Cloud Stream消费失败后的处理策略(一):自动重试>一文介绍了Spring Cloud Stream默认的消息重试功能.本文将介绍Rab ...
- javascript小实例,实现99乘法表及隔行变色
人生短暂,废话不多说,直奔主题! 这个小实例的要求: 实现在页面中输出99乘法表.(要求:以每三行为一组,实现隔行变色(颜色为白,红,黄(也可自己定义)),鼠标滑过每一行,行背景颜色变为蓝色,鼠标离开 ...
- Python之使用Pandas库实现MySQL数据库的读写
本次分享将介绍如何在Python中使用Pandas库实现MySQL数据库的读写.首先我们需要了解点ORM方面的知识. ORM技术 对象关系映射技术,即ORM(Object-Relational ...
- SVN 安装后右键出现点击鼠标右键弹出错误提示:CrashHandler initialization error
SVN 安装后右键出现点击鼠标右键弹出错误提示:CrashHandler initialization error 原因是目标文件夹中缺少SendRpt.exe文件 解决方案:找svn是好的的同事将b ...
- 26.C++- 泛型编程之类模板(详解)
在上章25.C++- 泛型编程之函数模板(详解) 学习了后,本章继续来学习类模板 类模板介绍 和函数模板一样,将泛型思想应用于类. 编译器对类模板处理方式和函数模板相同,都是进行2次编译 类模板通 ...
- MyBatis:GeneratorConfig生成mapper以及pojo
首先我们需要导入相应的依赖 之后需要针对的配置一些数据 接着我们需要针对性的写配置文件,在根目录下写mybatis的主要配置文件 如上图我们配置了数据库连接.对应的一些pojo.mapper.java ...