今天發現它真的是一個問題。 拿我最喜歡的Oracle來說吧。一般情況下,建表不管大小寫,建完表名、欄位名總是大寫的,這樣你不得不在單詞之間加下劃線,從而增加了欄位名長度,有時就超長了。在select的結果中顯示也不美觀。Oracle也支持以雙引號括起來的欄位名,不過,你可要註意啦,用"Ok"建的欄位 ...
今天發現它真的是一個問題。
拿我最喜歡的Oracle來說吧。一般情況下,建表不管大小寫,建完表名、欄位名總是大寫的,這樣你不得不在單詞之間加下劃線,從而增加了欄位名長度,有時就超長了。在select的結果中顯示也不美觀。Oracle也支持以雙引號括起來的欄位名,不過,你可要註意啦,用"Ok"建的欄位名用"OK"、"ok"和Ok都是查不到的,必須用"Ok"。我只想說一句,Oracle在這點上你就搞不懂用戶的需求了吧。也許Oracle也很委屈:“大小寫敏感和不敏感的方案我都提供了,你們還要我怎麼樣?”
我認為,良好的大小寫方案應該是這樣的:忠實地記錄建表時的大小寫,顯示也美觀,也不必加下劃線了。對select等DML語句大小寫不敏感。比如用Ok建的欄位,用ok、OK、Ok、oK都能查到,結果顯示為Ok。這就完美了。對了,Sql Server就是這麼乾的。
MySql呢,需要修改config文件的一個參數,但這個參數的值還有版本的相容問題,有些版本需要修改值為2,有些版本不支持2,汗。
----我是分隔線----
Q:為什麼要忠實記錄建表時的大小寫時?
A:一是因為顯示的美觀,不用加下劃線就比加下劃線美觀,多個單詞全大寫(全小寫)沒有分隔就相當不美觀,簡直無法看。二是從資料庫來生成代碼的時候,代碼需要大小寫。
Q:為什麼DML語句需要大小寫不敏感?
A:人工書寫DML方便。
----我是分隔線----
以上是一家之言,也許具有深厚的Windows使用習慣,在不要人參公雞的前提下,歡迎來表達你的觀點。各種觀點。