小程序制作平台网站设计平台 互联网品牌制作专家
关于A5客户收购GoogleAdsense带有搜索账户的相关事宜更多

软文发布平台资讯中心

PostgreSQL中的单引号与双引号用法说明

PostgreSQL中的单引号与双引号用法说明

  项目招商找A5 快速获取精准代理名单

在pg中的sql,单引号用来标识实际的值,双引号用来标识表名(table name)或列名(column name)等数据库中存在的值。

如,执行一句query:

1select "name" from "students" where "id"='1'

加上引号的好处在于,当在程序中进行sql拼装的时候,可以简化对值的校验,同时又可以避免sql注入。即在数据库层面完成了事故的避免。

如,同样执行的query:

1select ";drop table students;" from "students" where "id"='1'

由于被引号框起来,pg只会认为“;”也是列名的一部分,而不会将语句切断,从而顺利避免了事故。

补充:PostgreSQL 和 MySQL 关于单引号、双引号、反单引号的区别

解决方案写在前面:

MySQL 可以使用单引号(')或者双引号(")表示值,但是 PG 只能用单引号(')表示值,PG 的双引号(")是表示系统标识符的,比如表名或者字段名。MySQL可以使用反单引号(`)表示系统标识符,比如表名、字段名,PG 也是不支持的。

事情的起因是同事发现好像反单引号(`)不能在 PG 中使用。在 MySQL 和 Spark SQL 中,我觉得用反单引号是一个优秀的习惯,所以我以为反单引号标识表名或者字段名应该是标准(好吧,所有的“以为”都是错的);确实感觉三观被颠覆。

然后就是去查了一下,下面贴出官网关于从 MySQL 迁移 PostgreSQL 的 wiki 的答案,大家如果有迁移上的问题(哪怕是思维上的迁移),都可以看这个链接。

MySQL uses ' or " to quote values (i.e. WHERE name = “John”). This is not the ANSI standard for databases. PostgreSQL uses only single quotes for this (i.e. WHERE name = ‘John'). Double quotes are used to quote system identifiers; field names, table names, etc. (i.e. WHERE “last name” = ‘Smith').

MySQL uses ` (accent mark or backtick) to quote system identifiers, which is decidedly non-standard.

翻译过来就是写在前面的解决方案。

文章来源:脚本之家

来源地址:https://www.jb51.net/article/205143.htm

尊敬的看官您对PostgreSQL中的单引号与双引号用法说明有什么看法呢?互联网品牌制作专家愿与您共同探讨!版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请加微信号oem365 举报,一经查实,本站将立刻删除。

上一篇: 京东延迟发货申诉技巧是什么?处罚规则大全   返 回   下一篇:pgsql解决包含有单引号的字符串操作

相关资讯

小程序应用场景 | 小程序解决方案 | 小程序案例 | 小程序应功能 | 软文发布资源 | 网站设计

酒店预约解决方案
酒店预约小程序走红网络,也是传统转型的重要变化
详情
投票解决方案
强大功能,傻瓜式管理,有效防止作弊刷票
详情
新零售解决方案
小程序是现在新零售的新方式,深度结合线上线下
详情
预约服务解决方案
预约到店小程序通过用户在线预约到店等
详情
企业官网解决方案
企业展示小程序主要展示企业信息、产品案例等
详情
教育培训解决方案
主要展示教育机构的课程、可在线预约与购买课程
详情
推广解决方案
可以让企业通过推广模式全面展示自己的产品
详情
到店解决方案
到店服务解决方案,主要是面向实体餐饮门店
详情

我们的服务是否能满足您的需求?

如果不能,请联系我们或给我们留言,我们收到后会第一时间联系您!感谢您对我们的关注!

粤公网安备 44200002005005号