1。总结:
数据库可以看作是SQL对象(数据库对象)的命名集。一般来说,每一个数据库对象(表、
函数等)只属于一个数据库。但是,对于一些
系统表,如pg_database,它属于整个集群。更准确地说,数据库是一个收集
模式和架构包含SQL对象,如表、函数等所以完整的对象的水平应该是这样的:
服务器、数据库、架构、表、或其他
类型的对象。
建立与数据库服务器的
连接时,连接只能与一个数据库相
关联,它是不允许访问在一个会话中的多个数据库。如果postgres
用户登录,
默认的数据库,用户可以访问Postgres。登录后,如果下面的SQL语句
执行时,PostgreSQL给出的有关
错误信息将被接受。
复制代码代码如下所示:
Postgres = # SELECT * FROM中。中。testtables;
错误:跨数据库引用不落实:有otherdb。其他用户。
1行:SELECT * FROM otherdb.otheruser.sometable
在PostgreSQL数据库是物理上彼此分开,并为他们访问的
控制也在会议上进行。然而,架构是一个逻辑对象的
管理结构和访问模式的对象的
权限控制系统。
基于系统表的以下
查询语句可以列出现有的数据库集。
复制代码代码如下所示:
选择datname从pg_database;
注: l元指挥的psql应用和-l
命令行
选项也可以用来列出当前服务器现有的数据库。
两。
创建数据库:
数据库是通过执行下面的SQL语句在服务器创建。
复制代码代码如下所示:
创建数据库db_name;
在成功创建数据库之后,当前登录角色将自动成为新数据库的所有者。
删除数据库时还需要用户的权限。如果您希望当前创建的数据库的所有者是另一个角色,则可以执行以下SQL语句。
复制代码代码如下所示:
创建数据库db_name业主role_name;
三。
修改数据库
配置:
PostgreSQL服务器提供了大量的
运行时配置的变量,我们可以根据自己的实际
情况配置变为数据库指定特殊值,通过执行下面的SQL命令可以使数据库配置
设置为指定的值,然后使用默认值。
复制代码代码如下所示:
修改数据库db_name varname为new_value集;
通过这种方式,修改后的配置值在基于数据库的会话中生效。如果您想撤消此设置并
恢复到原来的默认值,则可以执行以下SQL命令。
复制代码代码如下所示:
单个数据库重置Varname;
四。删除数据库:
只有将数据库所有者和超级用户可以删除数据库,删除数据库将删除所有对象包含在数据库中,这是不可恢复的。看到如下:删除SQL命令:
复制代码代码如下所示:
删除数据库db_name;
五。表
空间:
在PostgreSQL数据库,表空间是一组
文件的
目录位置。在创作中,数据库对象可以在表空间创建的。通过使用表空间,
管理员可以控制一个PostgreSQL服务器的
磁盘布局。这样,管理员可以计划这些对象的存储位置根据数据量和数据的数据库对象的使用
频率,从而减少IO
等待和
优化系统的整体
性能。例如,一个常用的指标是放在非常可靠,高效的磁盘设备,如固态
硬盘,很少使用的数据库对象存储在一个相对缓慢的磁盘系统。以下SQL命令用于创建一个表空间。
复制代码代码如下所示:
创建表空间fastspace位置 / / / mnt
安装PostgreSQL /数据;
需要说明的是,在表空间指定的位置必须是一个现有的空目录,属于PostgreSQL系统用户,如Postgres。创建成功后,所有的对象在表空间创建将存储在这个目录中的文件。
在PostgreSQL,只有超级用户可以创建表空间,但是成功后的创作,它允许普通数据库用户在创建数据库对象。要做到这一点,你必须授予创建表空间的用户权限。表,索引,和整个数据库可以被放置在一个特定的表空间。看下面SQL命令:
复制代码代码如下所示:
创建表foo(I型)表空间的感觉;
此外,我们还可以修改default_tablespace配置变量,为了使指定表空间的默认表空间,以便在任何数据库对象的创建,如果不指定表空间,那么物体将在默认表空间中创建,如:
复制代码代码如下所示:
default_tablespace =四集;
创建表富(i int);
与数据库相关联的表空间用于存储数据库的系统表,以及使用数据库的服务器
进程创建的任何临时文件。
若要删除空表空间,可以直接使用下拉表空间命令。但是,要删除包含数据库对象的表空间,我们需要删除表空间上的所有对象,然后再删除表空间。
在当前的系统检索表空间,以下查询可以执行,而pg_tablespace是PostgreSQL系统表。
复制代码代码如下所示:
选择spcname从pg_tablespace;
我们还可以使用的psql
程序出现在表空间 DB元命令栏。