查看PostgreSQL數據庫中所有表 - 注意的事項 -- 爲什麼使用sql查詢所有表報錯

      本人新手,以前接觸的關係型數據庫無非就是mysql,oracle;最多還聽說阿里巴巴有個自研的關係型數據庫,但也只聽說過沒用過。
      最近因爲工作關係需要用到postgreSql,在學習過程中發生點小意外。
      mysql中,查看數據庫和表如下:

show databases; -- 查看所有數據庫
show tables; -- 查看當前數據庫下所有的表

      但是postgreSql不一樣,查看所有的數據庫是:

\l  --小寫的L,不是1

      後來用了pgAdmin,裏面可以寫sql,但是用 \l 提示錯誤,就去查 怎麼查詢所有數據庫。查到的答案是這麼說的:

select * from pg_tables;

      如果要查詢指定schema的表,就如下:

select tablename from pg_tables where schemaname='public'

查詢所有的數據庫

      有意思的來了!!!

      我以爲 select * from pg_tables, 要把 pg_tables換成要查詢的數據庫的名稱,然後就報錯了…
      事實上,你需要把這句代碼原封不動的執行,不要改!!

select * from pg_tables; -- 不要改動任何一個字,直接執行就行。

查詢指定schema下的表

      這是查到的答案:

select tablename from pg_tables where schemaname='public'

       查詢的列(也就是tablename)不能動,表名(也就是pg_tables)不能動,但是 where 後面的 schemaname= 的參數必須要換成你自己的schemaname的名稱。如下:

select tablename from pg_tables -- 都不能改,tablename也不要動
where schemaname='test' -- 必須要改成自己的schemaname的名稱

tablename 和 schemaname 是什麼?

      我也沒去細查,但據我猜測,pg_tables應該是一張存了所有表信息的表,類似於元數據的概念。
      schemaname是什麼呢?你執行一下: select * from pg_tables;再看看列名和列的值,我相信你會知道是什麼意思的~
      
      
      
      

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章