while 循环,存储过程

1、while 循环

declare @ss int
set @ss=2
while @ss<10
begin
set @[email protected]+1
print ‘HELLO‘+convert(char(10),@ss)
if @ss=7
break
end

declare @sss int
set @sss=2
while @sss<10
begin
set @[email protected]+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 [email protected]
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 [email protected]
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 [email protected]
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<[email protected]
begin
set @[email protected][email protected]
set @[email protected]+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<[email protected]
begin
set @[email protected]*@i
set @[email protected][email protected]
set @[email protected]+1
end
return @sum
go
declare @fan int
exec @fan=m 3
print @fan

时间: 2024-12-18 11:01:53

while 循环,存储过程的相关文章

存储过程和触发器

存储过程 5.1 什么是存储过程 存储过程,带有逻辑的sql语句 之前的sql没有条件判断,没有循环 存储过程带上流程控制语句(if  while) 5.2 存储过程特点 1)执行效率非常快!存储过程是在数据库的服务器端执行的!!! 2)移植性很差!不同数据库的存储过程是不能移植. 5.3 存储过程语法 -- 创建存储过程 DELIMITER $       -- 声明存储过程的结束符 CREATE PROCEDURE pro_test()           --存储过程名称(参数列表) BE

mysql-(五)-存储过程

5.1什么是存储过程 带有逻辑的sql语句   之前的sql没有条件判断,没有循环   存储过程带上流程控制语句(if while) 5.2存储过程的特点 1) 执行效率非常快!存储过程在数据库服务端执行 2)  移值性很差,不同数据库不能一直 语法: DELIMITER $ --声明结束符号 CREATE PROCEDURE pro_test() BEGIN --可写多个sql语句 SELECT × FROM employee; END $ -- 执行存储过程 CALL pro_test();

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

1.多表关联查询 --  **************关联查询(多表查询)**************** -- 需求:查询员工及其所在部门(显示员工姓名,部门名称) -- 1.1 交叉连接查询(不推荐.产生笛卡尔乘积现象:4 * 4=16,有些是重复记录) SELECT empName,deptName FROM employee,dept; -- 需求:查询员工及其所在部门(显示员工姓名,部门名称) -- 多表查询规则:1)确定查询哪些表   2)确定查询哪些字段   3)表与表之间连接条件

从oracle数据库导出数据(表结构,表数据,视图,存储过程,序列)

package com.ahzysoft.export; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.PrintStream; import java.sql.Connection; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java

DB开发之oracle存储过程

1. 存储过程格式 /* Formatted on 2011/1/17 13:20:44 (QP5 v5.115.810.9015) */ CREATE OR REPLACE procedure proc_trade( v_tradeid in number,                        --交易id v_third_ip in varchar2,                     --第三方ip v_third_time in date ,               

数据库 加强篇(3)

4 关联查询(多表查询) --  **************二.关联查询(多表查询)****************---- -- 需求:查询员工及其所在部门(显示员工姓名,部门名称) -- 2.1 交叉连接查询(不推荐.产生笛卡尔乘积现象:4 * 4=16,有些是重复记录) SELECT empName,deptName FROM employee,dept; -- 需求:查询员工及其所在部门(显示员工姓名,部门名称) -- 多表查询规则:1)确定查询哪些表   2)确定哪些哪些字段   3

mysql基础itcast笔记

1. 课程回顾 mysql基础 1)mysql存储结构: 数据库 -> 表 -> 数据   sql语句 2)管理数据库: 增加: create database 数据库 default character utf8; 删除: drop database 数据库; 修改: alter database 数据库 default character gbk; 查询: show databases / show create database 数据库; 3) 管理表: 选择数据库:use 数据库; 增

MySQL基础2

1. 课程回顾mysql基础 1)mysql存储结构: 数据库 -> 表 -> 数据 sql语句 2)管理数据库: 增加: create database 数据库 default character utf8; 删除: drop database 数据库; 修改: alter database 数据库 default character gbk; 查询: show databases / show create database 数据库; 3) 管理表: 选择数据库:use 数据库; 增加:

SQL加强

数据约束 2.1什么数据约束 对用户操作表的数据进行约束 2.2 默认值 作用: 当用户对使用默认值的字段不插入值的时候,就使用默认值. 注意: 1)对默认值字段插入null是可以的. 2)对默认值字段可以插入非null – 1.1 默认值 CREATE TABLE student( id INT, NAME VARCHAR(20), address VARCHAR(20) DEFAULT '广州天河' – 默认值 ) DROP TABLE student; – 当字段没有插入值的时候,mysq

【MySQL】存储过程、游标、循环简单实例

有时候仅凭 sql 语句可能达不到想要的数据操作目的,有可能需要写一些方法体,通过循环判断等操作最终达到目的.那么在数据库里实现这种方法体就需要存储过程了,个人觉得一个带注释的简单实例可以简单粗暴地解决大部分问题,当然要深入学习了解的话还是要看教程文档了,话不多说,上码: [sql] view plain copy create procedure my_procedure() -- 创建存储过程 begin -- 开始存储过程 declare my_id varchar(32); -- 自定义