暂无图片
暂无图片
3
暂无图片
暂无图片
暂无图片

PostgreSQL征途:逻辑结构管理之数据库基本操作

0004.png

数据库逻辑结构介绍

  • 数据库:一个PostgreSQL数据库服务可以管理多个数据库,当应用连接到一个数据库时,一般只能访问这个数据库中的数据,而不能访问其他数据库中的内容(除非使用DBLink等其他手段);
  • 表、索引:一个数据库中有很多表、索引。一般来说,在PostgreSQL中表的术语为“Relation”;
  • 数据行:每张表中都有很多行数据。在PostgreSQL中行的术语一般为“Tuple”;
  • 在PostgreSQL中,一个数据库服务(或叫实例)下可以有多个数据库,但一个数据库不能属于多个实例;

0000.gif

数据库基本操作

创建数据库

CREATE DATABASE name [ WITH ] [ OWNER [=] user_name ] [ TEMPLATE [=] template ] [ ENCODING [=] encoding ] [ STRATEGY [=] strategy ] ] [ LOCALE [=] locale ] [ LC_COLLATE [=] lc_collate ] [ LC_CTYPE [=] lc_ctype ] [ ICU_LOCALE [=] icu_locale ] [ LOCALE_PROVIDER [=] locale_provider ] [ COLLATION_VERSION = collation_version ] [ TABLESPACE [=] tablespace_name ] [ ALLOW_CONNECTIONS [=] allowconn ] [ CONNECTION LIMIT [=] connlimit ] [ IS_TEMPLATE [=] istemplate ] [ OID [=] oid ]
  • OWNER [=] user_name:用于指定新建的数据库属于哪个用户,如果不指定,新建的数据库就属于当前执行命令的用户;
  • TEMPLATE [=] template:模板名(从哪个模板创建新数据库),如果不指定,将使用默认模板数据库(template1);
  • [ENCODING [=] encoding]:创建新数据库使用的字符编码;
  • TABLESPACE [=] tablespace:用于指定和新数据库关联的表空间名称;
  • CONNECTION LIMIT [=] connlimit]:用于指定数据库可以接受多少并发的连接。默认值为“-1”,表示没有限制;
CREATE DATABASE demodb;

pg0192.png

修改数据库

ALTER DATABASE name [ [ WITH ] option [ ... ] ] # option ALTER DATABASE name RENAME TO new_name ALTER DATABASE name OWNER TO { new_owner | CURRENT_ROLE | CURRENT_USER | SESSION_USER } ALTER DATABASE name SET TABLESPACE new_tablespace ALTER DATABASE name REFRESH COLLATION VERSION 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
# 将数据库 demodb 的最大连接数修改为10 alter database demodb CONNECTION LIMIT 10; # 将数据库 demodb 的名称改为 testdb alter database demodb rename to testdb;

pg0193.png

删除数据库

DROP DATABASE [ IF EXISTS ] name [ [ WITH ] ( option [, ...] ) ]
# 删除数据库 # 数据库存在,则将其删除,如果不存在,使用删除命令时也不报错 postgres=# drop database if exists testdb01; NOTICE: database "testdb01" does not exist, skipping DROP DATABASE # 有用户连接在这个数据库上,将无法删除该数据库 postgres=# drop database testdb; ERROR: database "testdb" is being accessed by other users DETAIL: There is 1 other session using the database.

pg0194.png

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

文章被以下合辑收录

评论