●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.pswp.cn/news/258187.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/258187.shtml
英文地址,請注明出處:http://en.pswp.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;只能讓一個線程都執行…