数据库是使用CREATE DATABASE,并且用DROP DATABASE命令删除)。要确定现有数据库的集合,可以检查系统目录pg_database,例如SELECT datname FROM pg_database;
psql程序的\l元命令和-l命令行选项也可以用来列出已有的数据库。
root@scutech:/var/lib/postgresql/12/main# sudo -u postgres psql -l -U postgres List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges -----------+----------+----------+-------------+-------------+----------------------- mydb | scutech | UTF8 | en_CA.UTF-8 | en_CA.UTF-8 | postgres | postgres | UTF8 | en_CA.UTF-8 | en_CA.UTF-8 | template0 | postgres | UTF8 | en_CA.UTF-8 | en_CA.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres template1 | postgres | UTF8 | en_CA.UTF-8 | en_CA.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres test | postgres | UTF8 | en_CA.UTF-8 | en_CA.UTF-8 | (5 rows)
当初始化数据库集簇时,会自动创建两个表空间。pg_global表空间被用于共享系统目录。pg_default表空间是template1和template0数据库的默认表空间(并且,因此也将是所有其他数据库的默认表空间,除非被一个CREATE DATABASE中的TABLESPACE子句覆盖)。
要定义一个表空间,使用CREATE TABLESPACE命令,例如:CREATE TABLESPACE fastspace LOCATION ‘/ssd1/postgresql/data’;
要确定现有表空间的集合,可检查pg_tablespace 系统目录,例如:SELECT spcname FROM pg_tablespace;
psql程序的\db元命令也可以用来列出现有的表空间。