欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

PostgreSQL 中的單引號與雙引號用法說明

 更新時間:2021年02月01日 09:22:50   作者:漿糊串磕楠  
這篇文章主要介紹了PostgreSQL 中的單引號與雙引號用法說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

在pg中的sql,單引號用來標(biāo)識實際的值,雙引號用來標(biāo)識表名(table name)或列名(column name)等數(shù)據(jù)庫中存在的值。

如,執(zhí)行一句query:

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

加上引號的好處在于,當(dāng)在程序中進(jìn)行sql拼裝的時候,可以簡化對值的校驗,同時又可以避免sql注入。即在數(shù)據(jù)庫層面完成了事故的避免。

如,同樣執(zhí)行的query:

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

由于被引號框起來,pg只會認(rèn)為“;”也是列名的一部分,而不會將語句切斷,從而順利避免了事故。

補(bǔ)充:PostgreSQL 和 MySQL 關(guān)于單引號、雙引號、反單引號的區(qū)別

解決方案寫在前面:

MySQL 可以使用單引號(')或者雙引號(")表示值,但是 PG 只能用單引號(')表示值,PG 的雙引號(")是表示系統(tǒng)標(biāo)識符的,比如表名或者字段名。MySQL可以使用反單引號(`)表示系統(tǒng)標(biāo)識符,比如表名、字段名,PG 也是不支持的。

事情的起因是同事發(fā)現(xiàn)好像反單引號(`)不能在 PG 中使用。在 MySQL 和 Spark SQL 中,我覺得用反單引號是一個優(yōu)秀的習(xí)慣,所以我以為反單引號標(biāo)識表名或者字段名應(yīng)該是標(biāo)準(zhǔn)(好吧,所有的“以為”都是錯的);確實感覺三觀被顛覆。

然后就是去查了一下,下面貼出官網(wǎng)關(guān)于從 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 “l(fā)ast name” = ‘Smith').

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

翻譯過來就是寫在前面的解決方案。

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

相關(guān)文章

  • PostgreSQL備份工具 pgBackRest使用詳解

    PostgreSQL備份工具 pgBackRest使用詳解

    這篇文章主要介紹了PostgreSQL備份工具 pgBackRest使用詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • PostgreSQL中offset...limit分頁優(yōu)化的一些常見手段

    PostgreSQL中offset...limit分頁優(yōu)化的一些常見手段

    我們在使用數(shù)據(jù)庫進(jìn)行分頁查詢時,隨著offset過濾的數(shù)據(jù)越來越多,查詢也會越來越慢,下面這篇文章主要給大家介紹了關(guān)于PostgreSQL中offset...limit分頁優(yōu)化的一些常見手段,需要的朋友可以參考下
    2023-05-05
  • postgresql 12版本搭建及主備部署操作

    postgresql 12版本搭建及主備部署操作

    這篇文章主要介紹了postgresql 12版本搭建及主備部署操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • PostgreSQL時間線(timeline)和History File的用法

    PostgreSQL時間線(timeline)和History File的用法

    這篇文章主要介紹了PostgreSQL時間線(timeline)和History File的用法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • 詳解PostgreSQL?14.4安裝使用及一些安裝的異常問題

    詳解PostgreSQL?14.4安裝使用及一些安裝的異常問題

    這篇文章主要介紹了PostgreSQL?14.4的安裝以及使用以及一些安裝的異常,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-07-07
  • PostgreSQL ROW_NUMBER() OVER()的用法說明

    PostgreSQL ROW_NUMBER() OVER()的用法說明

    這篇文章主要介紹了PostgreSQL ROW_NUMBER() OVER()的用法說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • PostgreSQL HOT與PHOT有哪些區(qū)別

    PostgreSQL HOT與PHOT有哪些區(qū)別

    這篇文章主要介紹了PostgreSQL8.3版本開始就引入的HOT機(jī)制與PHOT使用區(qū)別,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-09-09
  • Postgres copy命令導(dǎo)入導(dǎo)出數(shù)據(jù)的操作方法

    Postgres copy命令導(dǎo)入導(dǎo)出數(shù)據(jù)的操作方法

    最近有需要對數(shù)據(jù)進(jìn)行遷移的需求,由于postgres性能的關(guān)系,單表3000W的數(shù)據(jù)量查詢起來有一些慢,需要對大表進(jìn)行切割,拆成若干個子表,涉及到原有數(shù)據(jù)要遷移到子表的需求,這篇文章主要介紹了Postgres copy命令導(dǎo)入導(dǎo)出數(shù)據(jù)的操作方法,需要的朋友可以參考下
    2024-08-08
  • postgresql 切換 log、xlog日志的實現(xiàn)

    postgresql 切換 log、xlog日志的實現(xiàn)

    這篇文章主要介紹了postgresql 切換 log、xlog日志的實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • PostgreSQL 存儲過程的進(jìn)階講解(含游標(biāo)、錯誤處理、自定義函數(shù)、事務(wù))

    PostgreSQL 存儲過程的進(jìn)階講解(含游標(biāo)、錯誤處理、自定義函數(shù)、事務(wù))

    PL/pgSQL 游標(biāo)允許我們封裝一個查詢,然后每次處理結(jié)果集中的一條記錄,這篇文章主要介紹了PostgreSQL 存儲過程的進(jìn)階介紹(含游標(biāo)、錯誤處理、自定義函數(shù)、事務(wù)),需要的朋友可以參考下
    2023-03-03

最新評論