SQL字段类型是否区分大小写?以PostgreSQL及CAST语句为例的技术问询
PostgreSQL中SQL字段类型的大小写区分问题
刚好之前折腾过PostgreSQL里类型大小写的相关问题,来给你把这个事儿说清楚:
核心结论:数据类型名称不区分大小写
和SQL关键字的规则一致,PostgreSQL完全遵循SQL标准,不管你是大写、小写还是混合大小写写数据类型名称,都会被识别为同一个类型。你举的那两个CAST语句:SELECT CAST(item1 AS INT); SELECT CAST(item1 AS int);执行效果100%等效,PostgreSQL内部会把它们统一处理成相同的类型转换逻辑。
实际场景的验证
不光是CAST操作,创建表的时候也是一样的:-- 这两个语句创建的表结构完全一致 CREATE TABLE product (id INT, price NUMERIC); CREATE TABLE product (id int, price numeric);后续查询、修改字段类型的时候,用任意大小写的类型名都能正常工作,甚至写
INt这种混合大小写的写法,PostgreSQL也能正确识别。唯一的例外:带双引号的类型名
如果你非要给类型名加上双引号(比如"INT"),那这时候就会严格区分大小写了——"INT"和"int"会被PostgreSQL当成两个不同的标识符,但这种情况在实际开发中几乎不会出现,因为没人会给原生数据类型名加引号,完全是给自己找麻烦。扩展类型也适用这个规则
PostgreSQL里的扩展类型(比如JSONB、UUID、TIMESTAMPTZ)同样遵循大小写不敏感的规则,JSONB和jsonb、TIMESTAMPTZ和timestamptz都是完全等效的。
内容的提问来源于stack exchange,提问作者RishtarCode47
相关产品推荐
相关产品推荐

