# 架构

> For the complete documentation index, see [llms.txt](https://www.jetbrains.com/zh-cn/help/idea/llms.txt).

IntelliJ IDEA 显示您 [选择](#show_all_the_schemas_and_databases)显示的模式。 如果您有很多架构，它可能会很有用。 此外，通过使用这种方法，您可以定义要内省的架构。 在 [自省](glossary-database-tools-and-sql.html#introspection)期间，IntelliJ IDEA 从数据库加载元数据，并在稍后使用这些数据。

架构（ ![架构](https://resources.jetbrains.com/help/img/idea/2026.3/database-plugin.icons.expui.schema.svg)）可以在   数据库  工具窗口中找到。

* 有关其他节点和对象图标的参考信息，请参阅 [数据库工具窗口](database-tool-window.html) 主题中的 [数据源及其元素](database-tool-window.html#icons-for-data-sources-and-their-elements) 章节。

* 使用 [视图选项](database-tool-window.html#view_options) 菜单中的树对象视图选项隐藏、排序、过滤和分组树对象。

![数据库中的Schemas](https://resources.jetbrains.com/help/img/idea/2026.3/database_object_schema.png)

Procedure: 创建架构

1. 在   数据库   工具窗口中，展开数据源树，直到数据库或架构的节点。

2. 右键点击数据源、数据库或架构节点，然后选择  `新建｜架构` 。

3. 在打开的   创建  对话框中，在   名称  字段中输入您的架构名称。

4. 在   预览   窗格中，您可以查看和更改生成的 SQL 代码。

5. 点击   OK  以添加您的架构。

> **Note:**
> 可用字段和选项取决于 DBMS。 有关更多详细信息，请参阅 DBMS 的官方文档。

![创建架构对话框](https://resources.jetbrains.com/help/img/idea/2026.3/db_create_schema.png)

## 设置默认架构

Procedure: 为查询控制台设置默认架构

为 查询控制台 选择默认架构后，可以在语句中省略该架构或数据库的名称。

* 要设置默认架构或数据库，请点击位于工具栏右上角的   <schema>   下拉列表。 然后，选择所需的架构。

![选择默认架构或数据库](https://resources.jetbrains.com/help/img/idea/2026.3/db_select_default_schema.png)

Procedure: 在数据源设置中设置默认架构

1. 通过以下任一方式打开数据源属性：

* 在 数据库 工具窗口工具栏中，点击 ![数据源图标](https://resources.jetbrains.com/help/img/idea/2026.3/database-plugin.icons.expui.manageDataSources.svg) 数据源 。

* 请按 `Shift+Enter` (Windows), `⌘ I` (macOS), `⇧ ⏎` (IntelliJ IDEA Classic (macOS)), `⌘ I` (macOS System Shortcuts), `Shift+Enter` (XWin), `Shift+Enter` (GNOME), `Shift+Enter` (KDE), `Shift+Enter` (Emacs), `Shift+Enter` (Sublime Text), `⌘ I` (Sublime Text (macOS)), `Shift+Enter` (Visual Studio), `⌘ I` (Visual Studio (macOS)), `Shift+Enter` (NetBeans), `Shift+Enter` (Eclipse), `⌘ I` (Eclipse (macOS)) .

![打开数据源和驱动程序对话框](https://resources.jetbrains.com/help/img/idea/2026.3/open_data_sources_and_drivers_dialog.png)

2. 请选择您要修改的数据源。 在   常规  选项卡中的   数据库  字段中，输入您想用作默认值的架构名称。

![选择默认架构或数据库](https://resources.jetbrains.com/help/img/idea/2026.3/select_default_schema_in_db_settings.png)

## 显示模式

> **Note:**
> 创建数据源时，创建的数据源中没有选择要显示的数据库或架构。 您需要自行选择要使用的项。

Procedure: 显示和隐藏模式

* 在   数据库   工具窗口中，右键单击数据源并转到  `工具 | 管理显示的模式…` 。 选择或清除您要显示或隐藏的架构的复选框。 按 `Enter` (Windows), `⏎` (macOS), `⏎` (IntelliJ IDEA Classic (macOS)), `⏎` (macOS System Shortcuts), `Enter` (XWin), `Enter` (GNOME), `Enter` (KDE), `Enter` (Emacs), `Enter` (Sublime Text), `⏎` (Sublime Text (macOS)), `Enter` (Visual Studio), `⏎` (Visual Studio (macOS)), `Enter` (NetBeans), `Enter` (Eclipse), `⏎` (Eclipse (macOS))。

* 点击数据源名称旁边的   第 N 个，共 M 个   链接。 在数据库和架构选择窗口中，选择或清除您要显示或隐藏的架构的复选框。 按 `Enter` (Windows), `⏎` (macOS), `⏎` (IntelliJ IDEA Classic (macOS)), `⏎` (macOS System Shortcuts), `Enter` (XWin), `Enter` (GNOME), `Enter` (KDE), `Enter` (Emacs), `Enter` (Sublime Text), `⏎` (Sublime Text (macOS)), `Enter` (Visual Studio), `⏎` (Visual Studio (macOS)), `Enter` (NetBeans), `Enter` (Eclipse), `⏎` (Eclipse (macOS))。

![显示和隐藏模式和数据库](https://resources.jetbrains.com/help/img/idea/2026.3/show_and_hide_dbs_schemas.png)

Procedure: 使用基于模式的过滤器

要显示并检查与正则表达式模式匹配的所有模式，请执行以下操作：

1. 在   数据库   工具窗口中，单击数据源名称旁边的   第 N 个，共 M 个   链接。

2. 在数据库和架构选择器中，点击   所有模式   附近的   添加模式   按钮。

![基于模式的架构筛选器](https://resources.jetbrains.com/help/img/idea/2026.3/db_pattern_based_schemas_filter.png)

3. 在新的过滤节点中，定义正则表达式。 有关语法，请点击输入字段附近的   架构的正则表达式  。 有关语法的更多信息，请参阅 [正则表达式构造的总结](#summary_of_regular_expression_constructs)。

按 `Enter` (Windows), `⏎` (macOS), `⏎` (IntelliJ IDEA Classic (macOS)), `⏎` (macOS System Shortcuts), `Enter` (XWin), `Enter` (GNOME), `Enter` (KDE), `Enter` (Emacs), `Enter` (Sublime Text), `⏎` (Sublime Text (macOS)), `Enter` (Visual Studio), `⏎` (Visual Studio (macOS)), `Enter` (NetBeans), `Enter` (Eclipse), `⏎` (Eclipse (macOS)) 在选择器中应用筛选器。

![基于模式的架构筛选器中的正则表达式](https://resources.jetbrains.com/help/img/idea/2026.3/pattern_based_schemas_filter_regexp.png)

4. 按 `Enter` (Windows), `⏎` (macOS), `⏎` (IntelliJ IDEA Classic (macOS)), `⏎` (macOS System Shortcuts), `Enter` (XWin), `Enter` (GNOME), `Enter` (KDE), `Enter` (Emacs), `Enter` (Sublime Text), `⏎` (Sublime Text (macOS)), `Enter` (Visual Studio), `⏎` (Visual Studio (macOS)), `Enter` (NetBeans), `Enter` (Eclipse), `⏎` (Eclipse (macOS))以在   数据库  工具窗口中应用过滤器。

带筛选器的筛选节点可以添加到任何节点下，包括另一个筛选节点。

> **Note:**
> 多个模式会合并多重性，而不是取交集。

> **Note:**
> 所有模式   节点现在的行为有所不同: 它不会自动选择默认架构。 您需要在   所有模式  、   默认架构   或筛选器节点之间进行选择。

Procedure: 显示所有架构和数据库

* 要在   数据库  工具窗口（  `视图 | 工具窗口 |   数据库` ）中显示所有可用的架构，请点击   显示选项菜单  按钮并选择   所有命名空间  选项。

* 已启用 ![“显示所有命名空间”已启用](https://resources.jetbrains.com/help/img/idea/2026.3/show_all_namespaces_enabled.png)

* 已禁用 ![“显示所有命名空间”已禁用](https://resources.jetbrains.com/help/img/idea/2026.3/show_all_namespaces_disabled.png)

Procedure: 比较两个模式

有关对话框控件的更多信息，请参阅 [迁移对话框的控件](schema-comparison-and-migration.html#controls_of_the_migration_dialog)。

1. 选择两个架构。

2. 右键点击选择并选择   将结构与以下对象比较…  。 或者按 `Ctrl+D` (Windows), `⌘ D` (macOS), `⌘ D` (IntelliJ IDEA Classic (macOS)), `⌘ D` (macOS System Shortcuts), `Ctrl+D` (XWin), `Ctrl+D` (GNOME), `Ctrl+D` (KDE), `Ctrl+D` (Emacs), `Ctrl+D` (Sublime Text), `⌘ D` (Sublime Text (macOS)), `Ctrl+D` (Visual Studio), `⌘ D` (Visual Studio (macOS)), `Ctrl+D` (NetBeans), `Ctrl+D` (Eclipse), `⌘ D` (Eclipse (macOS))。

![比较两个模式](https://resources.jetbrains.com/help/img/idea/2026.3/db_compare_two_schemas.png)

Procedure: 为 PostgreSQL 和 Redshift 设置架构搜索路径

PostgreSQL 中的  `search_path`  环境变量指定了搜索模式的顺序。 例如，您将  `search_path`  的值设置为  `z,a,public` ，PostgreSQL 将在  `z`  模式中查找值。 如果在  `z`  模式中未找到任何内容，PostgreSQL 将在  `a`  模式中查找该值。

在 PostgreSQL 和 Amazon Redshift 中，默认搜索路径（数据库中设置的路径）将被使用，除非您指定不同的搜索路径。

1. 点击   <session>   列表，导航到数据库架构列表（使用箭头图标 ![箭头图标](https://resources.jetbrains.com/help/img/idea/2026.3/app.general.arrowRight.svg) 或按右箭头键）。

2. 请选择您要添加到搜索路径的架构。

要形成搜索路径，您可以使用以下操作：

* 按 `Space` (Windows), `Space` (macOS), `Space` (IntelliJ IDEA Classic (macOS)), `Space` (macOS System Shortcuts), `Space` (XWin), `Space` (GNOME), `Space` (KDE), `Space` (Emacs), `Space` (Sublime Text), `Space` (Sublime Text (macOS)), `Space` (Visual Studio), `Space` (Visual Studio (macOS)), `Space` (NetBeans), `Space` (Eclipse), `Space` (Eclipse (macOS)) 将高亮显示的 schema 添加到搜索路径中，并将 schema 从搜索路径中移除。

* 按 `Alt+Up` (Windows), `⌃ ⇧ ↑` (macOS), `⌃ ↑` (IntelliJ IDEA Classic (macOS)), `⌃ ⌥ ↑` (macOS System Shortcuts), `Alt+Up` (XWin), `Alt+Up` (GNOME), `Alt+Up` (KDE), `Alt+Up` (Emacs), `Alt+Up` (Sublime Text), `Alt+Up` (Sublime Text (macOS)), `Alt+Up` (Visual Studio), `⌃ ⇧ ↑` (Visual Studio (macOS)), `Ctrl+Alt+Up` (NetBeans), `Ctrl+Shift+Up` (Eclipse), `⌃ ⌥ ↑` (Eclipse (macOS)) 和 `Alt+Down` (Windows), `⌃ ⇧ ↓` (macOS), `⌃ ↓` (IntelliJ IDEA Classic (macOS)), `⌃ ⌥ ↓` (macOS System Shortcuts), `Alt+Down` (XWin), `Alt+Down` (GNOME), `Alt+Down` (KDE), `Alt+Down` (Emacs), `Alt+Down` (Sublime Text), `Alt+Down` (Sublime Text (macOS)), `Alt+Down` (Visual Studio), `⌃ ⇧ ↓` (Visual Studio (macOS)), `Ctrl+Alt+Down` (NetBeans), `Ctrl+Shift+Down` (Eclipse), `⌃ ⌥ ↓` (Eclipse (macOS)) 以重新排序搜索路径中的 schemas。

3. 要应用更改，请点击   OK  。

![控制 PostgreSQL 和 Redshift 的搜索路径](https://resources.jetbrains.com/help/img/idea/2026.3/db_console_schema_search_path.png)

Procedure: 在 IDE 重启之间保存 PostgreSQL 和 Redshift 的搜索路径

1. 在   数据库   工具窗口中，右键单击 PostgreSQL 或 Amazon Redshift 数据源，然后选择   Properties   `Shift+Enter` (Windows), `⌘ I` (macOS), `⇧ ⏎` (IntelliJ IDEA Classic (macOS)), `⌘ I` (macOS System Shortcuts), `Shift+Enter` (XWin), `Shift+Enter` (GNOME), `Shift+Enter` (KDE), `Shift+Enter` (Emacs), `Shift+Enter` (Sublime Text), `⌘ I` (Sublime Text (macOS)), `Shift+Enter` (Visual Studio), `⌘ I` (Visual Studio (macOS)), `Shift+Enter` (NetBeans), `Shift+Enter` (Eclipse), `⌘ I` (Eclipse (macOS))。

2. 点击   选项  选项卡。

3. 从   切换架构   列表中选择   自动  。

4. 点击   OK  。

![在 IDE 重启之间保存搜索路径](https://resources.jetbrains.com/help/img/idea/2026.3/db_save_search_path_persistently.png)

Procedure: 强制刷新架构信息

Force Refresh   操作会从缓存中清除数据源信息，并从头重新加载。

* 在   数据库   工具窗口中，右键单击数据源并选择  `诊断 | 强制刷新` 。

Procedure: 为架构生成图表

* 在   数据库   工具窗口中，右键单击模式，然后选择  `图表 | 显示图表` 。

![为数据库对象生成图表](https://resources.jetbrains.com/help/img/idea/2026.3/create_diagram_for_schema.png)

## 正则表达式构造的总结

有关完整信息，请参阅 [完整的 Java 正则表达式语法说明](https://docs.oracle.com/javase/1.5.0/docs/api/java/util/regex/Pattern.html) 和 [在 Java 中使用正则表达式](https://www.regular-expressions.info/java.html)。

|  构造  |  匹配  |
| --- | --- |
|  字符  |
|   `x`   |  字符 x  |
|   `\\`   |  反斜杠字符  |
|   `\0n`   |  八进制值为 0n 的字符 (0 <= n <= 7)  |
|   `\0nn`   |  八进制值为 0nn 的字符 (0 <= n <= 7)  |
|   `\0mnn`   |  八进制值为 0mnn 的字符 (0 <= m <= 3, 0 <= n <= 7)  |
|   `\xhh`   |  十六进制值为 0xhh 的字符  |
|   `\uhhhh`   |  十六进制值为 0xhhhh 的字符  |
|   `\t`   |  制表符（'\u0009'）  |
|   `\n`   |  换行符（'\u000A'）  |
|   `\r`   |  回车字符（'\u000D'）  |
|   `\f`   |  换页字符 ('\u000C')  |
|   `\a`   |  警报 (响铃) 字符 ('\u0007')  |
|   `\e`   |  转义字符（'\u001B'）  |
|   `\cx`   |  与 x 对应的控制字符  |
|  字符类  |
|   `[abc]`   |  a、b 或 c（简单类）  |
|   `[^abc]`   |  除 a、b 或 c 之外的任意字符 (取反)  |
|   `[a-zA-Z]`   |  a 到 z 或 A 到 Z，包含端点 (范围)  |
|   `[a-d[m-p]]`   |  a 到 d，或 m 到 p: [a-dm-p] (并集)  |
|   `[a-z&&[def]]`   |  d、e 或 f（交集）  |
|   `[a-z&&[^bc]]`   |  a 到 z，除 b 和 c 之外: [ad-z] (差集)  |
|   `[a-z&&[^m-p]]`   |  a 到 z，且不包括 m 到 p: [a-lq-z](差集)  |
|  预定义字符类  |
|   `。`   |  任意字符 (可能匹配也可能不匹配行终止符)  |
|   `\d`   |  一个数字：[0-9]  |
|   `\D`   |  非数字: [^0-9]  |
|   `\s`   |  一个空格字符: [ \t\n\x0B\f\r]  |
|   `\S`   |  非空白字符: [^\s]  |
|   `\w`   |  单词字符: [a-zA-Z_0-9]  |
|   `\W`   |  非单词字符：[^\w]  |
|  POSIX 字符类 (仅限 US-ASCII)  |
|   `\p{Lower}`   |  小写字母字符：[a-z]  |
|   `\p{Upper}`   |  大写字母字符:[A-Z]  |
|   `\p{ASCII}`   |  所有 ASCII:[\x00-\x7F]  |
|   `\p{Alpha}`   |  字母字符:[\p{Lower}\p{Upper}]  |
|   `\p{Digit}`   |  一个十进制数字: [0-9]  |
|   `\p{Alnum}`   |  字母数字字符:[\p{Alpha}\p{Digit}]  |
|   `\p{Punct}`   |  标点符号：!"#$%&'()*+,-./:;=>?@[\]^_`{\|}~ 中的一个  |
|   `\p{Graph}`   |  一个可见字符：[\\p{Alnum}\\p{Punct}]  |
|   `\p{Print}`   |  可打印字符: [\p{Graph}\x20]  |
|   `\p{Blank}`   |  一个 Space 或一个制表符: [ \t]  |
|   `\p{Cntrl}`   |  控制字符: [\x00-\x1F\x7F]  |
|   `\p{XDigit}`   |  一个十六进制数字：[0-9a-fA-F]  |
|   `\p{Space}`   |  一个空格字符: [ \t\n\x0B\f\r]  |
|  java.lang.Character 类 (简单 Java 字符类型)  |
|   `\p{javaLowerCase}`   |  等价于 java.lang.Character.isLowerCase()  |
|   `\p{javaUpperCase}`   |  相当于 java.lang.Character.isUpperCase()  |
|   `\p{javaWhitespace}`   |  等同于 java.lang.Character.isWhitespace()  |
|   `\p{javaMirrored}`   |  相当于 java.lang.Character.isMirrored()  |
|  Unicode 块和类别的类  |
|   `\p{InGreek}`   |  Greek 块中的字符 (简单块)  |
|   `\p{Lu}`   |  大写字母（简单类别）  |
|   `\p{Sc}`   |  一个货币符号  |
|   `\P{InGreek}`   |  除 Greek 块中的字符之外的任意字符 (取反)  |
|   `[\p{L}&&[^\p{Lu}]]`   |  除大写字母之外的任意字母 (差集)  |
|  边界匹配器  |
|   `^`   |  一行的开头  |
|   `$`   |  一行的结尾  |
|   `\b`   |  一个词边界  |
|   `\B`   |  非单词边界  |
|   `\A`   |  输入的开头  |
|   `\G`   |  上一次匹配的结尾  |
|   `\Z`   |  输入的结尾，但不包括最后的终止符，如有  |
|   `\z`   |  输入结束  |
|  贪婪量词  |
|   `X?`   |  X，一次或完全不出现  |
|   `X*`   |  X，零次或多次  |
|   `X+`   |  X，一次或多次  |
|   `X{n}`   |  X，恰好 n 次  |
|   `X{n,}`   |  X，至少 n 次  |
|   `X{n,m}`   |  X，至少 n 次但不超过 m 次  |
|  不情愿量词  |
|   `X??`   |  X，一次或完全不出现  |
|   `X*?`   |  X，零次或多次  |
|   `X+?`   |  X，一次或多次  |
|   `X{n}?`   |  X，恰好 n 次  |
|   `X{n,}?`   |  X，至少 n 次  |
|   `X{n,m}？`   |  X，至少 n 次但不超过 m 次  |
|  所有格量词  |
|   `X?+`   |  X，一次或完全不出现  |
|   `X*+`   |  X，零次或多次  |
|   `X++`   |  X，一次或多次  |
|   `X{n}+`   |  X，恰好 n 次  |
|   `X{n,}+`   |  X，至少 n 次  |
|   `X{n,m}+`   |  X，至少 n 次但不超过 m 次  |
|  逻辑运算符  |
|   `XY`   |  X，后接 Y  |
|   `X\|Y`   |  X 或 Y  |
|   `(X)`   |  X，作为捕获组  |
|  后向引用  |
|   `\n`   |  第 n 个捕获组匹配的内容  |
|  引用  |
|   `\`   |  本身不匹配任何内容，但引用后面的字符  |
|   `\Q`   |  本身不匹配任何内容，但引用所有字符直到 \E  |
|   `\E`   |  本身不匹配任何内容，但结束由 \Q 开始的引用  |
|  特殊构造 (非捕获)  |
|   `(?:X)`   |  X，作为非捕获组  |
|   `(?idmsux-idmsux)`   |  只是打开或关闭匹配标志  |
|   `(?idmsux-idmsux:X)`   |  X，作为带给定标志开 - 关的非捕获组  |
|   `(?=X)`   |  X，通过零宽度正向先行断言  |
|   `(?!X)`   |  X，通过零宽度负向先行断言  |
|   `(?<=X)`   |  X，通过零宽度正向后行断言  |
|   `(?<!X)`   |  X，通过零宽度负向后行断言  |
|   `(?>X)`   |  X，作为一个独立的非捕获组  |

### 参考

[创建和修改对话框](create-and-modify-dialogs.html#schemas) [数据源及其元素](database-tool-window.html#icons-for-data-sources-and-their-elements)

### 相关

[内省](glossary-database-tools-and-sql.html#introspection)

### 工具 Windows

[数据库工具窗口](database-tool-window.html)

### 导航

### 语言和框架特定指南

[数据库工具和 SQL](relational-databases.html)

