●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,一经查实,立即删除!

相关文章

hdu 1427 速算24点

题目连接 http://acm.hdu.edu.cn/showproblem.php?pid1427 速算24点 Description 速算24点相信绝大多数人都玩过。就是随机给你四张牌&#xff0c;包括A(1),2,3,4,5,6,7,8,9,10,J(11),Q(12),K(13)。要求只用,-,*,/运算符以及括号改变运算顺序&#xff0c;使得最终运算结果为2…

《云计算:概念、技术与架构》一1.1 本书目标

本节书摘来华章计算机《云计算&#xff1a;概念、技术与架构》一书中的第1章 &#xff0c;第1.1节&#xff0c;&#xff08;美&#xff09;Thomas Erl   &#xff08;英&#xff09;Zaigham Mahmood 著 &#xff08;巴西&#xff09;Ricardo Puttini 龚奕利 贺 莲 胡 创 …

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

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

面试题40:数组中只出现一次的数字

题目描述 一个整型数组里除了两个数字之外&#xff0c;其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n)&#xff0c;空间复杂度是O(1)。 题目分析 剑指Offer&#xff08;纪念版&#xff09;P211 ① 自己与自己异或为0 ② 0与数A异或为A ③ …

Python3 From Zero——{最初的意识:007~函数}

一、编写可接受任意数量参数的函数&#xff1a;*、** >>> def test(x, *args, y, **kwargs): ... pass ... >>> test(1, 2, 3, 4 ,5 ,5, y9, aa99, bb88,cc900) >>> test(1, 2, 3, 4 ,5 ,5, 9, aa99, bb88,cc900) Traceback (most recent call la…

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

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

视频图像不正常的几个表现及解决方法

1、 图像发白的原因? 1、检查是否镜头圈调行过大而导致图像发白; 2、在检查摄像机后有一自动光圈亮度辅助调整电位器&#xff0c;是否因电位器调得过大; 3、检查监视器亮度&#xff0c;对比度是否调得过大或故障. 2、 图像质量不好的原因? 检查镜头是否有指纹或太脏。检查光圈…

redis watch multi exec 关系

EXEC 执行所有事务块内的命令。 假如某个(或某些) key 正处于 WATCH 命令的监视之下&#xff0c;且事务块中有和这个(或这些) key 相关的命令&#xff0c;那么EXEC 命令只在这个(或这些) key 没有被其他命令所改动的情况下执行并生效&#xff0c;否则该事务被打断(abort)。 返回…

Chrome 控制台指南

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

专家:大数据等新技术助力信息融合

ACCA中国区政策主管钱毓益本周末在出席由上海国家会计学院主办的“管理会计&#xff1a;融合与创新”论坛时表示&#xff1a;新一轮以移动互联网、物联网和云计算及大数据为代表的信息技术&#xff0c;将融合与创新发展表现得淋漓尽致。 钱毓益指出&#xff0c;通过数字化转型与…

python数据类型汇总_python基础数据类型汇总

#!/usr/bin/env python# -*- encoding:utf-8 -*-# author:Administrator# make_time:2018/6/9‘‘‘数据类型&#xff1a;不可变数据类型&#xff1a;int、str、bool、tuple、frozenset可变数据类型&#xff1a;list、dict、set公共方法&#xff1a;count()、len()、del、copy(…

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

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

华为服务器故障灯不开机_华为服务器日常维护及故障处理介绍V.ppt

通电策略 power on上电自动开机。 power off上电不自动开机&#xff0c;需按前面板电源按钮才能开机。 Last State上电开机与否取决于上次断电之前的状态&#xff0c;如果是关机状态则通电后不能自动开机&#xff0c;如果是开机状态则通电后可以自动开机。 硬件狗 BMC WDT Acti…

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

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

Android 4.2 通知通过PendingIntent启动Activity失败的问题

今天突然发现在Android 4.2手机上点击通知消息无法打开Activity的问题&#xff0c;具体Logcat信息如下&#xff1a; 01-09 11:37:43.733: WARN/ActivityManager(92): Unable to send startActivity intent java.lang.SecurityException: Permission Denial: starting Intent { …

ubuntu安装sublime

添加sublime text 3的仓库&#xff1a; sudo add-apt-repository ppa:webupd8team/sublime-text-3 更新软件库 sudo apt-get update 安装Sublime Text 3: sudo apt-get install sublime-text-installer 安装sublime2: sudo add-apt-repository ppa:webupd8team/sublime-text-2 …

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;智能家居从概念炒作到价格高抬&#xff0c;相关预测显示&#xff0c;若真如电商…

HDU 1181 变形课

Problem Description呃......变形课上Harry碰到了一点小麻烦,由于他并不像Hermione那样可以记住全部的咒语而任意的将一个棒球变成刺猬什么的,可是他发现了变形咒语的一个统一规律:假设咒语是以a开头b结尾的一个单词,那么它的作用就恰好是使A物体变成B物体. Harry已经将他所会的…

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

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