这篇文章主要介绍了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进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。