阿里開(kāi)發(fā)強(qiáng)制要求的11條SQL編寫(xiě)規(guī)范

上傳人:ta****fu 文檔編號(hào):207194182 上傳時(shí)間:2023-05-05 格式:DOCX 頁(yè)數(shù):2 大?。?0.80KB
收藏 版權(quán)申訴 舉報(bào) 下載
阿里開(kāi)發(fā)強(qiáng)制要求的11條SQL編寫(xiě)規(guī)范_第1頁(yè)
第1頁(yè) / 共2頁(yè)
阿里開(kāi)發(fā)強(qiáng)制要求的11條SQL編寫(xiě)規(guī)范_第2頁(yè)
第2頁(yè) / 共2頁(yè)

最后一頁(yè)預(yù)覽完了!喜歡就下載吧,查找使用更方便

9.98 積分

下載資源

資源描述:

《阿里開(kāi)發(fā)強(qiáng)制要求的11條SQL編寫(xiě)規(guī)范》由會(huì)員分享,可在線閱讀,更多相關(guān)《阿里開(kāi)發(fā)強(qiáng)制要求的11條SQL編寫(xiě)規(guī)范(2頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、阿里開(kāi)發(fā)強(qiáng)制要求的11條SQL編寫(xiě)規(guī)范 1. 【強(qiáng)制】不要使用count(列名)或count(常量)來(lái)替代count(*),count(*)是SQL92定義的標(biāo)準(zhǔn)統(tǒng)計(jì)行數(shù)的語(yǔ)法,跟數(shù)據(jù)庫(kù)無(wú)關(guān),跟NULL和非NULL無(wú)關(guān)。 說(shuō)明:count(*)會(huì)統(tǒng)計(jì)值為NULL的行,而count(列名)不會(huì)統(tǒng)計(jì)此列為NULL值的行。 2. 【強(qiáng)制】count(distinct col) 計(jì)算該列除NULL之外的不重復(fù)行數(shù),注意 count(distinct col1, col2) 如果其中一列全為NULL,那么即使另一列有不同的值,也返回為0。 3. 【強(qiáng)制】當(dāng)某一列的值全是NULL時(shí),count(c

2、ol)的返回結(jié)果為0,但sum(col)的返回結(jié)果為NULL,因此使用sum()時(shí)需注意NPE問(wèn)題。 正例:可以使用如下方式來(lái)避免sum的NPE問(wèn)題:SELECT IF(ISNULL(SUM(g)),0,SUM(g)) FROM table; 4. 【強(qiáng)制】使用ISNULL()來(lái)判斷是否為NULL值。 說(shuō)明:NULL與任何值的直接比較都為NULL。 1) NULL<>NULL的返回結(jié)果是NULL,而不是false。 2) NULL=NULL的返回結(jié)果是NULL,而不是true。 3) NULL<>1的返回結(jié)果是NULL,而不是true。 5. 【強(qiáng)制】 在代碼中寫(xiě)分頁(yè)查詢(xún)邏輯時(shí),

3、若count為0應(yīng)直接返回,避免執(zhí)行后面的分頁(yè)語(yǔ)句。 6. 【強(qiáng)制】不得使用外鍵與級(jí)聯(lián),一切外鍵概念必須在應(yīng)用層解決。 說(shuō)明:以學(xué)生和成績(jī)的關(guān)系為例,學(xué)生表中的student_id是主鍵,那么成績(jī)表中的student_id則為外鍵。如果更新學(xué)生表中的student_id,同時(shí)觸發(fā)成績(jī)表中的student_id更新,即為級(jí)聯(lián)更新。外鍵與級(jí)聯(lián)更新適用于單機(jī)低并發(fā),不適合分布式、高并發(fā)集群;級(jí)聯(lián)更新是強(qiáng)阻塞,存在數(shù)據(jù)庫(kù)更新風(fēng)暴的風(fēng)險(xiǎn);外鍵影響數(shù)據(jù)庫(kù)的插入速度。 7. 【強(qiáng)制】禁止使用存儲(chǔ)過(guò)程,存儲(chǔ)過(guò)程難以調(diào)試和擴(kuò)展,更沒(méi)有移植性。 8. 【強(qiáng)制】數(shù)據(jù)訂正(特別是刪除、修改記錄操作)時(shí),要先s

4、elect,避免出現(xiàn)誤刪除,確認(rèn)無(wú)誤才能執(zhí)行更新語(yǔ)句。 9. 【推薦】in操作能避免則避免,若實(shí)在避免不了,需要仔細(xì)評(píng)估in后邊的集合元素?cái)?shù)量,控制在1000個(gè)之內(nèi)。 10. 【參考】如果有國(guó)際化需要,所有的字符存儲(chǔ)與表示,均以u(píng)tf-8編碼,注意字符統(tǒng)計(jì)函數(shù)的區(qū)別。 說(shuō)明: SELECT LENGTH("輕松工作"); 返回為12 SELECT CHARACTER_LENGTH("輕松工作"); 返回為4 如果需要存儲(chǔ)表情,那么選擇utf8mb4來(lái)進(jìn)行存儲(chǔ),注意它與utf-8編碼的區(qū)別。 11. 【參考】 TRUNCATE TABLE 比 DELETE 速度快,且使用的系統(tǒng)和事務(wù)日志資源少,但TRUNCATE無(wú)事務(wù)且不觸發(fā)trigger,有可能造成事故,故不建議在開(kāi)發(fā)代碼中使用此語(yǔ)句。 說(shuō)明:TRUNCATE TABLE 在功能上與不帶 WHERE 子句的 DELETE 語(yǔ)句相同。

展開(kāi)閱讀全文
溫馨提示:
1: 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶(hù)上傳的文檔直接被用戶(hù)下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!