1. 程式人生 > >sql儲存過程幾個簡單例子(一)

sql儲存過程幾個簡單例子(一)

導讀:sql儲存是資料庫操作過程中比較重要的一個環節,對於一些初學者來說也是比較抽象難理解的,本文我將通過幾個例項來解析資料庫中的sql儲存過程,這樣就將抽象的事物形象化,比較容易理解。

例1:

create proc proc_stu
@sname varchar(20),
@pwd varchar(20)
as
select * from ren where [email protected] and [email protected]
go

檢視結果:proc_stu 'admin','admin'

例2:

下面的儲存過程實現使用者驗證的功能,如果不成功,返回0,成功則返回1.

CREATE PROCEDURE VALIDATE @USERNAME CHAR(20),@PASSWORD CHAR(20),@LEGAL BIT OUTPUT
AS

IF EXISTS(SELECT * FROM REN WHERE SNAME = @USERNAME AND PWD = @PASSWORD)
SELECT @LEGAL = 1
ELSE
SELECT @LEGAL = 0

在程式中呼叫該儲存過程,並根據@LEGAL引數的值判斷使用者是否合法。

例3:一個高效的資料分頁的儲存過程 可以輕鬆應付百萬資料

CREATE PROCEDURE pageTest --用於翻頁的測試
--需要把排序欄位放在第一列

(
@FirstID nvarchar(20)=null, --當前頁面裡的第一條記錄的排序欄位的值
@LastID nvarchar(20)=null, --當前頁面裡的最後一條記錄的排序欄位的值
@isNext bit=null, --true 1 :下一頁;false 0:上一頁
@allCount int output, --返回總記錄數
@pageSize int output, --返回一頁的記錄數
@CurPage int --頁號(第幾頁)0:第一頁;-1最後一頁。
)

AS

if @CurPage=0--表示第一頁
begin
--統計總記錄數
select @allCount=count(ProductId) from Product_test

set @pageSize=10
--返回第一頁的資料
select top 10
ProductId,
ProductName,
Introduction
from Product_test order by ProductId
end

else if @CurPage=-1--表示最後一頁

select * from
(select top 10 ProductId,
ProductName,
Introduction

from Product_test order by ProductId desc ) as aa
order by ProductId
else

begin
if @isNext=1
--翻到下一頁
select top 10 ProductId,
ProductName,
Introduction
from Product_test where ProductId > @LastID order by ProductId
else
--翻到上一頁
select * from
(select top 10 ProductId,
ProductName,
Introduction
from Product_test where ProductId < @FirstID order by ProductId desc) as bb order by ProductId
end

上文中講到的這三個例子都是sql儲存過程比較典型的例子,希望大家好好學習,都能夠學到大家各自需要的東西。

FROM : http://database.51cto.com/art/201103/251306.htm

相關推薦

sql儲存過程簡單例子

導讀:sql儲存是資料庫操作過程中比較重要的一個環節,對於一些初學者來說也是比較抽象難理解的,本文我將通過幾個例項來解析資料庫中的sql儲存過程,這樣就將抽象的事物形象化,比較容易理解。 例1: create proc proc_stu @sname varchar(20

儲存過程中遇到的問題—— else if和elsif

編譯時報錯,然後發現裡面有這麼一段程式碼: set define off; declare v_nullable varchar(1) := ''; begin if fc_IsTableExists('TCAPCURRENTS_INPUT') then if not fc_IsC

ORACLE儲存過程plsql建立與執行

關鍵字說明 a)建立引數的in \ out \in out說明 IN:傳入引數進PROCEDURE給儲存過程用; OUT:將儲存過程處理的結果傳出來; IN OUT:傳入引數給儲存過程,再將處理後的結果傳出來; b)PLS

Oracle儲存過程之merge into 函式

繼上一篇部落格:Oracle儲存過程遊標使用的merge into 函式的使用。 http://blog.csdn.net/z1729734271/article/details/52351700 本人之前也沒有接觸過Oracle的儲存過程,這些只是最近專案

css中的小tip

本文轉載於:猿2048網站css中的幾個小tip(一) 原博:http://www.webhek.com/post/7-tips

DB2 儲存過程例子

CREATE PROCEDURE proc_with_variables (IN p_empno VARCHAR(6)) LANGUAGE SQL SPECIFIC proc_with_vars -- applies to LUW

儲存過程優缺點-附加簡單例子

1、什麼是儲存過程?        儲存過程(Stored Procedure)是在大型資料庫系統中,一組為了完成特定功能的SQL 語句集,儲存在資料庫中,經過第一次編譯後呼叫不需要再次編譯,使用者通過指定儲存過程的名字並給出引數(如果該儲存過程帶有引數)來執行它。儲

html5的簡單例子

(宣告:html5是較先進的技術,請在較新瀏覽器上測試,如ie9,firefox,chrome的較新版本) 1.audio元素 audio和video標籤可以直接在網頁上播放,不用任何外掛! 程式碼如

Schema的簡單例子 入門

"><xsd:element name="customer"><xsd:complexType><xsd:sequence><xsd:element name="name" type="xsd:string"/><xsd:element ref="a

【Boost】boost::algorithm的簡單例子

void test_foreach() { using namespace boost::assign; std::vector<int> v; v += 1, 2, 3, 4, 5, 6, 7, 8, 9; BOOST_FOREACH(int x,

oracle儲存過程定時執行簡單例子

/*插入天氣語句*/ INSERT INTO ENERGY.WEATHER VALUES(SEQ_WEATHER.nextVal,sysdate,'多雲轉晴','24','30','西南風','南風','微風','4','2','70','89','420','','適合旅

防止sql注入的簡單函式應用

幾個簡單的函式有:  trim ( string $str [, string $charlist = " \t\n\r\0\x0B" ] ) 去除字串首尾處的空白字元(或者其他字元) 此函式返回字

簡單例子談隨機優化技術

1. 關於隨機優化(stochastic optimization) 隨機優化技術常被用來處理協作類問題,它特別擅長處理:受多種變數的影響,存在許多可能解的問題,以及結果因這些變數的組合而產生很大變化的問題。例如: 在物理學中,研究分子的運動 在生物學中,預測蛋白質的結構 在電腦科學中,預測演算法

關於作業裡面的小知識點bookstrap

一、 我們在用bootstrap排版內容的時候,有的時候在內容中需要圖片水平居中對齊 。 一般情況下,我們的圖片都使用了 .img-responsive 類來實現響應式圖片。如果需要實現響應式圖片水平居中,那麼我們要使用 .center-block 類,不要

面試中常考的集合類java

這裡首先借用下網上的一張集合介面關係圖 下面簡述幾種常用集合的區別,還有部分不常用集合類未描述 Iterable迭代器介面,這是Collection類的父介面。實現這個Iterable介面的物件允許使用foreach進行遍歷,也就是說,所有的Collection集合物件都

BigDecimal精確計算 原創分享自己寫的工具類BigDecimal精確計算

(原創)分享自己寫的幾個工具類(四)BigDecimal精確計算 2017年04月18日 17:34:56 閱讀數:2002 java的float只能用來進行科學計算或工程計算,但是 在大多數的商業計算中,一般採用ja

K-近鄰演算法的一個簡單例子

接著上一個例子進行拓展,file2matrix()函式將文件中的資料轉化為記憶體中的矩陣(陣列),autoNorm()將三列資料歸一化,這裡要注意這裡使用的歸一化方法對於極值點非常敏感,可以考慮其他的方法。datingClassTest()呼叫KNN中的classify0函式

MySQL超時引數timeout解釋

1. connect_timeout mysql客戶端在嘗試與mysql伺服器建立連線時,mysql伺服器返回錯誤握手協議前等待客戶端資料包的最大時限。預設10秒。 2. interactive_timeout / wait_timeout mysql關閉互動/非互動連線

Android的IPC機制--實現AIDL的最簡單例子

前言 對於AIDL的介紹, 將主要分為兩部分: 上篇 將介紹 ADIL的使用, 給出對應的demo 下篇 將分析ADIL的實現原理及原始碼分析 一、到底什麼是AIDL AIDL是一個縮寫,全稱是Android Interface Defination

Oracle儲存過程之merge into 函式

今天主要說明的是merger into 的各個層次關係,這個對於寫儲存過程非常重要!!!希望對大家有所幫助。 首先貼出的是今天寫的一些錯誤SQL: 執行提示無效的SQL語句!!! 第一個錯誤,單獨寫儲存過程來測試的話,第一句是不需要的,這個大家切