1. 程式人生 > >03.數據庫基本操作

03.數據庫基本操作

示例 類型 set -i -a 配置 var flow alter

一、cmd命令登陸

su - postgres
psql
2 1
su - postgres
2
psql

二、查看數據庫

\l
1 1
\l

三、創建數據庫

1.語法

Command: CREATE DATABASE
Description: create a new database
Syntax:
CREATE DATABASE name
[ [ WITH ] [ OWNER [=] user_name ]
[ TEMPLATE [=] template ]
[ ENCODING [=] encoding ]
[ LC_COLLATE [=] lc_collate ]


[ LC_CTYPE [=] lc_ctype ]
[ TABLESPACE [=] tablespace_name ]
[ CONNECTION LIMIT [=] connlimit ] ]

2.參數

name

新創建數據庫的名稱。

user_name

新數據庫所屬用戶的角色名稱(PostgreSQL角色和用戶沒有區別),缺省使用執行命令的用戶。如果想要給另外的角色創建數據庫,那麽命令執行者必須是那個角色的成員,或者是超級用戶(initdb時使用的用戶名或者是創建用戶時指定為超級用戶)。

template

新數據庫使用模板的名稱,缺省為template1(建議使用template0,template0是不可修改的空白數據庫)。

encoding

新數據庫使用的字符集編碼。指定一個字符串常量(如‘UFT8‘),或者代表字符集編碼的整數,或者使用缺省值(即模板數據庫使用的字符集編碼)。

lc_collate

新數據庫使用的排序規則,該參數會影響到字符串的排序,比如查詢語句中使用order by,以及文本類型列的索引排序,缺省使用模板數據庫的lc_collate。

lc_ctype

新數據庫使用的字符分類,該參數會影響字符的分類,比如大寫字符、小寫字符、數字,缺省使用模板數據庫的lc_ctype。

tablespace_name

新數據庫相關的表空間名稱,缺省使用模板數據庫的表空間。在該數據庫中創建的所有對象缺省使用該表空間。表空間實際上就是為數據庫對象指定一個存儲目錄,例如重要的數據存儲在更安全的目錄下,頻繁訪問的數據存儲在性能更好的目錄,不同的目錄掛載不同的存儲介質就可以做到數據的分類存儲。使用psql客戶端命令\db可查看當前有哪些表空間。

connlimit

新數據庫可以接受的並發連接的數量,缺省為-1,表示無限制。

3.示例

postgres=# create database school with owner=president template=template0 encoding=UTF8 lc_collate=C lc_ctype=C tablespace=tbs_test connection limit = 100;
CREATE DATABASE

四、修改數據庫

1.語法

Command: ALTER DATABASE
Description: change a database
Syntax:
ALTER DATABASE name [ [ WITH ] option [ ... ] ]

where option can be:

CONNECTION LIMIT connlimit

ALTER DATABASE name RENAME TO new_name

ALTER DATABASE name OWNER TO new_owner

ALTER DATABASE name SET TABLESPACE new_tablespace

ALTER DATABASE name SET configuration_parameter { TO | = } { value | DEFAULT }
ALTER DATABASE name SET configuration_parameter FROM CURRENT
ALTER DATABASE name RESET configuration_parameter
ALTER DATABASE name RESET ALL

2.參數

name

要被修改的數據庫名稱。

connlimit

數據庫並發連接數量。

new_name

數據庫的新名稱。

new_user

數據庫的新用戶。

new_tablespace

數據庫新的表空間。

configuration_parameter

value

為當前數據庫會話指定的配置參數設置指定值,如果value的值為DEFAULT,或者使用RESET,數據庫指定的設置將被刪除。在新的會話中會繼承系統範圍內的所有默認配置。使用RESET ALL清除所有數據庫指定配置,使用SET FROM CURRENT保存當前會話配置參數值為數據庫指定值。

3.示例

技術分享圖片
postgres=# alter database school connection limit 10;
ALTER DATABASE
postgres=# alter database school owner to postgres;
ALTER DATABASE
postgres=# alter database school set tablespace pg_default ;
ALTER DATABASE
postgres=# alter database school set client_encoding to GBK;
ALTER DATABASE
postgres=# alter database school reset client_encoding ;
ALTER DATABASE
postgres=# alter database school reset all;
ALTER DATABASE
技術分享圖片

五、刪除數據庫

1.語法

Command: DROP DATABASE
Description: remove a database
Syntax:
DROP DATABASE [ IF EXISTS ] name

2.參數

name

數據庫名稱

IF EXISTS

使用該參數刪除一個不存在的數據庫不會拋出錯誤。

3.示例

postgres=# drop database if exists school;
DROP DATABASE
postgres=# drop database if exists school;
NOTICE:  database "school" does not exist, skipping
DROP DATABASE

03.數據庫基本操作