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种循环,存储过程的基本语法,ORACLE与MYSQL的存储过程/函数的使用区别,退出存储过程方法

    在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 视图,触发器,存储过程,函数,事务

    视图 视图虚拟表,是一个我们真实查询结果表,我们希望将某次查询出来的结果作为单独的一个表,就叫视图,无法对图字段内容进行增删改. --格式: 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. 可视化查询(sp_helptext)——快速查询包含指定字符串的存储过程(附源码)

    前言 在开发中,随着业务逻辑的调整,修改存储过程是必不可免的. 那怎么定位到需要修改的存储过程呢?一个一个的点开查询?存储过程少的话还行,一旦存储过程过多,这样是很浪费时间的,一个不注意还会遗漏掉. ...

  9. 13、mysql/触发器

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

  10. MySQL强化

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

随机推荐

  1. struts转发和重定向action

    1.转发(服务器端跳转) <action name="rederTo"> <result type="chain">hello</ ...

  2. Dubbo架构学习整理

    一. Dubbo诞生背景 随着互联网的发展和网站规模的扩大,系统架构也从单点的垂直结构往分布式服务架构演进,如下图所示: 单一应用架构:一个应用部署所有功能,此时简化CRUD的ORM框架是关键 垂直应 ...

  3. linux 命令 — find

    find 基本形式 find base_path base_path可以是任何目录,find会从该目录开始往下寻找 find . -print 列出当前目录下所有的文件和目录,以'\n'作为分隔符 f ...

  4. 一次Linux自动化部署尝试

    最近做一个项目临近测试,购买的是阿里云的服务器,每次部署都是手动打包war,然后上传到服务器,然后修改配置文件,不仅繁琐,而且费时,就思索着找一个一键式的部署方式,今天终于腾出时间来做这件事,记录一下 ...

  5. linux下umask的使用讲解

    最近开始学习linux ,看完马哥的linux课程关于umask的这个部分, 写这篇博客希望加深下我对umask的理解 和对umask不太清楚的博友一些帮助. 1 umask 是什么 当我们登录系统之 ...

  6. SpringBoot(8) SpringBoot过滤器Filter

    1.SpringBoot启动默认加载的Filter characterEncodingFilter hiddenHttpMethodFilter httpPutFormContentFilter re ...

  7. 第一册:lesson thirty nine.

    原文: Don't drop it! A:What are you going to do with that vase,Penny? B:I am going to put it on the ta ...

  8. lambda List实现某列去重的解决方案采用扩展方法

    public class CommonEqualityComparer<T, V> : IEqualityComparer<T> { private Func<T, V& ...

  9. [nodejs] nodejs开发个人博客(四)数据模型

    数据库模型 /model/db.js 数据库操作类,完成链接数据库和数据库的增删查改 查询表 /*查询*/ select:function(tableName,callback,where,field ...

  10. java连接MySQL数据库的方式

    Java连接数据库的几种方法 *说明 1.以MySQL数据库为例 2.分为四个步骤: 建立数据库连接, 向数据库中提交sql 处理数据库返回的结果 关闭数据库连接 一:JDBC 1.建立数据库连接 只 ...