zoukankan      html  css  js  c++  java
  • postgresql数据库创建、修改、删除

    一、数据库创建

    语法:

    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 ] ]

     

    参数:

    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,表示无限制。

    示例

    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

    二、修改数据库

    语法:

    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

    参数:

    name

    要被修改的数据库名称。

    connlimit

    数据库并发连接数量。

    new_name

    数据库的新名称。

    new_user

    数据库的新用户。

    new_tablespace

    数据库新的表空间。

    configuration_parameter

    value

    为当前数据库会话指定的配置参数设置指定值,如果value的值为DEFAULT,或者使用RESET,数据库指定的设置将被删除。在新的会话中会继承系统范围内的所有默认配置。使用RESET ALL清除所有数据库指定配置,使用SET FROM CURRENT保存当前会话配置参数值为数据库指定值。

    示例

    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

    三、删除数据库

    语法:

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

    参数:

    name

    数据库名称

    IF EXISTS

    使用该参数删除一个不存在的数据库不会抛出错误。

    示例

    postgres=# drop database if exists school;
    DROP DATABASE
    postgres=# drop database if exists school;
    NOTICE:  database "school" does not exist, skipping
    DROP DATABASE
  • 相关阅读:
    cinder支持nfs快照
    浏览器输入URL到返回页面的全过程
    按需制作最小的本地yum源
    创建可执行bin安装文件
    RPCVersionCapError: Requested message version, 4.17 is incompatible. It needs to be equal in major version and less than or equal in minor version as the specified version cap 4.11.
    惠普IPMI登陆不上
    Linux进程状态——top,ps中看到进程状态D,S,Z的含义
    openstack-neutron基本的网络类型以及分析
    openstack octavia的实现与分析(二)原理,架构与基本流程
    flask上下文流程图
  • 原文地址:https://www.cnblogs.com/alianbog/p/4541668.html
Copyright © 2011-2022 走看看