PostgreSQL中如何处理库,表,字段,值大小写的问题

这篇文章主要介绍了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, 里面插入的数据会有他自己数据库的名字

我们来对这些数据库的表进行访问

PostgreSQL中如何处理库,表,字段,值大小写的问题

通过以上测试,可以得出,数据库的库名是大小写是敏感的,所以在建库的时候,需要注意大小写的问题。

表大小写的测试

我们在test 库中,建立三个表,BIG,big, Big 三个表

在你试着创建第一张表的时候,没有报错,但你在建立第二张表的时候,就开始报错了,我们可以看到test 数据库中只有一张叫big的表,有人说,那不对我要是先建立 BIG 表呢?(你可以试试,结果是一样的,postgresql 在一个数据库中只能运行小写表名的存在)

PostgreSQL中如何处理库,表,字段,值大小写的问题

当然如果你非要存储不同大小写的表名,PostgreSQL 也不是不可以,那就是需要加“” 双引号

PostgreSQL中如何处理库,表,字段,值大小写的问题

最后我们来尝试一下字段名和字段值的问题

我们还是在test 数据库里面建立表,并且会在这个表里面建立三个字段

分表是

name

Name

NAME

并且在每个字段里面的值,也是和字段名的撰写方式一样。我们来看一下结果。

在做到下面的时候,大家应该看到这个错误, 在一个表里面,的字段名也默认统一为小写。当然如果你不喜欢,还是可以建立你想建立的字段名大小写,还是那样加“双引号”。

PostgreSQL中如何处理库,表,字段,值大小写的问题

既然如此,我们只能继续在字段的值的上面找问题了

我们在一个表中的name 字段,插入不同的值, TIM, tim, Tim 三个值,我们看看结果如何,并且在查询中是不是会有什么问题?

PostgreSQL中如何处理库,表,字段,值大小写的问题

好了数据已经生成了,看看有些人在群里面提出的问题,是不是真的

PostgreSQL中如何处理库,表,字段,值大小写的问题

PostgreSQL中如何处理库,表,字段,值大小写的问题

看到上面的结果,验证了群里面有人提出的问题的真实性,的确不同的大小写值,会在查询里面有问题。

抱怨的声音就由此而发,其中有的人就说,我们那些前端根本就不管大小写的问题,我们后端怎么去写SQL 语句去查这些数据。

其实So Easy 我们来将问题化整为零

1  输入数据不规范,里面大小写都有,但查询的时候,给出的条件是小写,请问是否可以将大写,大小写都有的记录查出来。

可以:

只需要这样就可以,详见下图,其实我到是觉得这个是POSTGRESQL 比别的数据库强的地方,很严谨,但如果需要宽松也是支持的。

PostgreSQL中如何处理库,表,字段,值大小写的问题

另外这个事情我个人觉得,不能将所有的事情都推到后端,前端该做的验证,该做的检测,和过滤,不能讲这个工作转移到后端。

但又的同学说,没有办法,公司就是这样,那我们该怎么办

方法是有的,例如以生成的订单号为例,他必须是唯一的,但如果客户输入的时候,有的大写,有的小写,那岂不是要出现两个订单号了。

建议可以在输入订单号的后端加入 lower()  upper()函数,将输入的字符变为一种格式。

感谢你能够认真阅读完这篇文章,希望小编分享的“PostgreSQL中如何处理库,表,字段,值大小写的问题”这篇文章对大家有帮助,同时也希望大家多多支持亿速云,关注行业资讯频道,更多相关知识等着你来学习!