



下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
分享SQL語句書寫規(guī)范書寫風(fēng)格1.語句關(guān)鍵字應(yīng)全部使用小寫。2.引用字符時應(yīng)使用單引號。如:updatetestablesetidcol=’abcd’。3.連接符或運(yùn)算符or、in、and、=、<=、>=,+,-等前后宜加上一個空格。否則容易導(dǎo)致以下類似問題。例如在語句selecta–bfromtable中,a,b均為變量,拼寫該語句時,如果a=6,b=-3,則語句變?yōu)閟elect6--3fromtable。--被視為SQL的注釋,結(jié)果語句報錯。4.不得使用“select*from…”語法,必須標(biāo)明字段名。即selectcol1,col2,…fromtableawhere…5.嚴(yán)禁使用“insertintotable_namevalues(?,?,……)”語法,統(tǒng)一使用“insertintotable_name(col1,col2,……)values(?,?,…...)”。6.SQL語句包含多表連接時,必須加上表的別名,對每個字段的使用都要帶上表別名。selecta.col1,a.col2,b.col3fromtableaa,tablebbwherea.col4=b.col57.應(yīng)避免顯式或隱含的類型轉(zhuǎn)換。例如在where子句中numeric型和int型的列的比較。8.在子查詢中前后必須加上括號。selectcol1,col2fromtableawherecol3in(selectcol4fromtablebwherecol4>0)9.執(zhí)行SQL時一次應(yīng)只執(zhí)行一條,如果多條語句則應(yīng)分開執(zhí)行,但必須保持在一個事務(wù)中。不得一次執(zhí)行通過分號等分開的多條語句,這樣處理不清晰。10.如果能采用or代替,則不宜使用in語句。in語句中的元素不得超過500個,如果超過,則應(yīng)拆分為多條SQL語句。嚴(yán)禁使用xxin(‘’,’’….)orxxin(‘’,’’,’’)。11.or連接條件不得超過500,超過時應(yīng)拆分為多條語句。性能優(yōu)化1.查詢時應(yīng)盡量減少多余數(shù)據(jù)的讀取,通過使用where子句來減少返回的記錄數(shù)。2.如果在語句中有notin(in)操作,應(yīng)盡量用notexists(exists)來代替。特別對大數(shù)據(jù)量的兩者檢索速度有很明顯的區(qū)別。3.不宜使用外連接。外連接效率低。4.一條SQL語句中不宜使用3層以上的嵌套查詢。如果超過,則應(yīng)在Java等應(yīng)用服務(wù)器程序中處理。5.一條SQL語句中不得從4個及以上表中同時取數(shù)。僅作關(guān)聯(lián)或過濾條件而不涉及取數(shù)的表不參與表個數(shù)計(jì)算;如果必須關(guān)聯(lián)4個或4個以上表,應(yīng)在Java等應(yīng)用服務(wù)器程序中處理。6.應(yīng)盡量避免使用orderby和groupby排序操作,如必須使用排序操作,盡量建立在有索引的列上。因?yàn)榇罅康呐判虿僮饔绊懴到y(tǒng)性能。7.對索引列的比較,應(yīng)盡量避免使用not或!=,可拆分為幾個條件。因?yàn)椤皀ot”和“!=”不會使用索引。如col1是索引列,條件col1!=0可以拆分為col1>0orcol2<0。8.應(yīng)盡量將數(shù)據(jù)庫函數(shù)、計(jì)算表達(dá)式寫在邏輯操作符右邊。因?yàn)檫@些對列的操作會將導(dǎo)致表掃描,影響性能。9.在where子句中,如果有多個過濾條件,應(yīng)將索引列或過濾記錄數(shù)最多的條件放在前面。10.能用連接方式實(shí)現(xiàn)的功能,不得用子查詢。例如:selectnamefromcustomerwherecustomerIdin(selectcustomerIdfromorderwheremoney>1000)。應(yīng)該用如下語句代替:selectnamefromcustomerinnerjoinorderoncustomer.customerId=order.customerIdwhereorder.money>100?;騭electnamefromcustomerwhereexists(select1fromorderwheremoney>1000andcustomer.customerId=order.customerId)<這里需要注意:使用exists的效率依賴于匹配度,innerjoin效率比較穩(wěn)定>11.多表關(guān)聯(lián)查詢時,寫法可遵循以下原則,這樣做有利于建立索引,提高查詢效率。格式如下:selectsum(t1.je)fromtable1t1,table2t2,table3t3where(t1的等值條件(=))and(t1的非等值條件)and(t2與t1的關(guān)聯(lián)條件)and(t2的等值條件)and(t2的非等值條件)and(t3與t2的關(guān)聯(lián)條件)and(t3的等值條件)and(t3的非等值條件)??鐢?shù)據(jù)庫支持1.對于跨數(shù)據(jù)庫Java應(yīng)用程序的VO映射數(shù)據(jù)庫的數(shù)據(jù)格式建議:
1)整型字段:字段設(shè)置保存為Integer或者Long
2)數(shù)字型字段:若需要使用小數(shù)2位以上的精確計(jì)算,讀取、插入、更新使用BigDecimal類型
3)字符型字段:讀取為String,并保存為String,插入或者更新為String4)時間字段:讀取為String,插入或者更新時的時間格式使用中間件統(tǒng)一處理。2.字符串連接應(yīng)使用“||”符號,而不應(yīng)使用“+”?!?”是SQLServer語法,Oracle和DB2支持“||”,Hibernate轉(zhuǎn)化為SQLServer時,會自動將“||”轉(zhuǎn)為“+”。3.通配符不能使用‘[a-c]%’這種形式。應(yīng)寫成如:selectcol1,col2fromtable_namewherecol1like‘[a]%’ORcol1like‘[b]%’ORcol1like‘[c]%’4.截取字符串長度函數(shù)應(yīng)使用substr,起始位置為1表示從頭開始。因?yàn)閐b2中substr起點(diǎn)為1,0會報錯;在SqlServer數(shù)據(jù)庫中使用的是substring需要進(jìn)行轉(zhuǎn)換。5.不得通過selectpercentn和selecttopn限制查詢結(jié)果集的記錄數(shù)。6.join與on必須嚴(yán)格匹配,嚴(yán)禁出現(xiàn)沒有on的join。7.join…on后面不宜使用or,如果使用則需將or的范圍用()括起
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 工作中合同協(xié)議書
- 美容消費(fèi)服務(wù)合同協(xié)議書
- 數(shù)產(chǎn)品方案策劃書3
- 電鍍氧化加工合同協(xié)議書
- 一種適老智能家居全場景方案規(guī)劃
- 中國乙二醇乙醚項(xiàng)目創(chuàng)業(yè)投資方案
- 非洲豬瘟與常見豬病的癥狀鑒別
- 原材料投資合同協(xié)議書
- 旅游管理-旅行社品牌策略
- 全國項(xiàng)目拓展計(jì)劃書模板
- 河南省青桐鳴大聯(lián)考普通高中2024-2025學(xué)年高三考前適應(yīng)性考試地理試題及答案
- 《溺水急救方法》課件
- 辦公樓安全培訓(xùn)
- 家庭教育方式綜合測驗(yàn)
- 律師會見筆錄范本
- 浙教版科學(xué)電學(xué)基礎(chǔ)知識總結(jié)
- T/CEC 164-2018 火力發(fā)電廠智能化技術(shù)導(dǎo)則_(高清-最新版)
- 抹機(jī)水MSDS 安全資料表
- 醫(yī)院感染管理組織框架
- 特殊平行四邊形課件
- 八種皮膚類型PPT課件
評論
0/150
提交評論