【随堂练习】--查询‘李数’老师教的数学成绩大于80分的学生的信息, 并且人数大于3的话,输出达标;否则输出不达标。

存储过程 --带参数的程序代码块---代表执行命令存储在数据库中,存储代码,没有调用

1、--创建存储过程

create procedure--(可简写成proc) --+存储过程名称   -----存储过程格式

@bianliang1 --+数据类型    ---- as和存储过程名之间可以加参数形参(传递的形参)

@bianliang2 --+数据类型

as

Begin

可定义变量----临时用的形参

语句

End

2、--执行存储过程:

方法1:可编程性--存储过程--执行存储过程

默认自动的定义变量接受返回值。

【注意】不管成功还是失败,都会自带成功或失败的返回值,

返回0代表执行成功。

方法2:如何写代码执行存储过程

Exec(执行,execute) procedure

【注意】写代码同方法1的区别,是因为没有定义变量接受返回值就不会自动返回,想要得到变量结果,需要定义变量来接收存储过程才能打印。

3、--修改存储过程

Alter proc  firstproc  ------同修改表的格式

As

Select code,chinese,math,english ,name from score,student where score,student--写一句存储过程( 查询一个表)可以不写begin..end

go

Exec firstproc

4、--查询多个表必须加begin..end

create proc secondproc
as
  begin
     select *from score
     select *from student
     select *from teacher
  end
go
exec secondproc

5、--加语句的存储过程

6、--带参数的存储过程(重点)

格式:

create proc fourproc   --创建存储过程 
@name varchar(20)   --有多个变量,数据类   型后加逗号  --可加参数
as
begin                        --begin相当于大括号的左边
 declare @counts int,@kecheng varchar(20)    --定义临时变量+数据类型
 select @counts=count(*) from teacher where name=@name     --语句执行
 if @counts=0           --加入分支语句
 begin
  print '没有找到这个老师'
 end
 else
 begin
    select @kecheng=course from teacher where name=@name
    declare @count int
   if @kecheng='语文'     
    begin
     select @count=count(*) from score where stucode in (
     select code from student where chteacher=(select code from teacher where name=@name)
     ) and chiese>=80
    end
  if @kecheng='数学'
    begin
     select @count=count(*) from score where stucode in (
    select code from student where mateacher=(select code from teacher where name=@name)
    ) and math>=80
    end
  if @kecheng='英语'
    begin
     select @count=count(*) from score where stucode in (
     select code from student where enteacher=(select code from teacher where name=@name)
     ) and english>=80
  end
  if @count>=3
  begin
   print '达标'        --打印存储过程
  end
  else
  begin
   print '不达标'
  end
 end
end
go
exec fourproc @name='莫言1'

【随堂练习】

7、--使用return返回值得存储过程

【随堂练习1】

【随堂练习2】

8、--带返回值、返回参数、输入参数的存储过程

9、--删除存储过程

Drop proc  fiveproc (+存储过程名称)

【课后练习】 -- 练习题目--
/*
创建一个货物表:编号,货物名称,单位,价格,库存数量,备注
新增10条数据
之后,进货,如果已有此货,增加数量,否则,新增入数据库表中
出货,如果有人要货,判断数量是否充足,充足减库存,否则告诉不足
*/

1107SQLserver基础--语句、存储过程的更多相关文章

  1. T——SQL基础语句(定义变量,赋值,取值,分支,循环,存储过程)

    T--SQL基础语句 1.定义变量: declare @变量名 数据类型 ; declare @a int ; declare @b  nvarchar(10) ; 2.赋值: 法1:set @变量名 ...

  2. 【SQL Server】SQL Server基础之存储过程

    SQL Server基础之存储过程  阅读目录 一:存储过程概述 二:存储过程分类 三:创建存储过程 1.创建无参存储过程 2.修改存储过程 3.删除存储过程 4.重命名存储过程 5.创建带参数的存储 ...

  3. MySQL 基础语句

    MySQL 基础语句 多个知识点 ----------------------------------------------------------------------------------- ...

  4. MySQL基础语句与其在Python中的使用

    一.MySQL基础语句 $ mysql -u root -p (有密码时) $ mysql -u root     (无密码时) QUIT (or \q)  退出 查看当前所有数据库 show dat ...

  5. 【2017-03-10】T-sql基础语句及条件,高级查询

    一.T-sql基础语句 1.创建数据库:create database 数据库名  (不能中文,不能数字开头,不能符号开头) 2.删除数据库:drop database 数据库名 3.选择数据库:us ...

  6. 10-14C#基础--语句(switch....case和for...循环)

    10-14C#基础--语句(2) 一.课前作业:“跟电脑猜拳” 二.switch(定义的变量,参数值)......case.... 注:switch...case大多用于值类型的判断,这里不同于if表 ...

  7. 入门MySQL——基础语句篇

    前言:  前面几篇文章,我们介绍了MySQL的基础概念及逻辑架构.相信你现在应该有了自己的一套MySQL环境,接下来我们就可以开始练习MySQL了.本文将从MySQL最基础的语句出发,为你展示出创建及 ...

  8. SQL 数据库基础语句

    一.基础 1.说明:创建数据库CREATE DATABASE database-name 2.说明:删除数据库drop database dbname3.说明:备份sql server--- 创建备份 ...

  9. 面试题: 数据库 真实面试题已看1 操作语句 存储过程 挺好 sql语句练习 有用

    今天到某公司笔试,数据库考的比较多,但是说老实话,考的也比较基础.现在趁回忆得起来,将数据库知识简单整理如下: 一.建表指令 比如创建一个学生表student,它由学号Sno,姓名Sname,性别Ss ...

随机推荐

  1. BZOJ 4154 kd-tree dfs序 + 二维空间的区间(矩阵)更新单点查找

    一开始没思路 感觉像是一个树形dp 然而不会 然后看了一眼题解就明白了 一个点的子树 用dfs序表示肯定是一个连续的区间 并且由于有子树的距离限制 可以转化为一个深度的区间 于是每个点都会有一个在二维 ...

  2. javascript的宿主环境

    关于javascript语言,最有意思的是它必须要在一个宿主环境中运行,其中受欢迎的宿主环境当然就是浏览器了,但这并不是我们唯一的选择, javascript完全可以运行在服务器端,桌面以及富媒体环境 ...

  3. 解决:Eclipse安装Pydev插件报错: An error occurred while collecting items to be installed session context was:(profile=...

    今天在Elipse上安装Pydev插件时报错: An error occurred while collecting items to be installed session context was ...

  4. uva 10168 哥德巴赫猜想

    https://vjudge.net/problem/UVA-10168 给出一个整数n,问是否能将它化为四个素数相加的形式,如果可以的话就输出这四个数.显然n<8时是不可能的.对于大于等于8得 ...

  5. SDK中常用的工具

    Android SDK包含了各种各样的定制工具,简介如下: 一.Android模拟器(Android Emulator )它是在你的计算机上运行的一个虚拟移动设备.你可以使用模拟器来在一个实际的And ...

  6. @angular/cli项目构建--interceptor

    JWTInterceptor import {Injectable} from '@angular/core'; import {HttpEvent, HttpHandler, HttpInterce ...

  7. UVALive - 3521 Joseph's Problem (整除分块)

    给定$n,k$$(1\leqslant n,k\leqslant 10^9)$,计算$\sum\limits _{i=1}^nk\: mod\:i$ 通过观察易发现$k\%i=k-\left \lfl ...

  8. 【整理】2-SAT

    2-satisfiability,我们一般将其缩写为 2-sat. 了解全名有助于我们对这个算法的理解.     百度翻译:‘satisfiability’---“可满足性,适定性”. “合取范式可满 ...

  9. 《Javascript高级程序设计》阅读记录(五):第六章 上

    这个系列以往文字地址: <Javascript高级程序设计>阅读记录(一):第二.三章 <Javascript高级程序设计>阅读记录(二):第四章 <Javascript ...

  10. BZOJ3302: [Shoi2005]树的双中心

    BZOJ3302: [Shoi2005]树的双中心 https://lydsy.com/JudgeOnline/problem.php?id=3302 分析: 朴素算法 : 枚举边,然后在两个连通块内 ...