成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Oracle進(jìn)行數(shù)據(jù)庫(kù)查詢的小技巧

數(shù)據(jù)庫(kù) Oracle
數(shù)據(jù)庫(kù)查詢,是數(shù)據(jù)庫(kù)操作中最主要的功能之一;有時(shí)候數(shù)據(jù)庫(kù)查詢性能的好壞,直接關(guān)系到數(shù)據(jù)庫(kù)的運(yùn)行效率,關(guān)系到數(shù)據(jù)庫(kù)的選型。下面介紹Oracle數(shù)據(jù)集成的解決方案

  導(dǎo)讀:數(shù)據(jù)庫(kù)查詢,是數(shù)據(jù)庫(kù)操作中最主要的功能之一;有時(shí)候數(shù)據(jù)庫(kù)查詢性能的好壞,直接關(guān)系到數(shù)據(jù)庫(kù)的運(yùn)行效率,關(guān)系到數(shù)據(jù)庫(kù)的選型。因此要熟練掌握和運(yùn)用Oracle進(jìn)行數(shù)據(jù)庫(kù)查詢的小技巧。

  企業(yè)軟件熱點(diǎn)文章

  C語(yǔ)言實(shí)例      區(qū)分旅客國(guó)籍  Oracle數(shù)據(jù)集成的解決方案詳解

  數(shù)據(jù)查詢,是數(shù)據(jù)庫(kù)操作中最主要的功能之一;有時(shí)候數(shù)據(jù)庫(kù)查詢性能的好壞,直接關(guān)系到數(shù)據(jù)庫(kù)的運(yùn)行效率,關(guān)系到數(shù)據(jù)庫(kù)的選型。下面筆者不談大道理,只是對(duì)其中對(duì)一些平時(shí)大家容易忽略的查詢小技巧做一些總結(jié)。或許大家可能正在為此犯愁呢?

  第一個(gè)技巧:利用連接符連接多個(gè)字段

  如在員工基本信息表中,有員工姓名、員工職位、出身日期等等。如果現(xiàn)在視圖中這三個(gè)字段顯示在同一個(gè)字段中,并且中間有分割符。如我現(xiàn)在想顯示的結(jié)果為“經(jīng)理Victor出身于1976年5月3日”。這該如何處理呢?其實(shí),這是比較簡(jiǎn)單的,我們可以在Select查詢語(yǔ)句中,利用連接符把這些字段連接起來(lái)。

  如可以這么寫(xiě)查詢語(yǔ)句:

  SELECT員工職位 ||’ ’ ||員工姓名||’出身于’||出身日期 as 員工出身信息 FROM 員工基本信息表;

  通過(guò)這條語(yǔ)句就可以實(shí)現(xiàn)如上的需求。也就是說(shuō),我們?cè)谄綍r(shí)查詢中,可以利用||連接符把一些相關(guān)的字段連接起來(lái)。這在報(bào)表視圖中非常的有用。如筆者以前在設(shè)計(jì)圖書(shū)館管理系統(tǒng)的時(shí)候,在書(shū)的基本信息處有圖書(shū)的出版社、出版序列號(hào)等等內(nèi)容。但是,有時(shí)會(huì)在打印報(bào)表的時(shí)候,需要把這些字段合并成一個(gè)字段打印。為此,就需要利用這個(gè)連接符把這些字段連接起來(lái)。而且,利用連接符還可以在字段中間加入一些說(shuō)明性的文字,以方便大家閱讀。如上面我在員工職位與員工姓名之間加入了空格;并且在員工姓名與出身日期之間加入了出身于幾個(gè)注釋性的文字。這些功能看起來(lái)比較小,但是卻可以大大的提高內(nèi)容的可讀性。這也是我們?cè)跀?shù)據(jù)庫(kù)設(shè)計(jì)過(guò)程中需要關(guān)注的一個(gè)內(nèi)容。

  總之,令后采用連接符,可以提高我們報(bào)表的可讀性于靈活性。

  第二個(gè)技巧:取消重復(fù)的行

  如在人事管理系統(tǒng)中,有員工基本信息基本表。在這張表中,可能會(huì)有部門(mén)、職位、員工姓名、身份證件號(hào)碼等字段。若查詢這些內(nèi)容,可能不會(huì)有重復(fù)的行。但是,我若想知道,在公司內(nèi)部設(shè)置了哪些部門(mén)與職位的時(shí)候,并且這些部門(mén)與職位配置了相關(guān)人員。此時(shí),又該如何查詢呢?

  若我現(xiàn)在直接查詢部門(mén)表,其可以知道系統(tǒng)中具體設(shè)置了哪些部門(mén)與職位。但是,很有可能這些部門(mén)或者職位由于人事變動(dòng)的關(guān)系,現(xiàn)在已經(jīng)沒(méi)有人了。所以,這里查詢出來(lái)的是所有的部門(mén)與職位信息,而不能夠保證這個(gè)部門(mén)或者職位一定有職員存在。也就是說(shuō),這不能夠滿足于我們上面的要求。

  若我現(xiàn)在直接從員工信息表中查詢,雖然可以保證所查詢出來(lái)的部門(mén)與職位信息,一定有員工信息的存在。但是,此時(shí)查詢出來(lái)的部門(mén)與職位信息會(huì)有重復(fù)的行。如采購(gòu)部門(mén)分工合作,可能會(huì)有采購(gòu)采購(gòu)小組長(zhǎng)。此時(shí),在查詢出來(lái)的部門(mén)與職位的信息中,就會(huì)有三條重復(fù)的記錄。

  所以,以上兩種處理方式,都不能夠百分之百的滿足企業(yè)用戶的需求。此時(shí),我們其實(shí)可以利用一個(gè)DISTINCT函數(shù),來(lái)消除其中查詢出來(lái)的重復(fù)行。

  如我們可以利用SELECT DISTINCT 部門(mén)信息,職位信息 FROM 員工基本信息表。通過(guò)這條加了DISTINCT約束的查詢語(yǔ)句,不但可以查詢出所有有員工的職位與部門(mén)信息,而且,會(huì)把重復(fù)的記錄過(guò)濾掉,從而提高可閱讀性。

  所以,在數(shù)據(jù)庫(kù)設(shè)計(jì)過(guò)程中,特別是在查詢語(yǔ)句的使用中,這個(gè)函數(shù)特別有用。

#p#

  第三個(gè)技巧:勤用WHERE語(yǔ)句

  我們都知道,數(shù)據(jù)庫(kù)查詢效率高不高,是我們?cè)u(píng)價(jià)數(shù)據(jù)庫(kù)設(shè)計(jì)好壞的一個(gè)重要標(biāo)準(zhǔn)。毋庸置疑,在數(shù)據(jù)庫(kù)查詢中勤用Where條件語(yǔ)句,是提高數(shù)據(jù)庫(kù)查詢性能的一個(gè)很重要的手段之一。特別是在設(shè)計(jì)到比較大的表中查詢符合條件的記錄過(guò)程中,利用WHERE條件語(yǔ)句加以限制,可以大幅度的提高查詢的響應(yīng)速度。

  如在圖書(shū)館管理系統(tǒng)中,現(xiàn)在有人想查詢“注冊(cè)會(huì)計(jì)師”輔導(dǎo)用書(shū)的時(shí)候,雖然不在書(shū)的類別或者名稱中輸入“注冊(cè)會(huì)計(jì)師”,先查詢出全部的紀(jì)錄,然后再一條條的看是否有相關(guān)的書(shū)籍信息,也是可行的。但是,這么處理的話,一方面系統(tǒng)響應(yīng)的速度會(huì)非常的慢,因?yàn)槔锩嬗涗浐芏唷A硪环矫妫樵兊慕Y(jié)果看起來(lái)也會(huì)非常的頭疼。

  其實(shí),我們只需要在查詢中加入一些查詢的參數(shù),利用Where條件語(yǔ)句加以限制,則即可以提高數(shù)據(jù)庫(kù)響應(yīng)的速度,也可以找出最符合用戶需求的數(shù)據(jù)。

  另外,我也接觸過(guò)一些在Oracle數(shù)據(jù)庫(kù)上設(shè)計(jì)的平臺(tái)型管理軟件,他們可以自定義相關(guān)的報(bào)表。在報(bào)表設(shè)計(jì)中,只要用戶在前臺(tái)設(shè)計(jì)平臺(tái)中,選中“大表查詢”的話,則這個(gè)平臺(tái)會(huì)在生成報(bào)表的時(shí)候,自動(dòng)應(yīng)用Where條件語(yǔ)句,以提高前臺(tái)系統(tǒng)從數(shù)據(jù)庫(kù)查詢數(shù)據(jù)的效率。

  所以,筆者認(rèn)為在Oracle數(shù)據(jù)庫(kù)系統(tǒng)設(shè)計(jì)中,要勤于使用Where語(yǔ)句。利用Where語(yǔ)句來(lái)提高數(shù)據(jù)庫(kù)查詢的效率。

  第四個(gè)技巧:靈活使用COUNT函數(shù)

  在查詢處理的時(shí)候,COUNT函數(shù)可以說(shuō)是我們應(yīng)用的比較多的函數(shù)之一。如我們有時(shí)候需要統(tǒng)計(jì)員工的人數(shù)、統(tǒng)計(jì)圖書(shū)的種類數(shù)的時(shí)候,都需要使用到這個(gè)函數(shù)。不過(guò),這個(gè)函數(shù)很多人可能會(huì)用,但是到靈活應(yīng)用的地步,還是有一點(diǎn)差距。

  下面筆者就COUNT函數(shù)的一些應(yīng)用技巧談?wù)勛约旱男牡谩?/P>

  一是要靈活放置COUNT函數(shù)的位置,因?yàn)槔肅OUNT函數(shù)統(tǒng)計(jì)記錄數(shù)的時(shí)候,是會(huì)考慮空行的記錄的。如在數(shù)據(jù)表中一般有序列字段與其它的有意義字段兩類。有時(shí)候可能序列字段中有內(nèi)容而其它字段中沒(méi)有內(nèi)容,則在利用COUNT函數(shù)統(tǒng)計(jì)記錄數(shù)量的時(shí)候,會(huì)把這個(gè)空記錄也考慮進(jìn)去。很明顯,則就會(huì)發(fā)生統(tǒng)計(jì)的錯(cuò)誤。所以,這個(gè)COUNT函數(shù)該放在哪個(gè)位置上,還是比較講究的。一般的話,筆者試建議不要放在序列號(hào)字段上,而要放在一些關(guān)鍵的實(shí)體字段中。如統(tǒng)計(jì)員工人數(shù)的時(shí)候,則就可以放在員工姓名或者編號(hào)上等等。

  二是靈活跟其它函數(shù)搭配使用。如在上面的例子中,筆者談到有時(shí)候用戶需要知道現(xiàn)在有員工編制的部門(mén)與職位有哪一些,我們可以利用DISTINCT函數(shù)來(lái)找出具體的部門(mén)。但是,我現(xiàn)在只想知道有編制的部門(mén)與職位具體有多少,此時(shí),我們也可以利用COUNT 與DISTINCT函數(shù)結(jié)合應(yīng)用,找出我們所需要的數(shù)據(jù)。在COUNT函數(shù)中,可以指定ALL與DISTINCT選項(xiàng)。默認(rèn)的情況下,是ALL選項(xiàng),表示統(tǒng)計(jì)所有的行,其中也包括重復(fù)的行。而DISTINCT就表示只統(tǒng)計(jì)不重復(fù)的行。可見(jiàn),COUNT函數(shù)跟其它函數(shù)搭配使用的話,可以簡(jiǎn)化我們的查詢語(yǔ)句,提高查詢效率。

  第五個(gè)技巧:只查詢時(shí)必須的字段

  有時(shí)候,用戶不同的查詢需求都要用到同一張表。如在員工信息表中包含了很多內(nèi)容。有時(shí)候用戶想要知道正式員工有多少;管理層員工有多少;生產(chǎn)線員工又有哪些;或者想知道合同即將到期的員工有哪些。為此,就遇到一個(gè)問(wèn)題,因?yàn)檫@些內(nèi)容基本上都是在同一張表中,那是在同一個(gè)視圖中實(shí)現(xiàn),而是根據(jù)需求不同,設(shè)計(jì)不同的視圖呢?

  若單從技術(shù)上考慮,兩這都是可以實(shí)現(xiàn)的,不會(huì)有多大的難度。但是,若是從數(shù)據(jù)庫(kù)性能上考慮在,則還是采用不同的視圖來(lái)實(shí)現(xiàn)不同的需求為好。

  一方面,若從安全方面講,則可以根據(jù)不同的視圖來(lái)控制相關(guān)的訪問(wèn)權(quán)限。可見(jiàn),把視圖細(xì)化,在權(quán)限控制上則會(huì)更加的靈活。

  另一方面,數(shù)據(jù)的查詢效率,跟數(shù)據(jù)內(nèi)容的多少也有非常密切的關(guān)系。如在查詢員工合同到期信息的時(shí)候,一般不需要員工的地址信息等等。若把這個(gè)信息也查詢出來(lái)的話,由于這個(gè)字段比較長(zhǎng),就會(huì)花費(fèi)比較長(zhǎng)的時(shí)間。所以,在數(shù)據(jù)庫(kù)設(shè)計(jì)中,我們要學(xué)會(huì)根據(jù)用戶不同的需求,設(shè)計(jì)不同的視圖。雖然可能這在設(shè)計(jì)的時(shí)候會(huì)比較花時(shí)間,但是,在確可以提高數(shù)據(jù)庫(kù)的性能與安全性。這筆生意還是劃得來(lái)的。

      這五個(gè)小技巧要做到真正的理解,不要生搬硬套,要靈活運(yùn)用,讓這些技巧真正變成自己的東西,為我們所用。

【編輯推薦】

  1. C#連接Oracle數(shù)據(jù)庫(kù)查詢更改后的數(shù)據(jù)
  2. C#連接Oracle數(shù)據(jù)庫(kù)查詢數(shù)據(jù)
  3. Oracle數(shù)據(jù)庫(kù)系統(tǒng)使用經(jīng)驗(yàn)

 

責(zé)任編輯:迎迎 來(lái)源: 比特網(wǎng)/數(shù)據(jù)庫(kù)
相關(guān)推薦

2011-03-11 16:25:53

Oracle數(shù)據(jù)庫(kù)

2010-03-30 18:48:24

Oracle 學(xué)習(xí)

2010-11-19 13:28:13

2023-10-09 18:13:14

MySQL數(shù)據(jù)庫(kù)查詢

2011-05-25 00:00:00

數(shù)據(jù)庫(kù)設(shè)計(jì)

2010-04-06 11:19:28

Oracle數(shù)據(jù)庫(kù)

2011-03-17 13:23:08

數(shù)據(jù)導(dǎo)入導(dǎo)出

2009-05-15 10:11:55

數(shù)據(jù)庫(kù)查詢查詢性能分頁(yè)瀏覽

2022-04-08 11:25:58

數(shù)據(jù)庫(kù)操作AbilityData

2009-05-18 13:18:54

字符Oracle字符串

2009-08-25 16:36:16

C#進(jìn)行數(shù)據(jù)庫(kù)編程

2009-07-01 10:46:57

JSP程序JSP代碼

2024-04-03 10:05:02

2010-04-21 11:43:33

Oracle數(shù)據(jù)庫(kù)

2010-03-18 09:28:14

Oracle數(shù)據(jù)庫(kù)遷移

2011-09-02 10:06:51

OracleSqlLoad常用技巧

2020-08-31 10:48:11

MySQL數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)技巧

2010-05-31 17:15:39

MySQL數(shù)據(jù)庫(kù)

2018-09-17 16:30:24

數(shù)據(jù)庫(kù)MySQL小技巧

2019-06-23 18:30:00

Python數(shù)據(jù)分析編碼
點(diǎn)贊
收藏

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

主站蜘蛛池模板: 亚洲国产成人精品久久久国产成人一区 | 成人免费在线视频 | 麻豆av免费观看 | 久久国产麻豆 | 亚洲一区二区三区视频 | 精品毛片 | 国精品一区二区 | 久久久久久久电影 | 日韩在线播放一区 | 中文字幕av网 | 亚洲精品在线免费 | 超碰在线97国产 | 成人av看片| 久久伊人精品一区二区三区 | 国产一区| 国产日产欧产精品精品推荐蛮挑 | 国产99在线 | 欧美 | 亚洲免费精品 | 日韩在线一区二区三区 | 精品欧美色视频网站在线观看 | 一本一道久久a久久精品综合 | 青青草av | 午夜精品一区二区三区免费视频 | 日韩在线视频一区 | 亚洲av一级毛片 | 欧美日韩亚洲在线 | 久热伊人 | 午夜在线视频一区二区三区 | 欧州一区二区 | 精品综合在线 | 国产精产国品一二三产区视频 | 亚洲成人网在线观看 | 国产精品九九九 | 中文字幕av中文字幕 | 国内久久精品 | 9久久精品| 欧美一级二级在线观看 | wwww.8888久久爱站网 | 欧美毛片免费观看 | 日韩国产精品一区二区三区 | 一区二区三区四区电影视频在线观看 |