国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

探討自定義SQL語句的應(yīng)用

2017-01-16 11:11:44何代其
東方教育 2016年19期
關(guān)鍵詞:探討應(yīng)用

何代其

摘要:在大數(shù)據(jù)肆虐的今天,數(shù)據(jù)正在迅速膨脹并變大,已經(jīng)滲透到每一個行業(yè)和業(yè)務(wù)職能領(lǐng)域,成為重要的生產(chǎn)因素,它決定著企業(yè)的未來發(fā)展,雖然很多企業(yè)可能并沒有意識到數(shù)據(jù)爆炸性增長帶來問題的隱患,但是隨著時間的推移,人們將越來越多的意識到數(shù)據(jù)對企業(yè)的重要性。

關(guān)鍵詞:探討;自定義;SQL語句;應(yīng)用

信息化越好的企業(yè),對數(shù)據(jù)會越來越重視,如何從數(shù)據(jù)庫中檢索數(shù)據(jù),最常見的方法莫過于使用簡單的DELETE、INSERT、SELECT、UPDATE等標(biāo)準(zhǔn)SQL語句,要不就是技術(shù)尖端的存儲過程,但這兩種方法很有局限性。事實上介于標(biāo)準(zhǔn)SQL語句和存儲過程之間的自定義SQL語句更靈活,更方便。

一、使用標(biāo)準(zhǔn)SQL語句

標(biāo)準(zhǔn)的SQL語句使用方法很簡單,如:SelectCommand="SELECT * FROM [manger] where ID<>1" SelectCommandType="Text",由于標(biāo)準(zhǔn)的SQL語句是默認值,所以一般把SelectCommandType="Text"省略。

二、使用存儲過程

盡管存儲過程功能強大,但使用卻很簡單,比如:

SelectCommand="xytotal" SelectCommandType="StoredProcedure">

PropertyName="SelectedValue" Type="String" />

其中xytotal是存儲過程名,nf是參數(shù)。

三、使用自定義SQL語句

1.使用CAST函數(shù)構(gòu)造數(shù)據(jù)類型

在工資查詢時,可選擇起止年月,但數(shù)據(jù)庫沒有年、月數(shù)據(jù)類型,只有日期類型,一般用每月的1日表示該月,因此要用年、月和“-1”日進行構(gòu)造,即cast(@年+'-'+@月+'-1' as datetime),由此構(gòu)成Where條件。如:SelectCommand="SELECT [應(yīng)發(fā)合計],[代扣合計],[實發(fā)金額],……,[月份] FROM [simplelist] WHERE 月份>= cast(@起年+'-'+@起月+'-1' as datetime)and 月份<= cast(@止年+'-'+@止月+'-1' as datetime)"

2.使用CASE WHEN THEN ELSE END選擇字段

SQL命令中的case...when...then...else...end條件查詢不同于where,case...when...then...else...end在from前面,可以改變記錄中某字段的值,不能決定是否顯示該記錄;而where在from后面,不可以改變記錄中某字段的值,但可以決定是否顯示該記錄。簡單地說,case是垂直篩選字段,而where是水平篩選記錄,如SelectCommand="SELECT 學(xué)院,CASE 省名 WHEN '合計' THEN 省名 ELSE 省區(qū)市 END AS 地區(qū),人數(shù) FROM totalview"。

3.使用if else 選擇SELECT語句

在就業(yè)管理系統(tǒng)中,在班級列表中,有具體班級和全部兩種情形的選項,導(dǎo)致where條件也不同,又不能用case進行構(gòu)造,可使用if else 進行選擇,具體構(gòu)成如下:SelectCommand="if(@班級<>'全部')SELECT [姓名],[就業(yè)單位],[聯(lián)系電話],…… FROM [out] WHERE([班級] = @班級)else SELECT [姓名],[就業(yè)單位],[聯(lián)系電話],…… FROM [out] WHERE(substring(畢業(yè)時間,1,4)= @畢業(yè)時間)AND([學(xué)院] = @學(xué)院)"。

這種情形多數(shù)開發(fā)人員一般采用存儲過程,并且表面上更簡單,但本質(zhì)是相同的,不過表達有所不同,因此各有各的用途。

4.構(gòu)造UPDATE語句

不同情形更新的字段不同,照說可以用存儲過程來完成,但一般情況下,UPDATE字段都好幾個字段,甚至幾十個字段,那么使用存儲過程幾乎不可能了,這時不得不用if else進行構(gòu)造,這就是幾乎沒有UPDATE的存儲過程原因。如UpdateCommand="if(@就業(yè)去向='自由職業(yè)')UPDATE [out] SET ……,[自由工作所在地] = @自由工作所在地,[自由職業(yè)內(nèi)容] = @自由職業(yè)內(nèi)容,[自由職業(yè)本人聲明] = @自由職業(yè)本人聲明 WHERE [ID] = @ID else if(@就業(yè)去向='升學(xué)')UPDATE [out] SET ……,[升學(xué)名稱] = @升學(xué)名稱 WHERE [ID] = @ID else if(@就業(yè)去向='參軍入伍')UPDATE [out] SET ……,[部隊名稱] = @部隊名稱 WHERE [ID] = @ID"。

嚴格地說,所有的存儲過程都可以用SQL語句完成,反過來,所有的SQL語句也都可以用存儲過程(視圖)來表示,那么究竟什么時候用存儲過程?什么時候用SQL語句?一般來說,簡單的查詢用SQL語句,復(fù)雜且參數(shù)少的查詢用存儲過程,參數(shù)多、較復(fù)雜的查詢只能由自定義SQL語句完成,或者說越簡單就用SQL語句,越復(fù)雜就用存儲過程,介于兩者之間就用自定義SQL語句,它們之間沒有絕對的界限。

參考文獻:

[1]姚永一,SQL Server數(shù)據(jù)庫實用教程,北京:電子工業(yè)出版社,2010.

[2]高云,SQL Server 2008數(shù)據(jù)庫技術(shù)實用教程,北京:清華大學(xué)出版社,2011

[3]何玉潔,數(shù)據(jù)庫原理與應(yīng)用(第二版),北京:機械工業(yè)出版社,2011

[4]壯志劍,數(shù)據(jù)庫原理與SQL Server,北京:高等教育出版社,2008

猜你喜歡
探討應(yīng)用
環(huán)境科學(xué)專業(yè)《環(huán)境生態(tài)學(xué)》課程教學(xué)改革探討
互聯(lián)網(wǎng)+背景下企業(yè)會計核算制度探析
新財務(wù)會計制度下醫(yī)院成本核算的探討與實踐分析
芻議小學(xué)足球教學(xué)的訓(xùn)練教學(xué)方法
體育旅游產(chǎn)業(yè)的特征及發(fā)展策略探討
商(2016年27期)2016-10-17 07:16:17
稅收籌劃的效應(yīng)問題
商(2016年27期)2016-10-17 06:19:58
多媒體技術(shù)在小學(xué)語文教學(xué)中的應(yīng)用研究
考試周刊(2016年76期)2016-10-09 08:45:44
分析膜技術(shù)及其在電廠水處理中的應(yīng)用
科技視界(2016年20期)2016-09-29 14:22:00
GM(1,1)白化微分優(yōu)化方程預(yù)測模型建模過程應(yīng)用分析
科技視界(2016年20期)2016-09-29 12:03:12
煤礦井下坑道鉆機人機工程學(xué)應(yīng)用分析
科技視界(2016年20期)2016-09-29 11:47:01
成安县| 塔河县| 通河县| 澜沧| 三河市| 来安县| 共和县| 安溪县| 黄龙县| 德庆县| 巴楚县| 南汇区| 平武县| 盐亭县| 绵阳市| 德保县| 湖南省| 南乐县| 庄河市| 广河县| 开封县| 关岭| 安阳县| 望都县| 重庆市| 浦县| 呼玛县| 平塘县| 乾安县| 衡南县| 台北市| 七台河市| 民乐县| 仪征市| 界首市| 灵宝市| 大冶市| 龙门县| 汶川县| 许昌县| 兰溪市|