●SQL编程

局部变量
局部变量必须以@ 开头,而且必须先用DECLARE 命令说明后才可使用。
使用SELECT 或SET 命令来设定变量的值。
说明形式:
DECLARE @变量名 变量类型 [ @变量名 变量类型]
  SELECT @局部变量 = 变量值
  SET @局部变量= 变量值
例:
declare @name varchar(20)    --声明变量
  set @name = '奥迪%'    --为变量赋值

  declare @avg decimal(18,2)
  set @avg=(select AVG(Price) from Car)
  print '所有汽车的平均价格是:'+cast(@avg as varchar(20))

IF……ELSE……
IF <条件表达式>
  <命令行或程序块>
  [ELSE IF [条件表达式]
  <命令行或程序块>]
BEGIN……END……    (相当于C#中的大括号{})
BEGIN
  <命令行或程序块>
  END
  BEGIN…END 用来设定一个程序块,将在BEGIN…END 内的所有程序视为一个单元执行。BEGIN…END 经常在条件语句如IF…ELSE 中使用。

  declare @find varchar(20)    --声明变量
  set @find='宝马'    --变量赋值
  if(@find='宝马')    --判断
  begin
    print '宝马汽车'    --显示结果如下第二图
    select * from Car where Name like '%'+(@find)+'%'
  end
  else
  begin
    print '其他'
    select * from Car
  end

 
WAITFOR
WAITFOR 命令用来暂时停止程序执行,直到所设定的等待时间已过或所设定的时间已到才继续往下执行。
其中时间必须为DATETIME 类型的数据
  WAITFOR {DELAY <‘时间’> | TIME <‘时间’>| ERROREXIT | PROCESSEXIT | MIRROREXIT}
  DELAY 用来设定等待的时间最多可达24 小时
    TIME         用来设定等待结束的时间点
    ERROREXIT      直到处理非正常中断
    PROCESSEXIT      直到处理正常或非正常中断
    MIRROREXIT      直到镜像设备失败
  例:
  等待1 小时2 分零3 秒后才执行SELECT 语句
  waitfor delay ’01:02:03’
  select * from employee
  等到晚上11 点零8 分后才执行SELECT 语句
  waitfor time ’23:08:00’
  select * from employee
创建存储过程
CREATE PROC[EDURE] procedure_name [ ; number ]    --procedure可简写为proc,
[ { @parameter data_type }
[ VARYING ] [ = default ] [ OUTPUT ]
] [ ,...n ]    --定义形参
  [ WITH
{ RECOMPILE | ENCRYPTION | RECOMPILE , ENCRYPTION } ]
[ FOR REPLICATION ] 
AS sql_statement [ ...n ]
例:

  create procedure UP_Fruit_Buy    --为方便查看,创建存储过程名写为(用户_表_对表的操作)
    @username varchar(50),    --定义形参
    @fruitname varchar(50),
    @buycount int = 0
  as
  begin
    ……
  end

 当涉及到修改数据时,用begin tran …… rollback,便于操作失误时,恢复数据

 

触发器

  触发器是一种特殊的存储过程。

触发器主要是通过事件进行触发而被执行的,而存储过程可以通过存储过程名字而被直接调用

  触发器的主要作用就是其能够实现由主键和外键所不能保证的复杂的参照完整性和数据的一致性,另外还有强化约束和级联运行的功能。

 

inserted,deleted临时表

  这两个表是由系统管理的,存储在内存中,不是存储在数据库中,因此不允许用户直接对其修改,是只读的。

  这两个表的结构总是与被该触发器作用的表有相同的表结构。

  这两个表是动态驻留在内存中的,当触发器工作完成,这两个表也被删除。

  这两个表主要保存因用户操作而被影响到的原数据值或新数据值。

 

  更新操作包括两个部分,在deleted中存放了旧值,然后在inserted中存放新值。

  插入操作,在inserted中存放新值。

  删除操作,在deleted中存放旧值。

 

  种类:after触发器、instead of触发器

  两种触发器的区别:after触发器是触发条件执行完以后,才执行触发器;instead of触发器是不再执行触发条件,直接执行触发器。

 

CREATE TRIGGER trigger_name
ON { table | view }
[ WITH ENCRYPTION ]
{{ { FOR | AFTER | INSTEAD OF }
{ [ DELETE ] [ , ] [ INSERT ] [ , ] [ UPDATE ] }
[ WITH APPEND ][ NOT FOR REPLICATION ]
AS
sql_statement [ ...n ]
}
例:
create trigger TR_Student_Delete on student    --创建对于表student的触发器
for delete    --触发条件
as
……    --执行过程
go

转载于:https://www.cnblogs.com/phantom-k/p/3967411.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/258187.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql to char 用法_postgresql 中的to_char()常用操作

postgresql中的to_char()用法和Oracle相比&#xff0c;多了一个参数。to_char(待转换值&#xff0c;转换格式);常用转换格式有2种&#xff1a;一个是写若干个0&#xff0c;如果待转换的值位数少于于你定义的转换格式位数&#xff0c;输出值会自动在左边补0&#xff0c;位数补齐…

mysql 数据库名称限制_mysql 数据库名称限制

mysql 数据库名称限制云服务器(Elastic Compute Service&#xff0c;简称ECS)是阿里云提供的性能卓越、稳定可靠、弹性扩展的IaaS(Infrastructure as a Service)级别云计算服务。云服务器ECS免去了您采购IT硬件的前期准备&#xff0c;让您像使用水、电、天然气等公共资源一样便…

Chrome 控制台指南

转自&#xff1a;http://blog.jobbole.com/76985/ Chrome的开发者工具已经强大到没朋友的地步了&#xff0c;特别是其功能丰富界面友好的console&#xff0c;使用得当可以有如下功效&#xff1a; 更高「逼格」更快「开发调试」更强「进阶级的Frontender」Bug无处遁形「Console大…

开发实战细节之——关于整型转换为字符串类型的性能与实现分析

细节决定成败&#xff0c;开发中往往从一些细节就可以看出一个程序员的开发水准&#xff0c;下面我就给大家分享一下开发中最最常见的int转换为String类型的方法及其性能解析。 一般大家最常用的方法有 方法一&#xff1a;String s1 String.valueOf(i); 方法二&#xff1a;St…

《黑客大曝光:移动应用安全揭秘及防护措施》一2.2 攻击与对策

本节书摘来自华章出版社《黑客大曝光&#xff1a;移动应用安全揭秘及防护措施》一书中的第2章&#xff0c;第2.2节&#xff0c;作者 &#xff08;美&#xff09;Neil Bergman &#xff0c;更多章节内容可以访问云栖社区“华章计算机”公众号查看 2.2 攻击与对策 好&#xff0c…

jdbctemplate mysql 配置_Spring JDBCTemplate配置使用

一、开发环境Windows 10IntelliJ IDEA 2016.1 旗舰版JDK1.8二、项目和数据库结构项目结构&#xff1a;数据库(MySQL 5.5.39)&#xff1a;/*Navicat MySQL Data TransferSource Server : localhostSource Server Version : 50539Source Host : localhost:3306Source Database : …

多线程(同步代码块和同步函数)

线程安全问题 当多条语句在操作同一个线程共享数据时&#xff0c;一个线程对多条语句只执行了一部分&#xff0c;还没有执行完&#xff0c; 另一个线程参与进来执行。导致共享数据的错误。解决办法&#xff1a; 对多条操作共享数据的语句&#xff0c;只能让一个线程都执行…

Hibernate 事物隔离级别 深入探究

目录 一、数据库事务的定义 二、数据库事务并发可能带来的问题 三、数据库事务隔离级别 四、使用Hibernate设置数据库隔离级别 五、使用悲观锁解决事务并发问题 六、使用乐观锁解决事务并发问题 Hibernate事务与并发问题处理&#xff08;乐观锁与悲观锁&#xff09; 一、数据库…

mysql 无论输入什么都是现实 not found_NotAPanda

前言面试竞争力越来越大&#xff0c;是时候撸一波Vue和React源码啦&#xff1b;本文从20个层面来对比Vue和React的源码区别&#xff1b;如果需要了解API的区别&#xff0c;请戳&#xff1a;Vue 开发必须知道的 36 个技巧React 开发必须知道的 34 个技巧文章源码&#xff1a;请戳…

这五张PPT告诉你,如何打造无人驾驶“最强大脑”

“英特尔在谈无人驾驶&#xff0c;会成为汽车制造商吗?NO!我们要为无人驾驶提供从车、连接到云的‘最强大脑’。” 在昨天于北京举行的英特尔无人驾驶分享会上&#xff0c;英特尔无人驾驶事业部中国区市场总监徐伟杰在主旨演讲中开门见山。 这也是英特尔无人驾驶事业部去年11月…

python的datetime举例_Python datetime模块的使用示例

1、获取当前年月日时分秒# -*- encodingutf-8 -*-import datetimenow datetime.datetime.now()print("now:{}".format(now))year now.yearprint("year:{}".format(year))month now.monthprint("month:{}".format(month))day now.dayprint(&q…

vs2015 去除 git 源代码 绑定,改成向tfs添加源码管理

除了下文的方法是将源码管理从git改成tfs之外&#xff0c;还要做以下几步即可 向tfs添加源码 打开源码管理(管理连接)&#xff0c;双击打开你要向其中添加的tfs连接选中该解决方案&#xff0c;右键 将解决方案添加到源码管理嵌入完毕vs2015 去除 git 源代码 绑定 第一次碰到这个…

《日志管理与分析权威指南》一2.3 良好日志记录的标准

本节书摘来华章计算机《日志管理与分析权威指南》一书中的第2章 &#xff0c;第2.3节&#xff0c;&#xff08;美&#xff09; Anton A. Chuvakin Kevin J. Schmidt Christopher Phillips 著 姚 军 简于涵 刘 晖 等译更多章节内容可以访问云栖社区“华章计算机”公众号查…

Python【01】【基础部分】- A

一、WHATS PYTHON ? 1、python 简介 Python&#xff08;英语发音&#xff1a;/ˈpaɪθən/&#xff09;, 是一种面向对象、解释型计算机程序设计语言&#xff0c;由Guido van Rossum于1989年发明&#xff0c;第一个公开发行版发行于1991年。Python是纯粹的自由软件&#xff0…

Finished yeah!

终于到了最后的博客阶段&#xff0c;这时候才知道博客此时此刻是多么的惬意&#xff0c;它成了书写心声的自由平台&#xff01;耗时一天完成这作业说起来也是蛮辛苦的&#xff0c;编译器需要新装&#xff0c;IDE需要熟悉&#xff0c;当然最主要的是之前浅入浅出的C功底在此次作…

Tomcat性能调优

1、集成apache 虽然Tomcat也可以作web服务器&#xff0c;但是处理静态html的速度比不上apache&#xff0c;且其作为web服务器的功能远不如Apache&#xff0c;因此把apache和tomcat集成起来&#xff0c;讲html和jsp功能部分进行明确的分工&#xff0c;让tomcat只处理jsp部分&…

河南推出近万亿PPP投资计划 郑州实现智慧城市全覆盖

1 近万亿PPP项目启动 眼下&#xff0c;国内财经新闻的热点聚焦在PPP开发上&#xff0c;这与PPP支撑国内经济平衡运行的一支强劲力量正被政府看好。就连二级市场也出现了PPP概念的抢筹现象。 9月27日&#xff0c;股市再一次遭遇抛售&#xff0c;大盘创出阶段性新低&#xff0c;然…

Loadrunner多服务器连接问题

今天用想增加一个压力机,在服务器管理列表里怎么也连不上,后来解决方法如下:1. 关闭所有loadrunner组件,并手动结束lr_开头的进程2.找到惠普loadrunner安装目录(C:\Program Files\HP\LoadRunner\bin),手动运行magentproc.exe即可最新内容请见作者的GitHub页&#xff1a;http://…

物联网安防技术融合在细分领域的应用分析

物联网的核心是业务和应用的创新。物联网技术与智能化技术的深度融合&#xff0c;加快了行业的智能化发展&#xff0c;促使了行业需求在应用层上的落地。安防技术架构是物联网架构的一个子集&#xff0c;传统安防是一个相对保守的行业。现代安防和物联网在业务和技术上的融合发…

强连通分量(学习心得)

定义&#xff1a;有向图强连通分量&#xff1a;在有向图G中&#xff0c;如果两个顶点vi,vj间&#xff08;vi>vj&#xff09;有一条从vi到vj的有向路径&#xff0c;同时还有一条从vj到vi的有向路径&#xff0c;则称两个顶点强连通如果有向图G的每两个顶点都强连通&#xff0c…