您好,登錄后才能下訂單哦!
這篇文章主要介紹了PostgreSQL中如何處理庫,表,字段,值大小寫的問題,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
需要測試的內容如下
1 數據庫大小寫
2 表名大小寫
3 字段大小寫
4 字段值得大小寫
一些相關的大小寫的函數以及數據的轉換函數
let's go
1 數據庫名的大小寫
首先會建立三個數據庫名字為
1 Test
create table good (name varchar(20));
insert into good (name) values ('Test');
2 test
create table good (name varchar(20));
insert into good (name) values ('test');
3 TEST
create table good (name varchar(20));
insert into good (name) values ('TEST');
然后在這三個數據庫里面,都建立一個表,good, 里面插入的數據會有他自己數據庫的名字
我們來對這些數據庫的表進行訪問
通過以上測試,可以得出,數據庫的庫名是大小寫是敏感的,所以在建庫的時候,需要注意大小寫的問題。
表大小寫的測試
我們在test 庫中,建立三個表,BIG,big, Big 三個表
在你試著創建第一張表的時候,沒有報錯,但你在建立第二張表的時候,就開始報錯了,我們可以看到test 數據庫中只有一張叫big的表,有人說,那不對我要是先建立 BIG 表呢?(你可以試試,結果是一樣的,postgresql 在一個數據庫中只能運行小寫表名的存在)
當然如果你非要存儲不同大小寫的表名,PostgreSQL 也不是不可以,那就是需要加“” 雙引號
最后我們來嘗試一下字段名和字段值的問題
我們還是在test 數據庫里面建立表,并且會在這個表里面建立三個字段
分表是
name
Name
NAME
并且在每個字段里面的值,也是和字段名的撰寫方式一樣。我們來看一下結果。
在做到下面的時候,大家應該看到這個錯誤, 在一個表里面,的字段名也默認統一為小寫。當然如果你不喜歡,還是可以建立你想建立的字段名大小寫,還是那樣加“雙引號”。
既然如此,我們只能繼續在字段的值的上面找問題了
我們在一個表中的name 字段,插入不同的值, TIM, tim, Tim 三個值,我們看看結果如何,并且在查詢中是不是會有什么問題?
好了數據已經生成了,看看有些人在群里面提出的問題,是不是真的
看到上面的結果,驗證了群里面有人提出的問題的真實性,的確不同的大小寫值,會在查詢里面有問題。
抱怨的聲音就由此而發,其中有的人就說,我們那些前端根本就不管大小寫的問題,我們后端怎么去寫SQL 語句去查這些數據。
其實So Easy 我們來將問題化整為零
1 輸入數據不規范,里面大小寫都有,但查詢的時候,給出的條件是小寫,請問是否可以將大寫,大小寫都有的記錄查出來。
可以:
只需要這樣就可以,詳見下圖,其實我到是覺得這個是POSTGRESQL 比別的數據庫強的地方,很嚴謹,但如果需要寬松也是支持的。
另外這個事情我個人覺得,不能將所有的事情都推到后端,前端該做的驗證,該做的檢測,和過濾,不能講這個工作轉移到后端。
但又的同學說,沒有辦法,公司就是這樣,那我們該怎么辦
方法是有的,例如以生成的訂單號為例,他必須是唯一的,但如果客戶輸入的時候,有的大寫,有的小寫,那豈不是要出現兩個訂單號了。
建議可以在輸入訂單號的后端加入 lower() upper()函數,將輸入的字符變為一種格式。
感謝你能夠認真閱讀完這篇文章,希望小編分享的“PostgreSQL中如何處理庫,表,字段,值大小寫的問題”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。