PostgreSQL數據庫管理(六)

數據庫是模式的集合,模式包含表,函數等。
層次結構: 服務器,數據庫,模式,表(或某些其他類型的對象,例如函數).

列出現有的數據庫: 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;




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