国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

查詢參數(shù)提高SQL語句的利用率

運維 數(shù)據(jù)庫運維
數(shù)據(jù)庫的應(yīng)用中,參數(shù)的查詢時數(shù)據(jù)庫管理員經(jīng)常會用到的一種數(shù)據(jù)庫功能,本文要為大家介紹的是查詢參數(shù)提高SQL語句的利用率。

導(dǎo)讀:有時候數(shù)據(jù)庫管理員在查詢記錄的時候,有可能只是查詢條件不同,而其他的內(nèi)容都是相同的。如人事部門可能每天都需要查詢當(dāng)天礦工、遲到、早退的員工,然后向人事經(jīng)理匯報。其實這個時候SQL語句的大部分都是相同的,只是查詢條件中一個時間不一樣而已。遇到這種情況時,數(shù)據(jù)庫管理員需要創(chuàng)建可以使用多次但每次使用不同值的查詢。在SQLServer數(shù)據(jù)庫中,把這種情況叫做參數(shù)查詢。參數(shù)的查詢要利用SQL語句,從而提高了SQL語句的利用率。

  一、 在什么時候使用參數(shù)符號。

  在SQLServer數(shù)據(jù)庫中,其提供的語言支持使用參數(shù)來作為查詢條件。如果用戶需要創(chuàng)建每次使用不同值的查詢,則可以在查詢中使用參數(shù)。那么這個參數(shù)到底是什么呢?其實確切的說,應(yīng)該把這個參數(shù)叫做占位符。即參數(shù)是在運行查詢時提供值的占位符。在SQLServer數(shù)據(jù)庫中,在需要顯示的內(nèi)容(Select子句)與查詢條件(Where子句)中都可以采用參數(shù),從其他地方接收輸入的值。不過大部分情況下,都只在查詢條件中使用參數(shù)。即在單個行或者組的搜索條件中使用參數(shù)作為占位符。

  不過并不是說只有在搜索條件中才能夠使用參數(shù),只是說在搜索中參數(shù)使用的比較多而已。另外,有時候在表達(dá)式中可能也會用的比較多。如一個ERP系統(tǒng)中,可能會有一定的價格折扣,如5%的折扣。那么在應(yīng)用程序設(shè)計的時候,就需要把這個折扣率從前臺傳遞到后臺的SQL語句中。然后數(shù)據(jù)庫系統(tǒng)根據(jù)這個折扣率把計算后的架構(gòu)回傳給前臺的客戶端。在這個過程中,如果能夠采用參數(shù)來實現(xiàn)的話,就可以提高SQL語句的利用率。不用每次使用不同的折扣率,而采用不同的SQL語句。

  所以說,參數(shù)在SQLServer中的應(yīng)用范圍是非常廣泛的。通常情況下,在SQL語句的任何部分都可以采用參數(shù)來接受外部傳入的值,從而避免每次參數(shù)不同而調(diào)整SQL語句的情況。

  二、 未命名參數(shù)與命名參數(shù)。

  在SQLServer中,參數(shù)可以分為兩種,即未命名參數(shù)與命名參數(shù)。通常情況下,如果SQL語句中只需要一個參數(shù)的話,那么可以采用未命名參數(shù)。如需要查詢某個員工上班到現(xiàn)在的全部出勤信息。此時就只需要用到員工編號這個參數(shù)即可。此時可以采用未命名的參數(shù)。不過有的時候可能查詢時需要不止一個參數(shù)。如現(xiàn)在需要查詢某個員工在4月份的出勤情況。此時就需要兩個參數(shù),分別為員工編號、月份。或者需要三個參數(shù),分別為員工編號、開始日期、結(jié)束日期等等。總之要多于一個參數(shù)。此時就需要使用命名參數(shù)。因為如果使用未命名參數(shù)的話,則數(shù)據(jù)庫并不知道要把哪個參數(shù)對應(yīng)到哪個地方。所以說,如果要在查詢中使用多個參數(shù),那么此時命名參數(shù)就會非常有用。

  未命名的參數(shù)使用很簡單。不需要像應(yīng)用程序開發(fā)那樣,先聲明再使用。而是在需要的地方直接輸入?符號即可。如需要把某個員工最為參數(shù)的話,則可以使用ad_user_id =?即可。這里需要注意一點,這里不需要加入單引號。因為正常情況下,如果輸入的條件是字符型的話,則必須利用單引號括起來。如果輸入的條件是數(shù)字的話,則不用單引號。但是如果采用的是參數(shù)的話,無論最終輸入的數(shù)據(jù)類型是什么,這里都不用單引號。否則的話,就不能夠達(dá)到預(yù)期的效果。

  如果采用的是命名參數(shù)的話,也不需要事先定義。只需要在使用的時候定義參數(shù)名字即可。這個定義的過程也很簡單。如現(xiàn)在用戶需要按員工編號與日期來查詢某個員工的出勤記錄。此時只需要使用AD_USER_ID=%USER_ID% AND USERDATE=%USERSDATE%。從這里可以看出,未命名參數(shù)與命名參數(shù)使用的參數(shù)符號是不同的。在命名參數(shù)是,需要中參數(shù)名字的前后使用%號,表示這是一個命名參數(shù)。不過這個前綴與后綴的字符數(shù)據(jù)庫管理員可以根據(jù)自己的需要來進(jìn)行自定義。不過需要注意的就是,在創(chuàng)建命名參數(shù)查詢之前,必須要先預(yù)先定義后這個參數(shù)的前綴與后綴符號。

  三、 在循環(huán)中使用參數(shù)標(biāo)記。

  參數(shù)不僅可以用在Select查詢語句中,有時候在一些循環(huán)語句中也可以使用。如現(xiàn)在有一個股票分析系統(tǒng)。用戶自定義了10只關(guān)注的股票。現(xiàn)在這個系統(tǒng)要每隔30秒就從數(shù)據(jù)庫系統(tǒng)中讀取這十只股票的***價格。此時該如何實現(xiàn)呢?

  當(dāng)然用戶也可以在查詢條件語句中通過輸入10個股票的代碼來實現(xiàn)查詢。但是這個做非常的麻煩。而且由于用戶關(guān)注的股票數(shù)量不確定,所以采用多個命名參數(shù)來實現(xiàn)的話,也不現(xiàn)實。雖然SQL語句可以接受多個參數(shù),但是其參數(shù)的數(shù)量必須是固定的。像現(xiàn)在這種不固定的參數(shù),SQL語句也很難實現(xiàn)。針對這種情況,只有通過循環(huán)語句來實現(xiàn)。即在SQL語句中只使用一個參數(shù),即股票代碼這個參數(shù)。然后通過循環(huán)語句把用戶選定的股票代碼一個一個的傳遞進(jìn)去。傳進(jìn)去***個后,數(shù)據(jù)庫返回結(jié)果;然后再傳進(jìn)去第二個,再返回結(jié)果。知道***一個參數(shù)傳遞完畢。通常情況下,可以把這個循環(huán)語句做成一個存儲過程或者函數(shù)。然后通過參數(shù)的個數(shù)來控制循環(huán)的次數(shù)。這種解決方案可以很好的實現(xiàn)因為參數(shù)個數(shù)不確定而難以處理的情況。當(dāng)然,這其中仍然參數(shù)在起著主導(dǎo)作用。

  四、 在SET語句中使用參數(shù)。

  企業(yè)有時候可能遇到這種需求,即把滿足某個條件的記錄中,某些字段利用某個參數(shù)值來進(jìn)行代替。如企業(yè)可能經(jīng)濟效益好,要把提升員工的工資。其中普通員工提升10%,管理層員工提升15%。此時就需要用到SQL語句中的Update語句。這更新的時候,需要用到兩個參數(shù)。一個是員工的類別,即是屬于普通員工又或者是屬于管理層員工;第二個參數(shù)是提升的百分比,是提升10%還是15%。

  其實在實際工作中,有很多地方需要用到類似地參數(shù)與語句。如在ERP系統(tǒng)中,有時候需要根據(jù)產(chǎn)品的類別或者供應(yīng)商來更新價格;如有時候需要把好幾年都沒有用過的產(chǎn)品信息設(shè)置為不活躍;有時候需要把訂單尾數(shù)少于5的采購訂單指定為結(jié)束等等。所有,數(shù)據(jù)庫管理員必須要掌握這種參數(shù)與Upadate語句結(jié)合使用的案例。這有助于數(shù)據(jù)庫管理員在日后的工作中,利用這些語句順利完成任務(wù)。

  五、 使用參數(shù)時的注意事項。

  從上面分析中可以看出,使用參數(shù)與不使用參數(shù)有一個很大的區(qū)別。如果直接在SQL語句中輸入查詢條件(不通過參數(shù)來實現(xiàn)),那么數(shù)據(jù)庫在編譯SQL語句的時候,會進(jìn)行語法方面的檢查。如果輸入的條件有錯誤,或者其數(shù)據(jù)類型跟需要比較字段的數(shù)據(jù)類型不一致,或者在SET語句中需要更新的值與數(shù)據(jù)庫字段的數(shù)據(jù)類型不一致的話,那么數(shù)據(jù)庫就會提示錯誤信息。也就是說,在執(zhí)行語句之前,就對了一道保障。

  但是如果使用參數(shù)來傳遞數(shù)據(jù)的話,有一個不好的信息。即在SQL語句執(zhí)行時,傳遞的參數(shù)是否符合要求呢?此時對數(shù)據(jù)庫來說,只有在SQL語句執(zhí)行的時候才能夠知道。為了避免這種情況,***能夠在應(yīng)用程序那邊進(jìn)行相關(guān)的判斷與限制。如需要查詢今天是否有員工曠工、遲到、早退等等情況。一共需要兩個參數(shù),一是時間,二是事由(可以多選)。但是這兩個數(shù)據(jù)又都是比較特別的。如時間是一個日期類型的數(shù)據(jù)。如果在應(yīng)用程序客戶端用戶不小心輸入了一個不是日期類型的數(shù)據(jù),或者把2009年5月20日寫成了2009年5月40日。這很可能是筆誤,但這畢竟是錯誤,數(shù)據(jù)庫無法識別類似的錯誤。為此***能夠在應(yīng)用程序客戶端處就進(jìn)行檢查。如果發(fā)現(xiàn)這個輸入的日期非法的話,就在客戶端把這個參數(shù)傳遞給數(shù)據(jù)庫之前就提示參數(shù)輸入錯誤。

  另外事由這個字段應(yīng)該是跟列表類似的數(shù)據(jù)類型。在數(shù)據(jù)庫中只保存著對應(yīng)的幾個編碼。也就是說,其輸入的是有一定含義的序列。對于這種數(shù)據(jù),在客戶端上也需要進(jìn)行控制。其實控制起來也很簡單。即不要讓用戶自己手工輸入,而是通過復(fù)選框的形式來用戶來進(jìn)行選擇。然后應(yīng)用程序直接根據(jù)選擇的內(nèi)容翻譯成對應(yīng)的參數(shù)然后傳遞給數(shù)據(jù)庫中的SQL語句。顯然在應(yīng)用程序客戶端層面可以對參數(shù)的合法性進(jìn)行控制,***限度的保障輸入的數(shù)據(jù)符合SQL語句的要求。避免因為數(shù)據(jù)類型不一致而導(dǎo)致SQL語句執(zhí)行錯誤。所以,在SQLServer數(shù)據(jù)庫使用參數(shù)的話,數(shù)據(jù)庫管理員還需要跟程序開發(fā)者好好溝通,才能夠讓參數(shù)發(fā)揮其應(yīng)有的作用。

這就是我要為大家介紹的查詢參數(shù)提高SQL語句的利用率的全部內(nèi)容,希望大家能充分理解文章內(nèi)容,將文中的知識真正變成自己的知識,為大家以后的工作帶去便利。

【編輯推薦】

  1. 寫出高性能SQL語句的十三條法則
  2. 開啟MySQL慢查詢 查找影響效率的SQL語句
  3. 通過索引優(yōu)化MySQL語句的實現(xiàn)方法
責(zé)任編輯:迎迎 來源: IT專家網(wǎng)
相關(guān)推薦

2011-04-02 11:16:16

MRTG監(jiān)控帶寬

2021-02-03 09:26:49

數(shù)據(jù)中心基礎(chǔ)設(shè)施能源

2013-09-29 16:09:26

OpenStack云計算

2010-11-15 16:46:49

Oracle查詢效率

2022-11-29 11:33:30

戴爾

2012-05-08 15:04:12

Platform

2023-04-04 09:22:50

LinuxCPU命令

2017-08-25 15:56:54

Linuxproc文件系統(tǒng)CPU利用率

2010-03-11 16:49:55

Linux CPU利用

2025-11-03 02:45:00

2009-01-15 18:49:03

服務(wù)器虛擬化VMware

2011-07-13 09:16:08

服務(wù)器虛擬化數(shù)據(jù)中心

2013-03-19 12:23:25

SDN網(wǎng)絡(luò)利用率網(wǎng)絡(luò)系統(tǒng)架構(gòu)

2011-04-12 09:07:47

磁盤空間利用率虛擬化的隱藏成本

2012-11-07 15:07:30

VMware虛擬化

2025-09-15 08:34:01

2013-04-02 09:15:40

服務(wù)器虛擬化

2012-05-08 13:24:45

負(fù)載均衡帶寬銳捷網(wǎng)絡(luò)

2020-02-26 16:19:44

漏洞網(wǎng)絡(luò)安全

2024-10-14 13:01:33

AOTcpu符號
點贊
收藏

51CTO技術(shù)棧公眾號

天天操综合520| 久久国产精品网| 成人拍拍拍免费视频网站| 成人在线视频一区二区三区| 四虎国产精品免费久久5151| 亚洲国产精品久久久久婷婷884| 成人精品一区二区三区电影免费| 日韩成人亚洲| 色综合色狠狠综合色| 国产黄色一级网站| 久久激情一区| 欧美丝袜丝交足nylons| 91pron在线| 亚洲精品人成| 欧美激情五月| 日本欧美中文字幕| 哺乳挤奶一区二区三区免费看 | 性欧美视频videos6一9| 国产一区二区三区影视| 国产成人精品电影| 欧亚一区二区| 欧美日韩日本国产| 欧美另类高清zo欧美| 日本激情视频网| 久久伊99综合婷婷久久伊| 性做爰过程免费播放| 国产欧美日韩亚洲一区二区三区| 98国产高清一区| 国产免费成人在线| 免费的成人av| 9色porny| 中文字幕永久在线不卡| 日本xxxxwwww| 同产精品九九九| 欧美亚洲国产日韩2020| 国产视频一区二| 国内自拍欧美激情| 久久影院一区| 欧美三日本三级少妇三99| 久草中文综合在线| www.这里只有精品| 欧美日韩精品在线视频| 国语自产精品视频在线看一大j8| 91麻豆精品一二三区在线| 国外成人在线直播| 国产精品久久久久久影院8一贰佰 国产精品久久久久久麻豆一区软件 | 中文字幕日韩精品久久| 九九免费精品视频在线观看| 国产精品99久久久久久久女警| 亚洲精品二区| 亚洲精品视频免费看| 91美女视频在线| 亚洲第一页自拍| 欧美人与动xxxxz0oz| 国产欧美va欧美va香蕉在线| 黄色av网址在线免费观看| 精品久久久久久久久久久院品网| 久久婷婷五月综合色丁香| 亚洲综合在线中文字幕| 成人av网站在线| 尤物在线网址| 国产做a爰片久久毛片| 黄色高清无遮挡| 欧美精品 国产精品| 精品产国自在拍| www.av中文字幕| 欧美精品第1页| 欧美另类亚洲| 区一区二日本| 久热精品在线视频| 蜜臀99久久精品久久久久久软件| 色视频在线看| 欧美一区二区影院| 日本一区二区成人在线| 欧美专区福利免费| 欧美大陆一区二区| 色婷婷综合激情| 国产欧美日韩影院| 羞羞的视频网站| 日本高清+成人网在线观看| 久久夜色精品一区| 中文字幕在线高清| 无码人妻精品一区二区蜜桃百度 | 含羞草激情视频| 青青草一区二区| 一区二区久久久| 欧美hentaied在线观看| www.999av| 国内精品在线一区| 一区二区三区精品在线| 色婷婷色综合| 黄色小视频在线免费观看| 亚洲a在线观看| 欧美日韩高清一区| 日韩中文字幕亚洲一区二区va在线| 亚洲电影视频在线| 国产成年人在线观看| 色综久久综合桃花网| 91视频免费看| 国产福利资源一区| 手机亚洲第一页| 久久久久高清| 日韩精品中文字幕在线播放| 久久色成人在线| 精品国产aⅴ| 欧美性天天影视| 精品少妇人妻av免费久久洗澡| 2018日韩中文字幕| 3d动漫精品啪啪1区2区免费| 91麻豆精品在线观看| 久久久久电影| 欧美男女视频| 国产在线超碰| 成年人在线观看视频免费| 成人av番号网| 最近中文字幕2019免费| 欧美日韩在线影院| 亚洲国产一区视频| 欧美123区| 欧美大片aaa| 国产剧情在线| 亚洲天堂资源| 国产日韩欧美中文在线| 青青视频一区二区| 天堂资源在线中文精品| www.日韩av| 亚洲不卡在线观看| 欧美成人精品1314www| 色伦专区97中文字幕| 午夜精品久久久久久久久久久久久| 国产欧美精品va在线观看| 日韩国产欧美一区| 国产suv精品一区二区三区88区| 久久久久久成人精品| 国产成人精品一区二区| 亚洲资源在线看| 手机看片福利永久国产日韩| 国产乱子伦精品无码专区| 国产1区2区在线| 男女网站在线观看| 国产精品高清乱码在线观看| 老牛国内精品亚洲成av人片| 91精品一区二区三区综合| 免费观看30秒视频久久| 国产精品国产成人国产三级 | 91最新在线免费观看| 国产精品高清免费在线观看| 免费在线一区二区| 99精产国品一二三产品香蕉| av资源网站在线观看| 欧美黑人粗大| 伊人久久大香线蕉综合热线| 国产不卡在线一区| 亚洲无人区一区| 亚洲第一av网站| 精品国产百合女同互慰| 欧美激情一二区| 在线观看欧美亚洲| 国产91白丝在线播放| 男人天堂综合| 国产区一区二| 国产一区二区三区久久久| 精品美女国产在线| 日韩一区二区福利| 久久精品国产一区二区三区日韩| 狠狠操精品视频| 伊伊综合在线| 亚洲激情一区| 精品国产31久久久久久| 欧美夫妻性生活xx| www在线观看免费| 欧美91看片特黄aaaa| 精品综合免费视频观看| 日韩高清欧美高清| 国内精品视频一区二区三区| 日韩精品麻豆| 日本一区二区动态图| 欧美午夜片在线看| 日韩亚洲欧美成人| 成人做爰www免费看视频网站| 日日摸日日碰夜夜爽无码| 色猫av在线| 精品一区二区三区在线| 国产高清不卡一区二区| 欧美狂野另类xxxxoooo| 国产精品99导航| 日本www在线视频| 2024最新电影免费在线观看| 久久精品国产68国产精品亚洲| www日韩大片| 日韩中文字幕不卡视频| 日韩视频在线播放| 欧美激情办公室videoshd| 亚洲深夜福利在线观看| 国产日韩欧美a| 久久在线视频在线| 亚洲人成色77777| 成人精品在线| wwww国产精品欧美| 中文字幕精品网|