zoukankan      html  css  js  c++  java
  • PostgreSQL 库的基本操作

    个人学习笔记,谢绝转载!!!
    原文:https://www.cnblogs.com/wshenjin/p/12952126.html


    建库:

    CREATE DATABASE

    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 ]
               [ ALLOW_CONNECTIONS [=] allowconn ]
               [ CONNECTION LIMIT [=] connlimit ]
               [ IS_TEMPLATE [=] istemplate ] ]
    
    参数:
    
      OWNER [=] user_name              新库所属用户的角色名称(PostgreSQL角色和用户没有区别),缺省使用执行命令的用户。如果想要给另外的角色创建数据库,那么命令执行者必须是那个角色的成员,或者是超级用户。
    
      TEMPLATE [=] template            新库使用模板的名称,缺省为template1(建议使用template0,template0是不可修改的空白数据库)。
    
      ENCODING [=] encoding            新库使用的字符集编码。指定一个字符串常量(如'UFT8'),或者代表字符集编码的整数,或者使用缺省值(即模板数据库使用的字符集编码)。
    
      LC_COLLATE [=] lc_collate        新库使用的排序规则,该参数会影响到字符串的排序,比如查询语句中使用order by,以及文本类型列的索引排序,缺省使用模板数据库的lc_collate。
    
      LC_CTYPE [=] lc_ctype            新库使用的字符分类,该参数会影响字符的分类,比如大写字符、小写字符、数字,缺省使用模板数据库的lc_ctype。
    
      TABLESPACE [=] tablespace_name   新库相关的表空间名称,缺省使用模板数据库的表空间。在该数据库中创建的所有对象缺省使用该表空间。
                                       表空间实际上就是为数据库对象指定一个存储目录,例如重要的数据存储在更安全的目录下,频繁访问的数据存储在性能更好的目录,不同的目录挂载不同的存储介质就可以做到数据的分类存储。
                                       使用psql客户端命令db可查看当前有哪些表空间。
    
      CONNECTION LIMIT [=] connlimit   新数据库可以接受的并发连接的数量,缺省为-1,表示无限制。
    

    修改数据库:

    ALTER DATABASE

    Command:     ALTER DATABASE
    Description: change a database
    Syntax:
    ALTER DATABASE name [ [ WITH ] option [ ... ] ]
    
    where option can be:
    
        ALLOW_CONNECTIONS allowconn
        CONNECTION LIMIT connlimit
        IS_TEMPLATE istemplate
    
    ALTER DATABASE name WITH CONNECTION LIMIT = connlimit;                          修改数据库并发连接数量
    
    ALTER DATABASE name RENAME TO new_name;                                         修改数据库名称
    
    ALTER DATABASE name OWNER TO { new_owner | CURRENT_USER | SESSION_USER }        修改数据库用户
    
    ALTER DATABASE name SET TABLESPACE new_tablespace                               修改数据库表空间
    
    ALTER DATABASE name SET configuration_parameter { TO | = } { value | DEFAULT }  为当前数据库会话指定的配置参数设置指定值,如果value的值为DEFAULT,或者使用RESET,数据库指定的设置将被删除,在新的会话中会继承系统范围内的所有默认配置。
    ALTER DATABASE name SET configuration_parameter FROM CURRENT                    SET FROM CURRENT保存当前会话配置参数值为数据库指定值
    ALTER DATABASE name RESET configuration_parameter                               RESET 清除数据库指定配置
    ALTER DATABASE name RESET ALL                                                   RESET ALL清除数据库所有指定配置
    

    栗子:

    建库
    CREATE DATABASE sample_db;
    
    删库
    CREATE DATABASE sample_db;
    
    建库并设置owner
    CREATE DATABASE sample_db WITH OWNER pguser;
    
    重命名库
    ALTER DATABASE sample_db RENAME TO sample_new_db;
    
    重置owner
    ALTER DATABASE sample_db WITH OWNER TO root;
    
    修改并发连接数
    ALTER DATABASE sample_db WITH CONNECTION LIMIT = 100;
    

    删库:

    DROP DATABASE [ IF EXISTS ] name

    DROP DATABASE 只能由超级管理员或数据库拥有者执行

    其他:

    • l :查看所有的库
    • c dbname :选择数据库
  • 相关阅读:
    Windows设置VMware开机自动启动,虚拟机也启动
    PHP中unset,array_splice删除数组中元素的区别
    Linux 出现 E325:ATTENTION swap
    Linux中的info指令
    java创建线程的三种方式——附源码说明
    JVM类加载过程
    java实现责任链模式的小demo
    讲讲java中线程池的实现
    将原型模式和建造者模式结合起来耍一耍
    一个简单的单例模式Demo
  • 原文地址:https://www.cnblogs.com/wshenjin/p/12952126.html
Copyright © 2011-2022 走看看