一、 变量

1. 形式: @x (局部), @@x(全局)

2. 定义: declare @x

3. 赋值:Set @x = ?

4. 作用:

  • 通用化

  • 存储在服务器

5. 存储过程(预编译过的T-SQL语句)

  • 优点:

    • 完成复杂的运算
    • 保证数据的安全性和完整性
    • 效率高
    • 网络负载低
    • 实现企业规则 (模块化)
Create  proc Pexa1  @SN  char()
As
begin
select Sname
From Student
where sdept in
(select sdept
From Student
where Sname = @SN
)
end

6. 存储过程的类型

  1. 系统存储过程

    存储过程的前缀: SP_xxx

  2. 创建存储过程的语法

    CREATE PROC 存储过程 形参表

    AS

    begin T-SQL 语句块 end

  3. 形参表

    @X1 类型1, @X2 类型2,......, @Y1 类型n Output

    ​ 输入形参 输出形参

    注: 不是所有变量都做性参表
  4. 实例

Create Proc PEXA2 @x int
AS
begin
Select Sno, Avg(Score)
From SC
group by Sno having AVG(Score) >= @x
end --例2
Create Proc PEXA3
AS
begin
Select Sno
From SC
Where Sno Not in
(Select Sno
From SC
where Cno = ''
)
end

4. 执行存储过程

  ​ EXEC PEXP3

  ​ EXEC PEXP1 '刘晨'

5. 删除 Drop Proc 名

6. 修改:

  ​ ALTER Proc p1

7. 实例

--在Student表中,创建指定学号的删除操作的存储过程
Create Proc p2
AS
begin
delete from Student
where Sno = @sn
end --将student表中,sno的后一位是2的学生的学号、姓名分别赋值给 变量X, Y
--问题转换: 查询Sno的后一位是2的学生的学号、姓名 declare @x char(), @Y varchar() --定义变量
Select @X = sno, @Y = Sname --为变量赋值
From Student
where right(sno, ) = '' --倒数第二位 left(rihgt(sno, 2), 1) select @X, @Y --利用Select语句显示变量内容 Select 语句功能推广
: 可同时为多个变量赋值, 其值来自数据库.
: 可让外部程序访问数据库

7.命令

--在屏幕上显示某个'借书证号'到期图书的'图书编号'(借书期限为30天)

Declare @借书证号 char(), @图书编号 char()
SET @借书证号 = '' -- 输入变量初始化 Select @图书编号 = books.图书编号
From borrow, books
where borrow.图书编号 = books.图书编号
and 还书日期 IS NULL
and datediff(day, 借书日期, getdate()) >
and 借书证号 = @借书证号
PRINT '超期图书是: ' + @图书编号

SQL语句(十八_补充)——存储过程的更多相关文章

  1. 用sql语句导出oracle中的存储过程和函数

    用sql语句导出oracle中的存储过程和函数: SET echo off ; SET heading off ; SET feedback off ; SPOOL 'C:/PRC.SQL' repl ...

  2. MySQL之唯一索引、外键的变种、SQL语句数据行操作补充

    0.唯一索引 unique对num进行唯一限制,表示num是独一无二的,uql是唯一索引名称 上面为联合索引:num和xx不能完全一样  1.外键的变种 a. 用户表和部门表 用户: 1 alex 1 ...

  3. Mysql常用sql语句(八)- where 条件查询

    测试必备的Mysql常用sql语句,每天敲一篇,每次敲三遍,每月一循环,全都可记住!! https://www.cnblogs.com/poloyy/category/1683347.html 前言 ...

  4. Jmeter(四十八)_动态线程分析HTML测试报告

    概述 jmeterGUI模式下,性能测试的结果往往误差很大,因为GUI本身就会消耗一部分资源.所以我们常常用命令行去跑性能脚本,得出结果 同时,jmeter在命令行下还可以生成多维度的测试报告,里面包 ...

  5. 必须会的SQL语句(八)数据库的完整性约束

    实体完整性 1.建表时定义主键   Create table 表名    (         Sno int identity(1,1),         Sname nvarchar(20),    ...

  6. Python笔记(二十八)_魔法方法_迭代器

    迭代器用于遍历容器中的数据,但它不是容器,它是一个实现了__next__方法的对象 与迭代器相关的内置函数: iter(): 将一个对象转换成一个迭代器 next(): 访问迭代器中的下一个变量,直到 ...

  7. Python爬虫(十八)_多线程糗事百科案例

    多线程糗事百科案例 案例要求参考上一个糗事百科单进程案例:http://www.cnblogs.com/miqi1992/p/8081929.html Queue(队列对象) Queue是python ...

  8. SQL语句(八)按条件查询

    SELECT * FROM student SELECT sclass, snumb, sname FROM student --物理班有哪些同学 --年龄小于20岁的有哪些同学? --定价在30元以 ...

  9. [b0033] python 归纳 (十八)_队列Queue在多线程中使用(二)

    # -*- coding: UTF-8 -*- """ 多线程同时读队列 使用 join(), task_done() 逻辑: 3个子线程并发 从有6个数据的队列中取数据 ...

随机推荐

  1. nigix安装

    树莓派安装nginx,参考http://blog.csdn.net/zizi7/article/details/54347223 1. 下载PCRE 并安装. 主页地址: ftp://ftp.csx. ...

  2. sql中exists和not exists的用法

    该文转载自:http://www.cnblogs.com/mytechblog/articles/2105785.html sql中exists,not exists的用法 exists : 强调的是 ...

  3. T4模板_T4基本结构

    T4文本模板由 指令块.文本块.控制块 组成. 一. 指令块(MSDN文本模板指令) 指令块以@开头,基本的指令块包括<#@ template #> .<#@ parameter# ...

  4. 【转】python win32api win32gui win32con 简单操作教程(窗口句柄 发送消息 常用方法 键盘输入)

    作者:https://blog.csdn.net/qq_16234613/article/details/79155632 附:https://www.programcreek.com/python/ ...

  5. MYSQLD_OPTS修改

    systemctl set-environment MYSQLD_OPTS="--skip-grant-tables";

  6. JS 日期 自动补齐 “2017-11-22 14:43”

    var myDate = new Date(); var myN = myDate.getFullYear(); var myY = myDate.getMonth(); var myR = myDa ...

  7. Redis和Memcache的区别总结-京东阿里面试

    集群: redis 和memcached都支持集群 数据类型 Redis支持的数据类型要丰富得多,Redis不仅仅支持简单的k/v类型的数据,同时还提供String,List,Set,Hash,Sor ...

  8. JavaWeb基础【1】—— Tomcat

    此笔记是学习黑马程序员JavaWeb系列视频的课堂笔记. 感谢黑马程序员. 一.Tomcat概述 Tomcat服务器由Apache提供,开源免费.由于Sun和其他公司参与到了Tomcat的开发中,所以 ...

  9. HDU2883_kebab

    很好的题目. 有不多于200个任务,每个任务要在si到ei这个时间段内完成,每个任务的任务量是ti*ni,只有一台机器,且其单位时间内可完成的任务量为m. 现在问你,能否使所有的任务全部在规定的时间段 ...

  10. EF 使用 oracle

    EF 使用 oracle https://www.oracle.com/technetwork/topics/dotnet/downloads/index.html C:\Program Files ...