架构
IntelliJ IDEA 显示您 选择显示的模式。 如果您有很多架构,它可能会很有用。 此外,通过使用这种方法,您可以定义要内省的架构。 在 自省期间,IntelliJ IDEA 从数据库加载元数据,并在稍后使用这些数据。
架构( )可以在 数据库 工具窗口中找到。
如需参考其他节点和对象图标,请参阅 数据源及其元素 章节的 Database(数据库)工具窗口 主题。
使用 视图选项 菜单中的树对象视图选项隐藏、排序、过滤和分组树对象。

创建架构
在 数据库 工具窗口( )中,展开数据源树,直到数据库或架构的节点。
右键点击数据源、数据库或架构节点,然后选择 。
在打开的 创建 对话框中,在 名称 字段中输入您的架构名称。
在 预览(P) 窗格中,您可以查看和更改生成的 SQL 代码。
点击 确定 以添加您的架构。

选择默认模式
您可以使用工具栏右上角的列表选择默认 schema 或数据库。 当您选择默认模式时,可以在语句中省略该模式或数据库的名称。
点击 <schema> 列表,然后选择所需的架构。

在连接设置中设置默认架构
打开数据源属性。 您可以通过以下选项之一打开数据源属性:
在 数据库 工具窗口( )中,点击 数据源属性 图标
。
按下 Ctrl+Alt+Shift+S。
请选择您要修改的数据源。 在 常规 选项卡中的 数据库 字段中,输入您想用作默认值的架构名称。

显示模式
显示和隐藏模式
在 数据库 工具窗口( )中,右键点击数据源并导航到 。 选择或取消选中您希望显示或隐藏的架构复选框。 按下 Enter。
请点击数据源名称附近的 第 N 个,共 M 个 链接。 在数据库和模式选择窗口中,选中或取消您想要显示或隐藏的模式的复选框。 按下 Enter。

使用基于模式的过滤器
要显示并检查与正则表达式模式匹配的所有模式,请执行以下操作:
在 数据库 工具窗口( )中,点击数据源名称附近的 第 N 个,共 M 个 链接。
在数据库和模式选择器中,点击 添加模式 按钮附近的 所有模式。

在新的过滤节点中,定义正则表达式。 有关语法,请点击 架构的正则表达式 旁边的输入字段。 有关语法的更多信息,请参阅 正则表达式构造的总结。
请按 Enter 在选择器中应用筛选器。

按 Enter 以在 数据库 工具窗口中应用过滤器。
带有 filter 的过滤节点可以添加到任何节点下,包括另一个过滤节点。
显示所有架构和数据库
要在 数据库 工具窗口( )中显示所有可用的架构,请点击 显示选项菜单 按钮并选择 所有命名空间 选项。
已启用

已禁用

比较两个模式
有关对话框控件的更多信息,请参阅 迁移对话框的控件。
选择两个架构。
右键点击选择内容并导航到 。 或者按 Ctrl+D。

为 PostgreSQL 和 Redshift 设置架构搜索路径
PostgreSQL 中的 search_path 环境变量指定了搜索模式的顺序。 例如,您将 search_path 的值设置为 z,a,public ,PostgreSQL 将在 z 模式中查找值。 如果在 z 模式中未找到任何内容,PostgreSQL 将在 a 模式中查找该值。
在 PostgreSQL 和 Amazon Redshift 中,默认搜索路径(数据库中设置的路径)将被使用,除非您指定不同的搜索路径。
点击 <session> 列表,导航到数据库架构列表(使用箭头图标
或按右箭头键)。
请选择您要添加到搜索路径的架构。
要形成搜索路径,您可以使用以下操作:
按 Space 将高亮显示的 schema 添加到搜索路径中,并将 schema 从搜索路径中移除。
按 Alt+Up 和 Alt+Down 以重新排序搜索路径中的 schemas。
要应用更改,请点击 确定。

在 IDE 重启之间保存 PostgreSQL 和 Redshift 的搜索路径
在 数据库 工具窗口( )中,右键点击 PostgreSQL 或 Amazon Redshift 数据源,然后选择 属性 Ctrl+Alt+Shift+S。
点击 选项 选项卡。
从 切换架构 列表中选择 自动。
点击 确定。

强制刷新模式信息
强制刷新 操作将从缓存中清除数据源信息并重新加载。
在 数据库 工具窗口( )中,右键点击数据源并选择 。
为架构生成图表
在 数据库 工具窗口( )中,右键点击架构并选择 。

正则表达式构造的总结
有关所有详细信息,请参阅 完整的 Java 正则表达式语法描述和 在 Java 中使用正则表达式。
构造 | 匹配 |
|---|---|
字符 | |
| 字符 x |
| 反斜杠字符 |
| 八进制值为 0n 的字符 (0 <= n <= 7) |
| 八进制值为 0nn 的字符 (0 <= n <= 7) |
| 八进制值为 0mnn 的字符 (0 <= m <= 3, 0 <= n <= 7) |
| 十六进制值为 0xhh 的字符 |
| 十六进制值为 0xhhhh 的字符 |
| 制表符('\u0009') |
| 换行符('\u000A') |
| 回车字符('\u000D') |
| 换页字符('\u000C') |
| 警报(铃铛)字符('\u0007') |
| 转义字符('\u001B') |
| 与 x 对应的控制字符 |
字符类 | |
| a、b 或 c(简单类) |
| 非 a、b 或 c 的任何字符(否定) |
| a through z 或 A through Z(范围) |
| a 到 d,或 m 到 p:[a-dm-p](联合) |
| d、e 或 f(交集) |
| 除了 b 和 c 的 a 到 z:[ad-z](减法) |
| a 到 z,但不包括 m 到 p: [a-lq-z](减法) |
预定义字符类 | |
| 任何字符(可能匹配也可能不匹配行终止符) |
| 一个数字:[0-9] |
| 一个非数字:[ ^ 0-9 ] |
| 空白字符:[ \t\n\x0B\f\r] |
| 非空字符:[^\s] |
| 单词字符:[a-zA-Z_0-9] |
| 非单词字符:[^\w] |
POSIX 字符类(仅限 US-ASCII) | |
| 小写字母字符:[a-z] |
| 一个大写字母字符:[A-Z] |
| 所有 ASCII:[ \x00-\x7F ] |
| 一个字母字符:[\p{Lower}\p{Upper}] |
| 十进制数字:[0-9] |
| 一个字母数字字符:[\p{Alpha}\p{Digit}] |
| 标点符号:!"#$%&'()*+,-./:;=>?@[\]^_`{|}~ |
| 一个可见字符:[\\p{Alnum}\\p{Punct}] |
| 可打印字符:[\\p{Graph}\\x20] |
| 空格或制表符:[ \t] |
| 一个控制字符:[ \x00 - \x1F\x7F ] |
| 一个十六进制数字:[0-9a-fA-F] |
| 空白字符:[ \t\n\x0B\f\r] |
java.lang.Character 类(简单的 java 字符类型) | |
| 等同于 java.lang.Character.isLowerCase() |
| 相当于 java.lang.Character.isUpperCase() |
| 等同于 java.lang.Character.isWhitespace() |
| 相当于 java.lang.Character.isMirrored() |
Unicode 块和类别的类 | |
| 希腊字符块中的字符(简单块) |
| 大写字母(简单类别) |
| 一个货币符号 |
| 希腊字母块中除一个字符外的任何字符(取反) |
| 除大写字母以外的任何字母(减法) |
边界匹配符 | |
| 一行的开头 |
| 一行的末尾 |
| 一个词边界 |
| 非词边界 |
| 输入的开始 |
| 上一次匹配的末尾 |
| 输入结束,但对于最终终止符(如果有) |
| 输入结束 |
贪婪量词 | |
| X,一次或完全没有 |
| X,零次或多次 |
| X, 一次或多次 |
| X,正好 n 次 |
| X,至少 n 次 |
| X,至少 n 次但不超过 m 次 |
不情愿量词 | |
| X,一次或完全没有 |
| X,零次或多次 |
| X, 一次或多次 |
| X,正好 n 次 |
| X,至少 n 次 |
| X,至少 n 次但不超过 m 次 |
所有格量词 | |
| X,一次或完全没有 |
| X,零次或多次 |
| X, 一次或多次 |
| X,正好 n 次 |
| X,至少 n 次 |
| X,至少 n 次但不超过 m 次 |
逻辑运算符 | |
| X 后跟 Y |
| X 或 Y |
| 作为捕获组的 X |
反向引用 | |
| 第 n 个捕获组匹配的内容 |
引用 | |
| 仅此而已,但引用以下字符 |
| 除了 \E 之外,所有字符都被引用 |
| 没有什么,只是以 \Q 开始的引用结束 |
特殊结构(非捕获) | |
| X,作为非捕获组 |
| 只是打开或关闭匹配标志 |
| X,作为带有给定标志的非捕获组 |
| X,仅通过零宽度正向先行断言 |
| X,通过零宽度负向先行断言 |
| X,通过零宽正向先行断言 |
| 通过零宽负向后发断言的 X |
| X,作为一个独立的非捕获组 |