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