數據庫是模式的集合,模式包含表,函數等。
層次結構: 服務器,數據庫,模式,表(或某些其他類型的對象,例如函數).
列出現有的數據庫: SELECT datname FROM pg_database; 或者: \l.
- 1. 創建數據庫:
create database name;
initdb初始化數據存儲區時,默認創建的第一個數據庫是postgres.
第二個數據庫template1,也在數據庫集羣初始化期間創建。每當在集羣中創建新數據庫時,都是從template1克隆的。
所做的任何更改都會從template1傳播到所有後續創建的數據庫。
爲其他人創建數據庫,可配置和管理: CREATE DATABASE dbname OWNER rolename;
- 2. 模版數據庫:
標準系統數據庫template1.製作新數據庫的 “ 模板 ”.
template1包含特定於編碼或特定於語言環境的數據.
第二個標準系統數據庫template0,包含與初始內容相同的數據template1.即只有PostgreSQL版本預定義的標準對象.
template0數據庫羣集初始化後,永遠不應該更改。通過指示CREATE DATABASE複製template0,可以創建一個“ 原始 ”用戶數據庫.
通過複製創建數據庫template0:
CREATE DATABASE dbnameTEMPLATE template0;
createdb -T template0 dbname
- 3. 數據庫配置
設置特定於數據庫的默認值:
例如:爲給定數據庫禁用 GEQO優化器: ALTER DATABASE mydb SET geqo TO off;
撤銷特定於數據庫的默認值:
ALTER DATABASE dbname RESET varname;
- 4. 刪除數據庫:
drop database name;
刪除數據庫將刪除數據庫中包含的所有對象。
- 5. 表空間:
PostgreSQL中的表空間允許數據庫管理員在文件系統中定義可以存儲表示數據庫對象的文件的位置。
創建後,可以在創建數據庫對象時按名稱引用表空間。
表空間允許管理員使用數據庫對象的使用模式的知識來優化性能.
表空間也是數據庫集羣的組成部分.
創建表空間: CREATE TABLESPACE fastspace LOCATION '/ssd1/postgresql/data';
在表空間中創建的所有對象都將存儲在此目錄下的文件中.
刪除空的表空間: drop tablespace tablespacename;
可以將表,索引和整個數據庫分配給特定的表空間.具有CREATE給定表空間特權的用戶必須將表空間名稱作爲參數傳遞給相關命令.
CREATE TABLE foo(i int)TABLESPACE space1;
或者:
SET default_tablespace = space1;
CREATE TABLE foo(i int);
temp_tablespaces參數,用於確定臨時表和索引的位置,用於排序大型數據集等目的的臨時文件.
與數據庫關聯的表空間用於存儲該數據庫的系統目錄。此外,它是用於在數據庫中創建的表,索引和臨時文件的缺省表空間.
初始化數據庫集羣時會自動創建兩個表空間。該pg_global 表被用於共享系統目錄。
該pg_default表是默認表空間template1和template0數據庫.
查看現有的表空間: SELECT spcname FROM pg_tablespace; 或者\db命令查看。
- 6 編碼:
LC_COLLATE 字符串排序順序
LC_CTYPE 字符分類(什麼是字母?它的大寫字母等價?)
LC_MESSAGES 消息的語言
LC_MONETARY 格式化貨幣金額
LC_NUMERIC 格式化數字
LC_TIME 格式化日期和時間
檢查系統上安裝的語言環境: locale -a命令查看。
檢查當前可用的語言環境,使用查詢 SELECT * FROM pg_collation 或者\dOS+
- 7. 字符集支持
設置默認字符集(編碼): initdb -E UTF-8
數據庫的編碼存儲在系統目錄中 pg_database. \l 查看。或者: SELECT * FROM pg_database;
服務器和客戶端之間的自動字符集轉換,轉換信息存儲在pg_conversion系統目錄中。
查看轉換信息: select * from pg_conversion;
啓用自動字符集轉換,更改客戶端編碼: \encoding utf-8;
設置客戶端編碼: SET CLIENT_ENCODING TO' value';
查看當前客戶端編碼: SHOW client_encoding;
重置爲默認編碼 : RESET client_encoding;