溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

PostgreSQL中如何處理庫,表,字段,值大小寫的問題

發(fā)布時間:2021-11-26 09:46:33 來源:億速云 閱讀:227 作者:小新 欄目:大數(shù)據(jù)

這篇文章主要介紹了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ù)庫的表進行訪問

PostgreSQL中如何處理庫,表,字段,值大小寫的問題

通過以上測試,可以得出,數(shù)據(jù)庫的庫名是大小寫是敏感的,所以在建庫的時候,需要注意大小寫的問題。

表大小寫的測試

我們在test 庫中,建立三個表,BIG,big, Big 三個表

在你試著創(chuàng)建第一張表的時候,沒有報錯,但你在建立第二張表的時候,就開始報錯了,我們可以看到test 數(shù)據(jù)庫中只有一張叫big的表,有人說,那不對我要是先建立 BIG 表呢?(你可以試試,結(jié)果是一樣的,postgresql 在一個數(shù)據(jù)庫中只能運行小寫表名的存在)

PostgreSQL中如何處理庫,表,字段,值大小寫的問題

當然如果你非要存儲不同大小寫的表名,PostgreSQL 也不是不可以,那就是需要加“” 雙引號

PostgreSQL中如何處理庫,表,字段,值大小寫的問題

最后我們來嘗試一下字段名和字段值的問題

我們還是在test 數(shù)據(jù)庫里面建立表,并且會在這個表里面建立三個字段

分表是

name

Name

NAME

并且在每個字段里面的值,也是和字段名的撰寫方式一樣。我們來看一下結(jié)果。

在做到下面的時候,大家應(yīng)該看到這個錯誤, 在一個表里面,的字段名也默認統(tǒng)一為小寫。當然如果你不喜歡,還是可以建立你想建立的字段名大小寫,還是那樣加“雙引號”。

PostgreSQL中如何處理庫,表,字段,值大小寫的問題

既然如此,我們只能繼續(xù)在字段的值的上面找問題了

我們在一個表中的name 字段,插入不同的值, TIM, tim, Tim 三個值,我們看看結(jié)果如何,并且在查詢中是不是會有什么問題?

PostgreSQL中如何處理庫,表,字段,值大小寫的問題

好了數(shù)據(jù)已經(jīng)生成了,看看有些人在群里面提出的問題,是不是真的

PostgreSQL中如何處理庫,表,字段,值大小寫的問題

PostgreSQL中如何處理庫,表,字段,值大小寫的問題

看到上面的結(jié)果,驗證了群里面有人提出的問題的真實性,的確不同的大小寫值,會在查詢里面有問題。

抱怨的聲音就由此而發(fā),其中有的人就說,我們那些前端根本就不管大小寫的問題,我們后端怎么去寫SQL 語句去查這些數(shù)據(jù)。

其實So Easy 我們來將問題化整為零

1  輸入數(shù)據(jù)不規(guī)范,里面大小寫都有,但查詢的時候,給出的條件是小寫,請問是否可以將大寫,大小寫都有的記錄查出來。

可以:

只需要這樣就可以,詳見下圖,其實我到是覺得這個是POSTGRESQL 比別的數(shù)據(jù)庫強的地方,很嚴謹,但如果需要寬松也是支持的。

PostgreSQL中如何處理庫,表,字段,值大小寫的問題

另外這個事情我個人覺得,不能將所有的事情都推到后端,前端該做的驗證,該做的檢測,和過濾,不能講這個工作轉(zhuǎn)移到后端。

但又的同學(xué)說,沒有辦法,公司就是這樣,那我們該怎么辦

方法是有的,例如以生成的訂單號為例,他必須是唯一的,但如果客戶輸入的時候,有的大寫,有的小寫,那豈不是要出現(xiàn)兩個訂單號了。

建議可以在輸入訂單號的后端加入 lower()  upper()函數(shù),將輸入的字符變?yōu)橐环N格式。

感謝你能夠認真閱讀完這篇文章,希望小編分享的“PostgreSQL中如何處理庫,表,字段,值大小寫的問題”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識等著你來學(xué)習(xí)!

向AI問一下細節(jié)

免責(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)容。

AI