1. 默认模式(Public Schema):
在 PostgreSQL 中,默认的模式是 public。如果在创建对象时没有指定模式,则它们将被放置在 public 模式下。
2. 创建模式:
CREATE SCHEMA schema_name;
这将创建一个名为 schema_name 的新模式。
3. 创建表时指定模式:
CREATE TABLE schema_name.table_name (
column1 datatype,
column2 datatype,
-- 其他列
);
这将在名为 schema_name 的模式下创建一个名为 table_name 的表。
4. 查询对象时指定模式:
SELECT * FROM schema_name.table_name;
这将查询名为 schema_name 的模式下的 table_name 表。
5. 更改默认搜索路径:
默认情况下,PostgreSQL 在查询对象时会搜索 public 模式。你可以更改默认搜索路径:
SET search_path TO schema_name, public;
这将更改搜索路径,使之首先搜索 schema_name,然后是 public。
6. 查看模式下的对象:
SELECT * FROM information_schema.tables WHERE table_schema = 'schema_name';
这将显示名为 schema_name 的模式下的所有表的信息。你可以将 tables 替换为其他对象类型,如 views、columns 等。
7. 删除模式:
DROP SCHEMA schema_name;
要删除模式,必须首先确保模式为空(不包含任何对象),或者使用 CASCADE 选项强制删除并删除模式中的所有对象。
DROP SCHEMA schema_name CASCADE;
示例:
-- 创建模式
CREATE SCHEMA company_data;
-- 在模式中创建表
CREATE TABLE company_data.employees (
employee_id SERIAL PRIMARY KEY,
first_name VARCHAR(50),
last_name VARCHAR(50)
);
-- 查询模式中的表
SELECT * FROM company_data.employees;
-- 更改默认搜索路径
SET search_path TO company_data, public;
-- 查看模式中的对象
SELECT * FROM information_schema.tables WHERE table_schema = 'company_data';
-- 删除模式
DROP SCHEMA company_data CASCADE;
这是一些关于 PostgreSQL 模式的基本概念和操作。模式对于组织和隔离数据库对象非常有用,尤其在有多个用户或应用程序共享同一个数据库时。
转载请注明出处:http://www.zyzy.cn/article/detail/8129/PostgreSQL