postgresql數據庫命令行常用指令操作

注意:除sql語句外的命令大小寫敏感!!!sql語句要加上分號結束!!!

1、以dbuser的身份連接數據庫exampledb:

$ su - dbuser
Password: 
Last login: Wed Mar 1 11:52:07 CST 2017 on pts/
[dbuser@master ~]$ psql -d exampledb

2、查看所用的數據庫

postgres=# \l

3、創建用戶數據庫,如exampledb:

postgres=# CREATE DATABASE exampledb OWNER dbuser;

4、將exampledb數據庫的所有權限都賦予dbuser:

postgres=# GRANT ALL PRIVILEGES ON DATABASE exampledb TO dbuser;

5、使用命令 \q 退出psql:

postgres=# \q

6、創建Linux普通用戶,與剛纔新建的數據庫用戶同名,如 dbuser:

$ sudo adduser dbuser
$ sudo passwd dbuser

7、切換數據庫,相當於mysql的use dbname

\c dbname

8、列舉表,相當於mysql的show tables

\dt

9、查看錶結構,相當於desc tblname,show columns from tbname

\d tblname

10、查看索引

\di 

11、刪除數據庫

DROP DATABASE phone;

12.創建表(大小寫均可)

create table test(id integer not null primary key);

13.添加表的字段

alter table phone add column phone_number character varying(11) not null;

14.重命名一個表:

alter table [表名A] rename to [表名B]; 

15.刪除一個表:

drop table [表名]; 

16.在已有的表裏添加字段:

alter table [表名] add column [字段名] [類型]; 

17.刪除表中的字段:

alter table [表名] drop column [字段名]; 

18.重命名一個字段:

alter table [表名] rename column [字段名A] to [字段名B]; 

19.給一個字段設置缺省值:

alter table [表名] alter column [字段名] set default [新的默認值];

20.去除缺省值:

alter table [表名] alter column [字段名] drop default; 

21.在表中插入數據:

insert into 表名 ([字段名m],[字段名n],......) values ([列m的值],[列n的值],......); 
//eg: insert into phone(id, phone_number) values(1, 18819259295);

22.修改表中的某行某列的數據:

update [表名] set [目標字段名]=[目標值] where [該行特徵]; 
eg: update phone set phone_number = replace('phone_number','8', '1');

23.刪除表中某行數據:

delete from [表名] where [該行特徵]; 
delete from [表名];--刪空整個表 

25.創建表:

create table ([字段名1] [類型1] <references 關聯表名(關聯的字段名)>;,[字段名2] [類型2],......<,primary key (字段名m,字段名n,...)>;); 

26.顯示 PostgreSQL 的使用和發行條款

\copyright

27.顯示或設定用戶端字元編碼

\encoding [字元編碼名稱]

28.SQL 命令語法上的說明,用 * 顯示全部命令

\h [名稱]

29.提示用戶設定內部變數

\prompt [文本] 名稱
\password [USERNAME] securely change the password for a user

30.可以使用pg_dump和pg_dumpall來完成。比如備份sales數據庫:

pg_dump drupal>/opt/Postgresql/backup/1.bak
//eg: pg_dump test  > /usr/local/pgsql/outputdata/db.sql

命令行導出

pg_dump:將一個PostgreSQL數據庫轉儲到一個腳本文件或者其它歸檔文件中 

pg_dump mydb > db.sql:將mydb數據庫轉儲到一個 SQL 腳本文件

pg_dump mydb -s > db.sql:將mydb數據庫轉儲到一個 SQL 腳本文件(只導出數據庫表結構,不帶數據)

pg_dump -D -a -t zones_seq - t interway -t table_3 ... > /tmp/zones_seq.sql:導出部分表,支持通配符,見參考文章1

pg_dumpall:將一個PostgreSQL數據庫集羣轉儲到一個腳本文件中

示例:test爲待導出的數據庫名,後面爲導出位置及文件名稱

pg_dump test  > /usr/local/pgsql/outputdata/db.sql

命令行導入

psql:psql -U gpadmin -d your-db -f your-table.sql
pg_restore: pg_restore -d your-db your-table.tar

示例:postgresql爲用戶名,test爲要導入的數據庫名稱,後面爲先前導出的數據庫文件路徑

psql -U postgresql -d test -f /usr/local/pgsql/outputdata/db.sql

31.查詢數據表內容

select * from phone;

以你的普通Linux用戶名,在數據庫中創建同名的用戶和數據庫,如xxf,然後就可以本機直接連接到數據庫xxf了。

~> su - postgres
Password: 
Last login: Wed Mar 1 13:19:02 CST 2017 on pts/1
-bash-4.2$ psql
psql (9.2.18)
Type "help" for help.

postgres=# create user xxf with password '******';
CREATE ROLE
postgres=# create database xxf owner xxf;
CREATE DATABASE
postgres=# grant all privileges on database xxf to xxf;
GRANT
postgres=# \q
-bash-4.2$ exit
logout
~> psql
psql (9.2.18)
Type "help" for help.

xxf=>

至此,就在數據庫xxf中了。

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