PostgreSQL - 创建数据库
PostgreSQL - 创建数据库
Section titled “PostgreSQL - 创建数据库”在 PostgreSQL 中,数据库是 SQL 对象(如表、视图和函数)的容器。您可以使用 SQL 命令或命令行工具创建新数据库。这两种方法都需要适当的用户权限(通常是超级用户或具有 CREATEDB 属性的用户)。
方法一:使用 SQL 命令 CREATE DATABASE
Section titled “方法一:使用 SQL 命令 CREATE DATABASE”CREATE DATABASE 命令是创建新数据库的标准 SQL 方法。您可以从任何 SQL 客户端运行它,例如 psql 交互式终端。
CREATE DATABASE database_name;带常见选项的语法
Section titled “带常见选项的语法”实际操作中,您通常会想指定额外的参数,例如数据库所有者和编码。
CREATE DATABASE my_app_dbWITH OWNER = my_app_user ENCODING = 'UTF8' CONNECTION LIMIT = 100;OWNER:指定将拥有新数据库的用户角色。这是一个关键的安全实践。ENCODING:设置数据库的字符集。UTF8是现代标准,强烈推荐用于支持各种字符。CONNECTION LIMIT:设置允许连接到此数据库的最大并发连接数。
方法二:使用 createdb 命令行工具
Section titled “方法二:使用 createdb 命令行工具”createdb 是 CREATE DATABASE 命令的一个方便的包装器,您可以直接从系统的 shell 中运行它(而不是在 psql 内部)。
createdb [option...] [dbname [description]]此命令创建一个名为 inventory_db 的新数据库,所有者为用户 inventory_manager,并连接到本地主机上的 PostgreSQL 服务器。
# 从你的 bash/zsh/cmd 终端运行此命令,而不是在 psql 内部createdb -h localhost -p 5432 -U postgres -O inventory_manager -E UTF8 inventory_db-U postgres:以postgres用户(或其他超级用户)身份连接。-O inventory_manager:将新数据库的所有者设置为inventory_manager。-E UTF8:将编码设置为 UTF8。
验证数据库创建
Section titled “验证数据库创建”创建数据库后,您可以通过列出所有数据库来验证其是否存在。使用 psql 连接并运行 \l 命令。
postgres=# \l
List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges---------------+----------------+----------+---------+-------+----------------------- my_app_db | my_app_user | UTF8 | C.UTF-8 | C.UTF-8 | postgres | postgres | UTF8 | C.UTF-8 | C.UTF-8 | ...etc最佳实践和后续步骤
Section titled “最佳实践和后续步骤”- 最小权限原则:避免为您的应用程序使用
postgres超级用户。创建数据库后,请创建一个专用用户角色,仅授予该数据库所需的权限(CREATE ROLE...、GRANT...)。 - 命名约定:数据库名称使用小写字母、数字和下划线(
_),以避免引用问题并确保跨平台兼容性。 - 开发与生产:在开发环境中,考虑使用 Docker Compose 等工具自动化数据库的创建和设置,确保为所有开发人员提供一致的环境。
- 模式迁移:对于实际项目,请使用模式迁移工具(如 Flyway、Liquibase 或 ORM 中内置的工具)以编程方式管理数据库更改。最初的
CREATE DATABASE只是第一步。