while 循环,存储过程

时间:2021-09-23 08:55:47

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 循环,存储过程的更多相关文章

  1. MySQL存储过程中的3种循环&comma;存储过程的基本语法&comma;ORACLE与MYSQL的存储过程&sol;函数的使用区别,退出存储过程方法

    在MySQL存储过程的语句中有三个标准的循环方式:WHILE循环,LOOP循环以及REPEAT循环.还有一种非标准的循环方式:GOTO,不过这种循环方式最好别用,很容易引起程序的混乱,在这里就不错具体 ...

  2. MYSQL 简单的循环存储过程

    BEGIN ; ; DO DO ); ; ) THEN ; END IF; END WHILE; ; ; END WHILE; END

  3. mysql for循环存储过程

    DROP PROCEDURE IF EXISTS test_insert; DELIMITER ;; CREATE PROCEDURE test_insert () BEGIN DECLARE i i ...

  4. MySql 存储过程、触发器和权限问题

    存储过程 1.1 什么是存储过程 存储过程,带有逻辑的sql语句 之前的sql没有条件判断,没有循环 存储过程带上流程控制语句(if  while) 1.2 存储过程特点 1)执行效率非常快!存储过程 ...

  5. Mysql 视图&comma;触发器&comma;存储过程&comma;函数&comma;事务

    视图 视图虚拟表,是一个我们真实查询结果表,我们希望将某次查询出来的结果作为单独的一个表,就叫视图,无法对图字段内容进行增删改. --格式: CREATE VIEW 视图名字 AS 操作; --比如: ...

  6. DB开发之oracle存储过程

    1. 存储过程格式 /* Formatted on 2011/1/17 13:20:44 (QP5 v5.115.810.9015) */ CREATE OR REPLACE procedure pr ...

  7. MySQL多表关联查询与存储过程

    --  **************关联查询(多表查询)**************** -- 需求:查询员工及其所在部门(显示员工姓名,部门名称) -- 1.1 交叉连接查询(不推荐.产生笛卡尔乘积 ...

  8. 13、mysql&sol;触发器

    1. mysql mysql基础 1)mysql存储结构: 数据库 -> 表 -> 数据   sql语句 2)管理数据库: 增加: create database 数据库 default ...

  9. MySQL强化

    大纲: 数据约束 数据库设计(表设计) 关联查询(多表查询) 存储过程 触发器 mysql权限问题 1 数据约束 1.1 什么是数据约束 对用户操作表的数据进行约束. 1.2 约束种类 1.2.1 默 ...

  10. mysql简单练习

    数据库入门 2.1 引入 数据保存到内存: 优点: 1)读写非常快 缺点: 1)程序关闭导致数据丢失 数据保存到文件: 优点: 1)数据可以永久保存 缺点: 1)频繁地IO操作,效率不高! 2)数据管 ...

随机推荐

  1. Xamarin&period;Android之MvvmCross

    欢迎大家加入以下开源社区 Xamarin-Cn:https://github.com/Xamarin-Cn Mvvmcross-Cn:https://github.com/Mvvmcross-Cn  ...

  2. UIButton&lpar;改变Title和image位置&rpar;

    UIButton *btn = [[UIButton alloc] init]; [btn setFrame:frame]; [btn setTitleColor:titleColor forStat ...

  3. 讲解Python中的递归函数

    本文的最重要的收获在于:尾递归是指,在函数返回的时候,调用自身本身,并且,return语句不能包含表达式. 在函数内部,可以调用其他函数.如果一个函数在内部调用自身本身,这个函数就是递归函数. 举个例 ...

  4. 使用puppet

    首先配置一个默认文件 只是首次创建的时候才需要重启,后期不需要重启! [root@master manifests]# vim /etc/puppet/manifests/site.pp node d ...

  5. java的3大特性

    java的3大特性 1.继承: * 继承是从已有类得到继承信息创建新类的过程. * 提供继承信息的类被称为父类(超类.基类):得到继承信息的类被称为子类(派生类). * 继承让变化中的软件系统有定的延 ...

  6. java socket 基础操作

    服务端: public class Server { public static void main(String[] args) throws Exception { //1.创建一个服务器端Soc ...

  7. Python函数定义、文件操作(读写、修改)

    date:2018421 day3 一.函数定义 def  函数名(首字母大写) 增加程序可读性 #直接写函数名即可调用函数 #参数 ①.形参 ②.实参 ③.缺省参数 如果有默认值,调用的时候没有传递 ...

  8. 爬虫--Scrapy-CrawlSpider&amp&semi;基于CrawlSpide的分布式爬虫

    CrawlSpider 提问:如果想要通过爬虫程序去爬取”糗百“全站数据新闻数据的话,有几种实现方法? 方法一:基于Scrapy框架中的Spider的递归爬取进行实现(Request模块递归回调par ...

  9. stark组件之搜索【模仿Django的admin】

    一.先看下django的admin是如何做搜索功能的 配置一个search_fields的列表就可以实现搜索的功能 class testbook(admin.ModelAdmin): # 第一步,定义 ...

  10. linux命令(43):cal命令

    cal命令可以用来显示公历(阳历)日历.公历是现在国际通用的历法,又称格列历,通称阳历.“阳历”又名“太阳历”,系以地球绕行太阳一周为一年,为西方各国所通用,故又名“西历”. 1.命令格式: cal  ...