PostgreSQL数据库管理(六)
admin
2023-05-20 19:22:41
0次
数据库是模式的集合,模式包含表,函数等。
层次结构: 服务器,数据库,模式,表(或某些其他类型的对象,例如函数).

列出现有的数据库: 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;




相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...