Oracle數(shù)據(jù)庫(kù)查詢(xún)的五個(gè)小技巧 |
發(fā)布時(shí)間: 2012/7/13 15:14:52 |
數(shù)據(jù)查詢(xún),是Oracle數(shù)據(jù)庫(kù)操作中最主要的功能之一;有時(shí)候Oracle數(shù)據(jù)庫(kù)查詢(xún)性能的好壞,直接關(guān)系到Oracle數(shù)據(jù)庫(kù)的運(yùn)行效率,關(guān)系到Oracle數(shù)據(jù)庫(kù)的選型。對(duì)一些平時(shí)大家容易忽略的查詢(xún)小技巧這里做一些總結(jié),方便大家以后運(yùn)用,或許大家可能正在為此犯愁呢?
第一個(gè)技巧:利用連接符連接多個(gè)字段 如在員工基本信息表中,有員工姓名、員工職位、出身日期等等。如果現(xiàn)在視圖中這三個(gè)字段顯示在同一個(gè)字段中,并且中間有分割符。如我現(xiàn)在想顯示的結(jié)果為“經(jīng)理Victor出身于1976年5月3日”。這該如何處理呢?其實(shí),這是比較簡(jiǎn)單的,我們可以在Select查詢(xún)語(yǔ)句中,利用連接符把這些字段連接起來(lái)。 如可以這么寫(xiě)查詢(xún)語(yǔ)句: SELECT員工職位 ||’ ’ ||員工姓名||’出身于’||出身日期 as 員工出身信息 FROM 員工基本信息表; 通過(guò)這條語(yǔ)句就可以實(shí)現(xiàn)如上的需求。也就是說(shuō),我們?cè)谄綍r(shí)查詢(xún)中,可以利用||連接符把一些相關(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)碼等字段。若查詢(xún)這些內(nèi)容,可能不會(huì)有重復(fù)的行。但是,我若想知道,在公司內(nèi)部設(shè)置了哪些部門(mén)與職位的時(shí)候,并且這些部門(mén)與職位配置了相關(guān)人員。此時(shí),又該如何查詢(xún)呢? 若我現(xiàn)在直接查詢(xún)部門(mén)表,其可以知道系統(tǒng)中具體設(shè)置了哪些部門(mén)與職位。但是,很有可能這些部門(mén)或者職位由于人事變動(dòng)的關(guān)系,現(xiàn)在已經(jīng)沒(méi)有人了。所以,這里查詢(xún)出來(lái)的是所有的部門(mén)與職位信息,而不能夠保證這個(gè)部門(mén)或者職位一定有職員存在。也就是說(shuō),這不能夠滿(mǎn)足于我們上面的要求。 若我現(xiàn)在直接從員工信息表中查詢(xún),雖然可以保證所查詢(xún)出來(lái)的部門(mén)與職位信息,一定有員工信息的存在。但是,此時(shí)查詢(xún)出來(lái)的部門(mén)與職位信息會(huì)有重復(fù)的行。如采購(gòu)部門(mén)分工合作,可能會(huì)有采購(gòu)采購(gòu)小組長(zhǎng)。此時(shí),在查詢(xún)出來(lái)的部門(mén)與職位的信息中,就會(huì)有三條重復(fù)的記錄。 所以,以上兩種處理方式,都不能夠百分之百的滿(mǎn)足企業(yè)用戶(hù)的需求。此時(shí),我們其實(shí)可以利用一個(gè)DISTINCT函數(shù),來(lái)消除其中查詢(xún)出來(lái)的重復(fù)行。 如我們可以利用SELECT DISTINCT 部門(mén)信息,職位信息 FROM 員工基本信息表。通過(guò)這條加了DISTINCT約束的查詢(xún)語(yǔ)句,不但可以查詢(xún)出所有有員工的職位與部門(mén)信息,而且,會(huì)把重復(fù)的記錄過(guò)濾掉,從而提高可閱讀性。 所以,在數(shù)據(jù)庫(kù)設(shè)計(jì)過(guò)程中,特別是在查詢(xún)語(yǔ)句的使用中,這個(gè)函數(shù)特別有用。 本文出自:億恩科技【www.ruiliheng.com】 服務(wù)器租用/服務(wù)器托管中國(guó)五強(qiáng)!虛擬主機(jī)域名注冊(cè)頂級(jí)提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM] |