欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

幾個SQL小知識

系統 1719 0
原文: 幾個SQL小知識

寫在前面的話:之前做的一個項目,數據庫及系統整體構架設計完成之后,和弟兄們經過一段時間的編碼,系統如期上線,剛開始運行一切良好,后來隨著數據量的急劇膨脹,慢慢出現了很多莫名其妙的問題,經過調試,修改了數據庫中幾個存儲過程的一些問題。有意思的是,有一個存儲過程里,為了實現一個小的功能,寫了好多好多的代碼,又是游標又是循環的,其實用系統的一個默認函數就能解決掉。這里想說的是,學習工作之余,在沒有要解決問題的壓力之下,還是建議 系統的看看書 ,對于一些認為沒啥用的知識點,也建議去仔細的看看,練練手,說不定什么時候就用到了,到時也好有針對性的去查,不至于盲目的按照自己的思路,重復的創造一些低效的解決方法。

======正文開始===========

1.[]的使用

  當我們所要查的表是系統關鍵字或者表名中含有空格時,需要用[]括起來,例如新建了兩個表,分別為user,user info,那么select * from user和select * from user info就要報錯,需要寫成:select * from [user] 和 select * from [user info], 不過千萬不要因為有[]的幫助,就隨意起名了,那是自找麻煩,不過我確實看到有人把用戶表起名為user的。

2.NULLIF函數

  NULLIF(Expression1,Expression2):給定兩個參數Expression1和Expression2,如果兩個參數相等,則返回NULL;否則就返回第一個參數。

  等價于:Case WHEN Expression1=Expression2 Then NULL ELSE Expression1。

  例如Select NULLIF(1,1)返回NULL,Select NULLIF(1,2)返回1。

  有一個實際的應用,例如防止除0操作的放生,可以使用a/NULLIF(b,0),這樣就不怕b是0了,當然除0操作也可以通過別的方式判斷。

3.NULL

  NULL是個神奇的東西,表示空值,未知值,任何數與它加減乘除都返回NULL。

4.ISNULL函數

  ISNULL(Expression1,Expression2):給定兩個參數Expression1和Expression2,如果Expression1是NULL,那么返回Expression2,否則返回Expression1。

  等價于:Case WHEN Expression1 is NULL Then Expression2 ELSE Expression1。

  例如Select ISNULL(NULL,1)返回1,Select ISNULL(1,2)返回1。

  有一個實際的應用,可以對空值進行默認值替代,例如SELECT ISNULL(email,'沒有填寫email') from table1,所有email為null的,用'沒有填寫email'來替代。

?5.COALESCE函數

  COALESCE(Expression1,Expression2,Expression3,......):接受一系列的表達式或列,返回第一個非空的值。

? ? ? 例如SELECT COALESCE(NULL,NULL,4,NULL,NULL,5),那么返回4,如果里面的參數都為NULL,那么會報錯。

6.WITH TIES

  與top()和order by 一起用,可以返回多于top的行。防止丟失想要的信息。

  例如:有個表table1

(1)select * from table1 order by name desc :結果如下:

幾個SQL小知識

(2)select top(3) * from table1 order by name desc:結果如下:(只有三條)

幾個SQL小知識

(3)select top(3) with ties * from table1 order by name desc:結果如下:

幾個SQL小知識

7.ORDER BY NEWID():返回隨機排序結果。

8.BETWEEN a AND b:返回 大于等于 a, 小于等于 b的結果。如果a>b,那么返回NULL。

9.不要在where條件中使用函數,會強制每一行都計算該函數,無法使用索引查找。

  例如:select * from table1 where id+3>5和select * from table1 where id>5-3,后者效率比前者高。

10.許多以_desc結尾的列,是為了更友好的表示一個列的含義。

  例如:SELECT * FROM sys.databases

幾個SQL小知識

11.推薦一個小插件,SQL Prompt,配合Microsoft SQL Server Management Studio,使用起來非常方便,同時再加上以下幾個快捷鍵:

  (1)ctrl+5或F5,運行代碼,如果想運行特定的語句,那么只是選中該語句,然后F5或ctrl+E即可。

  (2)ctrl+L:顯示執行計劃。

  (3)ctrl+R:顯示隱藏下面的結果窗口,增大自己書寫sql的空間。

  (4)ctrl+K,然后按Y,格式化SQL代碼。

?

幾個SQL小知識


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 国产牛仔裤系列在线观看 | 国产精品人妻一区夜夜爱 | 成人在线免费小视频 | 精品视频一区二区三区 | 五月天婷五月天综合网站 | 久久a区 | 狠狠草视频| 亚洲欧美在线视频 | 久色亚洲 | 国产精品亚洲片在线va | 久久久久中文 | 亚洲一区二区三区在线视频 | 91国内精品久久久久怡红院 | 亚洲精品国产自在久久出水 | 日韩综合在线 | 成人免费黄色 | 狠狠做深爱婷婷久久一区 | 又大又粗进出白浆直流动态图 | 潘金莲强完整版 | 国产精品久久久久久久四虎电影 | 日本在线综合 | 一本色道精品久久一区二区三区 | 久久婷婷色一区二区三区 | 久久国产精品免费网站 | www.91在线| 一区二区在线看 | 能看的毛片网站 | 日本黄视色视频在线观看 | 亚洲综合综合在线 | 国产精品蜜臂在线观看 | 国产精品成人在线播放 | 大看蕉a在线观看 | 九九99久久精品在免费线bt | 青青草在线视频免费观看 | 一区二区三区在线免费观看 | 国产区免费在线观看 | 天天拍天天干天天操 | 一区二区视频在线观看 | www伊人| 亚洲国产二区 | 亚洲射吧|