導航:首頁 > 程序命令 > postgres命令

postgres命令

發布時間:2022-08-05 21:00:15

① postgresql 查看有哪些表

1. 查詢表名稱

在psql狀態下查詢表名稱:dt

SQL方式查看錶名稱:

SELECTtablenameFROMpg_tables;

SELECT viewname FROM pg_views
WHERE schemaname ='public'

PostgreSQL獲取資料庫中所有view名視圖

SELECT viewname FROM pg_views

WHERE schemaname ='public'

2. 查詢表結構

在psql狀態下查詢表結構 dtablename

SQL方式查看錶結構

SELECT a.attnum,

a.attname AS field,

t.typname AS type,

a.attlen AS length,

a.atttypmod AS lengthvar,

a.attnotnull AS notnull,

b.description AS comment

FROM pg_class c,

pg_attribute a

LEFT OUTER JOIN pg_description b ON a.attrelid=b.objoid AND a.attnum = b.objsubid,
pg_type t

WHERE c.relname = 'udoc_saldiscount'

and a.attnum > 0

and a.attrelid = c.oid

and a.atttypid = t.oid

ORDER BY a.attnum;

(1)postgres命令擴展閱讀:

PostgreSQL存儲系統是由以下幾個子模塊所構成的:

1)頁面管理子模塊:對PostgreSQL緩沖區頁面的組織結構進行定義以及提供頁面操作的方法。

2)緩沖區管理子模塊:管理PostgreSQL的緩沖區,包括本地緩沖區和共享緩沖區。

3)存儲設備管理子模塊:資料庫記錄是存儲在存儲介質上的,存儲設備管理子模塊將屏蔽不同物理存儲設備(塊設備,流設備)介面函數的差異,向上層緩沖區管理子模塊提供統一的訪問介面函數。

4)文件管理子模塊:一般的操作系統對一個進程允許打開的文件數是有限制的,而PostgreSQL伺服器有些時候需要打開的文件數是很多的,因此PostgreSQL文件管理子模塊自身為了突破這個瓶頸,封裝了文件的讀寫操作。

linux怎麼用命令登陸postgres

(1)用戶實用程序:

createdb 創建一個新的PostgreSQL的資料庫(和SQL語句:CREATE DATABASE 相同)

createuser 創建一個新的PostgreSQL的用戶(和SQL語句:CREATE USER 相同)

dropdb 刪除資料庫

dropuser 刪除用戶

pg_mp 將PostgreSQL資料庫導出到一個腳本文件

pg_mpall 將所有的PostgreSQL資料庫導出到一個腳本文件

pg_restore 從一個由pg_mp或pg_mpall程序導出的腳本文件中恢復PostgreSQL資料庫

psql 一個基於命令行的PostgreSQL互動式客戶端程序

vacuumdb 清理和分析一個PostgreSQL資料庫,它是客戶端程序psql環境下SQL語句VACUUM的shell腳本封裝,二者功能完全相同

(2)系統實用程序

initdb 創建一個用於存儲資料庫的PostgreSQL數據目錄,並創建預定義的模板資料庫template0和template1,生成共享目錄表 catalog;此程序通常只在安裝PostgreSQL時運行一次

initlocation 創建一個輔助的PostgreSQL資料庫存儲區域

ipcclean 從停止的PostgreSQL伺服器中清除共享內在和孤立信號標志

pg_ctl 啟動、停止、重啟PostgreSQL服務(比如:pg_ctl start 啟動PostgreSQL服務,它和service postgresql start相同)

pg_controldata 顯示PostgreSQL服務的內部控制信息

postgres PostgreSQL單用戶模式的資料庫服務

postmaster PostgreSQL多用戶模式的資料庫服務

4.這裡面最重要的是psql這個客戶端程序最為重要。啟用客戶端程序psql的方法是:

切換到PostgreSQL預定義的資料庫超級用戶postgres,啟用客戶端程序psql,並連接到自己想要的資料庫,比如說:

psql template1

出現以下界面,說明已經進入到想要的資料庫,可以進行想要的操作了。

template1=#

5.在資料庫中的一些命令:

template1=# \l 查看系統中現存的資料庫

template1=# \q 退出客戶端程序psql

template1=# \c 從一個資料庫中轉到另一個資料庫中,如template1=# \c sales 從template1轉到sales

template1=# \dt 查看錶

template1=# \d 查看錶結構

template1=# \di 查看索引
[基本資料庫操作]========================
*創建資料庫:
create database [資料庫名];

*查看資料庫列表:
\d

*刪除資料庫:
drop database [資料庫名];

創建表:
create table ([欄位名1] [類型1] <references 關聯表名(關聯的欄位名)>;,[欄位名2] [類型2],......<,primary key (欄位名m,欄位名n,...)>;);

*查看錶名列表:
\d

*查看某個表的狀況:
\d [表名]

*重命名一個表:
alter table [表名A] rename to [表名B];

*刪除一個表:
drop table [表名];
========================================

[表內基本操作]==========================
*在已有的表裡添加欄位:
alter table [表名] add column [欄位名] [類型];

*刪除表中的欄位:
alter table [表名] drop column [欄位名];

*重命名一個欄位:
alter table [表名] rename column [欄位名A] to [欄位名B];

*給一個欄位設置預設值:
alter table [表名] alter column [欄位名] set default [新的默認值];

*去除預設值:
alter table [表名] alter column [欄位名] drop default;

在表中插入數據:
insert into 表名 ([欄位名m],[欄位名n],......) values ([列m的值],[列n的值],......);

修改表中的某行某列的數據:
update [表名] set [目標欄位名]=[目標值] where [該行特徵];

刪除表中某行數據:
delete from [表名] where [該行特徵];
delete from [表名];--刪空整個表

6.要注意隨時對資料庫進行清理、收回磁碟空間並更新統計信息,使用下面的命令就搞定!

vaccumdb -d sales -z

-a 對所有的資料庫操作

-z 保證不斷地刪除失效的行,節約磁碟空間,將統計信息更新為最近的狀態

7.PostgreSQL用戶認證

PostgreSQL數據目錄中的pg_hba.conf的作用就是用戶認證,可以在/var/lib/pgsql/data中找到。

有以下幾個例子可以看看:

(1)允許在本機上的任何身份連接任何資料庫

TYPE DATABASE USER IP-ADDRESS IP-MASK METHOD

local all all trust(無條件進行連接)

(2)允許IP地址為192.168.1.x的任何主機與資料庫sales連接

TYPE DATABASE USER IP-ADDRESS IP-MASK METHOD

host sales all 192.168.1.0 255.255.255.0 ident sameuser(表明任何操作系統用戶都能夠以同名資料庫用戶進行連接)

8.看了那麼多,來一個完整的創建PostgreSQL資料庫用戶的示例吧

(1)進入PostgreSQL高級用戶

(2)啟用客戶端程序,並進入template1資料庫

psql template1

(3)創建用戶

template1=# CREATE USER hellen WITH ENCRYPED PASSWORD'zhenzhen'

(4)因為設置了密碼,所以要編輯pg_hba.conf,使用戶和配置文件同步。

在原有記錄上面添加md5

local all hellen md5

(4)使用新用戶登錄資料庫

template1=# \q

psql -U hellen -d template1

PS:在一個資料庫中如果要切換用戶,要使用如下命令:

template1=# \!psql -U tk -d template1

9.設定用戶特定的許可權

還是要用例子來說明:

創建一個用戶組:

sales=# CREATE GROUP sale;

添加幾個用戶進入該組

sales=# ALTER GROUP sale ADD USER sale1,sale2,sale3;

授予用戶級sale針對表employee和procts的SELECT許可權

sales=# GRANT SELECT ON employee,procts TO GROUP sale;

在sale中將用戶user2刪除

sales=# ALTER GROP sale DROP USER sale2;

10.備份資料庫

可以使用pg_mp和pg_mpall來完成。比如備份sales資料庫:

pg_mp sales>/home/tk/pgsql/backup/1.bak

③ postgresql 創建資料庫問題

1、使用CREATE DATABASE

該命令將創建一個資料庫PostgreSQL的shell提示符,但你應該有適當的許可權來創建資料庫。默認情況下,創建新的資料庫將通過克隆標准系統資料庫template1。

語法:

CREATE DATABASE語句的基本語法如下:

CREATEDATABASEdbname;

其中dbname是要創建的資料庫的名稱。

例子:

下面是一個簡單的例子,這將創建testdb在PostgreSQL模式:

postgres=# CREATE DATABASE testdb;
postgres-#


2、使用createdb的命令

PostgreSQL命令行可執行createdb是是SQL命令CREATE DATABASE一個包裝器。此命令和SQL命令CREATE DATABASE之間唯一的區別是,前者可以直接在命令行中運行,它允許的注釋被添加到資料庫中,全部在一個命令。

語法:

createdb語法如下所示:

createdb [option...] [dbname [description]]

參數

下表列出了參數及它們的描述。

參數名稱 描述

dbname The name of a database to create.

description Specifies a comment to be associated with the newly created database.

options command-line arguments which createdb accepts.

選項

下表列出了命令行參數CREATEDB接收:

選項 描述

-D tablespace Specifies the default tablespace for the database.

-e Echo the commands that createdb generates and sends to the server.

-E encoding Specifies the character encoding scheme to be used in this database.

-l locale Specifies the locale to be used in this database.

-T template Specifies the template database from which to build this database.

--help Show help about dropdb command line arguments, and exit.

-h host Specifies the host name of the machine on which the server is running.

-p port Specifies the TCP port or the local Unix domain socket file extension on which the server is listening for connections.

-U username User name to connect as.

-w Never issue a password prompt.

-W Force createdb to prompt for a password before connecting to a database.

打開命令提示符,然後去是PostgreSQL安裝所在的目錄。進入到bin目錄,執行下面的命令創建一個資料庫。

createdb -h localhost -p 5432 -U postgress testdb
password ******

上面的命令會提示Postgres的默認的PostgreSQL管理用戶的密碼,以便提供密碼和繼續創建新的資料庫。

一旦創建資料庫時可以使用上述方法,可以檢查它在列表中的資料庫使用l即反斜線el命令如下:

postgres-# l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------+----------+----------+---------+-------+-----------------------
postgres | postgres | UTF8 | C | C |
template0 | postgres | UTF8 | C | C | =c/postgres +
| | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | C | C | =c/postgres +
| | | | | postgres=CTc/postgres
testdb | postgres | UTF8 | C | C |
(4 rows)

postgres-#

④ 請問postgres在windows下如何用命令行備份,備份時候在哪裡輸入賬號和密碼

使用dos切換到postgres的bin目錄下,使用如下命令:
pg_mp -f backup.sql -i -C -E UTF8 -U postgres -h localhost -W mydb
參數解釋:
-i 是為了兼容資料庫版本
-C 包括創建資料庫的語句
-E 設定導出數據的編碼
-n 是Scheme的名稱
-U 是用戶名稱
-h 是資料庫伺服器的名稱
-W 是用強制密碼驗證

⑤ 切換postgres用戶後命令行會變成-bash-4.4$,怎麼辦

現象分析

很多postgresql用戶安裝postgresql資料庫後,當切換到postgres用戶後會發現,命令行變成了-bash-4.4$。重新使用命令:groupadd postgres和useradd -g postgres postgres創建用戶和組,結果提示postgres用戶和組已存在。


我們切換到/home路徑,可以看到的卻沒有postgres用戶的配置文件。

寫在最後:希望postgres的專業人員看到此文章後,可以解答一下,postgresql安裝後創建postgres用戶的過程是否存在bug,為什麼會導致-bash-4.4$命令行的原因。

⑥ ubuntu下安裝 postgresql 的命令

你的安裝命令不完整,少了一個 install ,
如果是安裝PostgreSQL客戶端:sudo apt-get install postgresql-client

如果是安裝PostgreSQL伺服器:sudo apt-get install postgresql

正常情況下,安裝完成後,PostgreSQL伺服器會自動在本機的5432埠開啟。
如果還想安裝圖形管理界面,可以運行這個命令:sudo apt-get install pgadmin3
更多關於PostgreSQL的用法,樓主可以網路《Linux就該這么學》,搜索關鍵字可以獲得相應的教程。

⑦ postgres 怎麼用指令還原資料庫

可以在用pg_mp導出時加一個-c參數(是小寫的c),表示clean,會有一些drop table命令在里

⑧ postgresql中怎麼用psql命令

連接資料庫, 默認的用戶和資料庫是postgres
psql -U user -d dbname

切換資料庫,相當於mysql的use dbname
\c dbname
列舉資料庫,相當於mysql的show databases
\l
列舉表,相當於mysql的show tables
\dt
查看錶結構,相當於desc tblname,show columns from tbname
\d tblname

\di 查看索引

創建資料庫:
create database [資料庫名];
刪除資料庫:
drop database [資料庫名];
*重命名一個表:
alter table [表名A] rename to [表名B];
*刪除一個表:
drop table [表名];

*在已有的表裡添加欄位:
alter table [表名] add column [欄位名] [類型];
*刪除表中的欄位:
alter table [表名] drop column [欄位名];
*重命名一個欄位:
alter table [表名] rename column [欄位名A] to [欄位名B];
*給一個欄位設置預設值:
alter table [表名] alter column [欄位名] set default [新的默認值];
*去除預設值:
alter table [表名] alter column [欄位名] drop default;
在表中插入數據:
insert into 表名 ([欄位名m],[欄位名n],......) values ([列m的值],[列n的值],......);
修改表中的某行某列的數據:
update [表名] set [目標欄位名]=[目標值] where [該行特徵];
刪除表中某行數據:
delete from [表名] where [該行特徵];
delete from [表名];--刪空整個表
創建表:
create table ([欄位名1] [類型1] <references 關聯表名(關聯的欄位名)>;,[欄位名2] [類型2],......<,primary key (欄位名m,欄位名n,...)>;);
\right 顯示 PostgreSQL 的使用和發行條款
\encoding [字元編碼名稱]
顯示或設定用戶端字元編碼
\h [名稱] SQL 命令語法上的說明,用 * 顯示全部命令
\prompt [文本] 名稱
提示用戶設定內部變數
\password [USERNAME]
securely change the password for a user
\q 退出 psql

可以使用pg_mp和pg_mpall來完成。比如備份sales資料庫:
pg_mp drupal>/opt/Postgresql/backup/1.bak

⑨ 怎麼在windows上連接postgres

1、windows下postgresql的安裝
我下載的為xxx9.2.exe一路默認安裝即可。安裝位置為C:\Program Files\PostgreSQL。
安裝完畢後,在dos下執行命令
>net user
列出當前系統用戶名稱。我的用戶名為Administrator。
>psql –U Administrator –d postgres
該命令表示通過資料庫用戶Administrator連接資料庫postgres。
l 若顯示psql不是內部或外部命令,則說明postgresql的bin文件路徑沒添加到windows系統中,右擊「我的電腦」->」屬性」->」高級」->」環境變數」->」Administrator」的用戶變數,選中「PATH」,點擊編輯,將」C:\Program Files\PostgreSQL\9.2\bin」添加進去,注意與前面的路徑用」;」隔開。電腦重啟生效。
l 若顯示角色Administrator不存在,則必須在postgresql資料庫中添加該用戶才能使其可以登錄。
在postgresql中
查詢系統用戶
postgres=#select* from pg_user;
查詢系統中的資料庫
postgres=#select* from pg_database;
說明一下:「template1」是Postgresql在初始化時自動創建的測試資料庫。

創建postgresql資料庫Administrator用戶
方式1

在PostgreSQL中創建用戶postgreSQL用戶Administrator

用SQL Shell(psql)通過用戶postgres登錄PostgreSQL,創建用戶Administrator,
postgres=#create user 「Administrator」;
方式2

通過windows下dos創建postgresql用戶Administrator

將PostgreSQL文件夾bin路徑添加到系統環境中後重啟生效.
通過windows下dos創建postgresql用戶是區分大小寫的。

配置客戶機訪問
為了配置遠程主機和用戶可以連接到PostgreSQL服務,你需要pg_hba.conf文件。文件包含大量注釋記錄用於遠程訪問的選項。在我們的安裝示例中,我們允許區域網中任何主機的任何用戶訪問伺服器上的資料庫。為了達到這個目的,我們添加以下的一行記錄到文件尾:
host all all 192.168.0.0/16 trust
這意味著所有IP地址由192.168開始的計算機可以訪問所有的資料庫。最簡單的使配置生效的方法就是重啟伺服器。
在dos下操作,通過createuser –Uolser –P newuser來創建。
比如我們想創建postgresql資料庫用戶Administrator。
>createuser –U postgre –P Administrator
這樣創建的資料庫用戶Administrator沒有創建資料庫的權利,可以通過pgAdmin III登錄進行查看。
若使其可以創建資料庫可以參照下面內容進行設置:
>createuser –U postgre –s Administrator
這樣具有創建資料庫能力。

createuser的用法可以通過在dos中輸入createuser –help查看。
MicrosoftWindows XP [版本 5.1.2600]
(C)版權所有 1985-2001 Microsoft Corp.

C:\Documentsand Settings\Administrator>createuser --help
createuser創建一個新的 PostgreSQL 用戶.

使用方法:
createuser [選項]... [用戶名]

選項:
-c, --connection-limit=N 角色的連接限制(預設: 沒有限制)
-d, --createdb 此角色可以創建新資料庫
-D, --no-createdb 此角色不可以創建新資料庫(默認)
-e, --echo 顯示發送到服務端的命令
-E, --encrypted 口令加密存儲
-i, --inherit 角色能夠繼承它所屬角色的許可權
(這是預設情況)
-I, --no-inherit 角色不繼承許可權
-l, --login 角色能夠登錄(這是預設情況)
-L, --no-login 角色不能登錄
-N, --unencrypted 口令不加密存儲
-P, --pwprompt 給新角色指定口令
-r, --createrole 這個角色可以創建新的角色
-R, --no-createrole 這個角色沒有創建其它角色的許可權(默認)
-s, --superuser 角色將是超級用戶
-S, --no-superuser 角色不能是超級用戶(默認)
-V, --version 輸出版本信息, 然後退出
--interactive 提示缺少角色名及其屬性
而不是使用默認值
--replication 角色能啟動復制
--no-replication 角色不能啟動復制
-?, --help 顯示此幫助, 然後退出

聯接選項:
-h, --host=HOSTNAM 資料庫伺服器所在機器的主機名或套接字目錄
-p, --port=PORT 資料庫伺服器埠號
-U, --username=USERNAME 聯接用戶 (不是要創建的用戶名)
-w, -no-password 永遠不提示輸入口令
-W, --password 強制提示輸入口令

臭蟲報告至<[email protected]>.

C:\Documentsand Settings\Administrator>

方式3

在C:\Program Files\PostgreSQL\9.2\bin文件夾下有可執行文件createuser.exe,我雙擊後,該文件執行一閃就關閉,只好在dos中輸入cmd打開窗口,將該文件拖入窗口中,在輸入「 –U postgres –P Adiminisrator」然後回車,如下圖所示,即可創建資料庫用戶Administrator。但此時該用戶不具有創建database的能力,可以通過pgAdmin III查看。

psql的用法可以通過在dos下輸入psql –help查看,如下圖所示。
MicrosoftWindows XP [版本 5.1.2600]
(C) 版權所有1985-2001 Microsoft Corp.

C:\Documentsand Settings\Administrator>psql --help
psql是PostgreSQL 的互動式客戶端工具。
使用方法:
psql [選項]... [資料庫名稱 [用戶名稱]]
通用選項:
-c,--command=命令 執行單一命令(SQL或內部指令)然後結束
-d, --dbname=資料庫名稱 指定要連接的資料庫 (預設:"Administrator")
-f, --file=文件名 從文件中執行命令然後退出
-l, --list 列出所有可用的資料庫,然後退出
-v, --set=, --variable=名稱=值
為psql變數(名稱)設定值
-V, --version 輸出版本信息, 然後退出
-X, --no-psqlrc 不讀取啟動文檔(~/.psqlrc)
-1 ("one"), --single-transaction
作為一個單一事務來執行命令文件
-?, --help 顯示此幫助, 然後退出

輸入和輸出選項:
-a, --echo-all 顯示所有來自於腳本的輸入
-e, --echo-queries 顯示發送給伺服器的命令
-E, --echo-hidden 顯示內部命令產生的查詢
-L, --log-file=文件名 將會話日誌寫入文件
-n, --no-readline 禁用增強命令行編輯功能(readline)
-o, --output=FILENAME 將查詢結果寫入文件(或 |管道)
-q, --quiet 以沉默模式運行(不顯示消息,只有查詢結果)
-s, --single-step 單步模式 (確認每個查詢)
-S, --single-line 單行模式 (一行就是一條 SQL 命令)

輸出格式選項 :
-A, --no-align 使用非對齊表格輸出模式
-F, --field-separator=字元串
設欄位分隔符(預設:"|")
-H, --html HTML 表格輸出模式
-P, --pset=變數[=參數] 設置將變數列印到參數的選項(查閱 \pset 命令)
-R, --record-separator=字元串
設定記錄分隔符(預設:換行符號)
-t, --tuples-only 只列印記錄i
-T, --table-attr=文本 設定 HTML 表格標記屬性(例如,寬度,邊界)
-x, --expanded 打開擴展表格輸出
-z, --field-separator-zero
設置欄位分隔符為位元組0
-0, --record-separator-zero
設置記錄分隔符為位元組0

聯接選項:
-h, --host=主機名 資料庫伺服器主機或socket目錄(預設:"本地介面")
-p, --port=埠 資料庫伺服器的埠(預設:"5432")
-U, --username=用戶名 指定資料庫用戶名(預設:"Administrator")
-w, --no-password 永遠不提示輸入口令
-W, --password 強制口令提示 (自動)

更多信息,請在psql中輸入"\?"(用於內部指令)或者"\help"(用於SQL命令),
或者參考PostgreSQL文檔中的psql章節.

臭蟲報告至<[email protected]>.

C:\Documentsand Settings\Administrator>

閱讀全文

與postgres命令相關的資料

熱點內容
程序員那麼可愛25集 瀏覽:751
伺服器地址和ip地址一樣不 瀏覽:662
php中括弧定義數組 瀏覽:600
php列印堆棧 瀏覽:514
華為adb命令行刷機 瀏覽:963
人像攝影pdf 瀏覽:755
解壓文件密碼怎樣重新設置手機 瀏覽:999
高考指南pdf 瀏覽:693
爬蟲python數據存儲 瀏覽:240
u盤怎麼取消加密 瀏覽:429
567除以98的簡便演算法 瀏覽:340
pdf手機如何解壓 瀏覽:15
python描述器 瀏覽:60
戰地聯盟3解壓密碼 瀏覽:805
s型命令 瀏覽:25
php年薪5年 瀏覽:71
如何上網上設個人加密賬戶 瀏覽:44
linux打開ssh服務 瀏覽:78
微信位置可以加密嗎 瀏覽:470
演算法蠻力法 瀏覽:438