PyCharm 2024.1 ヘルプ

スキーマ

PyCharm は、表示対象として選択したスキーマを表示します。これは、スキーマが多数ある場合に便利です。また、この方法を使用すると、イントロスペクションするスキーマを定義できます。イントロスペクション中、PyCharm はデータベースからメタデータをロードし、後でこのデータを使用します。

スキーマ (Schema) は、データベースツールウィンドウにあります。他のノードおよびオブジェクトアイコンのリファレンスについては、データベースツールウィンドウトピックのデータソースとその要素の章を参照してください。

Schemas in Database

スキーマの作成

  1. データベースツールウィンドウ ( 表示 | ツールウィンドウ | データベース ) で、データベースまたはスキーマのノードまでデータソースツリーを展開します。

  2. データソース、データベース、スキーマノードを右クリックし、新規 | スキーマを選択します。

  3. 開いた作成ダイアログで、名前フィールドにスキーマの名前を入力します。

  4. プレビューペインでは、生成された SQL コードを表示および変更できます。

  5. スキーマを追加するには、OK をクリックします。

the Create schema dialog

デフォルトのスキーマを選択

  • ツールバーの右上にあるリストを使用して、デフォルトのスキーマまたはデータベースを選択できます。デフォルトのスキーマを選択する場合、ステートメントでそのスキーマまたはデータベースの名前を省略することができます。

    <スキーマ> リストをクリックして、必要なスキーマを選択します。

    Select the default schema or database

接続設定でデフォルトのスキーマを設定する

  1. データソースのプロパティを開きます。次のいずれかのオプションを使用して、データソースのプロパティを開くことができます。

    • データベースツールウィンドウ ( 表示 | ツールウィンドウ | データベース ) で、データソースのプロパティアイコン The Data Source Properties icon をクリックします。

    • Shift+Enter を押します。

  2. 変更するデータソースを選択します。データベースフィールドの一般タブで、デフォルトとして使用するスキーマの名前を入力します。

    Select the default schema or database

表示スキーマ

スキーマの表示と非表示

  • データベースツールウィンドウ ( 表示 | ツールウィンドウ | データベース ) で、データソースを右クリックしてツール | 表示対象スキーマの管理に移動します。表示または非表示にするスキーマのチェックボックスをオンまたはオフにします。Enter を押します。

  • データソース名の近くにある N/M リンクをクリックします。データベースとスキーマの選択ウィンドウで、表示または非表示にするスキーマのチェックボックスをオンまたはオフにします。Enter を押します。

    Show and hide schemas and databases

パターンベースのフィルターを使用する

正規表現パターンに一致する名前を持つすべてのスキーマを表示してイントロスペクトするには、次の手順を実行します。

  1. データベースツールウィンドウ ( 表示 | ツールウィンドウ | データベース ) で、データソース名の近くにある N/M リンクをクリックします。

  2. データベースとスキーマセレクターで、すべてのスキーマの近くにあるパターンの追加ボタンをクリックします。

    Pattern-based schema filter
  3. 新しいフィルタリングノードで、正規表現を定義します。構文については、入力フィールドの近くにあるスキーマの正規表現をクリックします。構文の詳細については、正規表現構造の概要を参照してください。

    セレクターでフィルターを適用するには、Enter を押します。

    Regular expressions in pattern-based schema filter
  4. Enter を押すと、データベースツールウィンドウにフィルターが適用されます。

    フィルター付きのフィルター処理ノードは、別のフィルター処理ノードを含む任意のノードに追加できます。

すべてのスキーマとデータベースを表示する

  • データベースツールウィンドウ ( 表示 | ツールウィンドウ | データベース ) に使用可能なすべてのスキーマを表示するには、オプションメニューを表示ボタンをクリックし、すべての名前空間オプションを選択します。

    • 有効

      Show All Namespaces is enabled
    • 無効

      Show All Namespaces is disabled

2 つのスキーマを比較する

ダイアログコントロールの詳細については、「移行の制御ダイアログ」を参照してください。

  1. 2 つのスキーマを選択してください。

  2. 選択を右クリックして、ツール | 構成の比較に移動します。または、Ctrl+D を押します。

    Compare two schemas

PostgreSQL と Redshift のスキーマ検索パスを設定する

PostgreSQL の search_path 環境変数は、スキーマが検索される順序を指定します。例: search_path の値を z,a,public に設定すると、PostgreSQL は z スキーマ内の値を探します。z スキーマに何も見つからなかった場合、PostgreSQL は a スキーマ内の値を探します。

PostgreSQL および Amazon Redshift では、別の検索パスを指定しない限り、デフォルトの検索パス(データベースに設定されているパス)が使用されます。

  1. <セッション> リストをクリックし、データベーススキーマのリストに移動します(矢印アイコン the Arrow icon を使用するか、右矢印キーを押します)。

  2. 検索パスに追加したいスキーマを選択します。

    検索パスを形成するには、以下のアクションを使用できます。

    • ハイライトされたスキーマを検索パスに追加し、検索パスからスキーマを削除するには、Space を押します。

    • 検索パス内のスキーマを並べ替えるには、Alt+UpAlt+Down を押します。

  3. 変更を適用するには、OK をクリックします。

    Control the search path for PostgreSQL and Redshift

IDE の再起動の間に PostgreSQL と Redshift の検索パスを保存する

  1. データベースツールウィンドウ ( 表示 | ツールウィンドウ | データベース ) で、PostgreSQL または Amazon Redshift データソースを右クリックし、Properties Shift+Enter を選択します。

  2. オプションタブをクリックします。

  3. スキーマの切り替えリストから、自動を選択します。

  4. OK をクリックします。

    Save a search path between IDE restarts

スキーマ情報を強制的にリフレッシュする

強制リフレッシュアクションは、データソース情報をキャッシュから消去し、最初からロードし直します。

  • データベースツールウィンドウ ( 表示 | ツールウィンドウ | データベース ) で、データソースを右クリックし、診断 | 強制リフレッシュを選択します。

システムカタログから事前にイントロスペクトされたオブジェクト

イントロスペクションは、データソースをインスペクションする方法です。イントロスペクションを実行すると、データソース内の構造情報がインスペクションされ、テーブル、列、関数、その他の要素とその属性が検出されます。

システムカタログは、リレーショナルデータベース管理システム(DBMS)が、テーブルと列、組み込み関数、その他のスキーマオブジェクトに関する情報を格納する場所です。IDE は、これらのオブジェクトをコード補完およびその他のコーディング支援操作に使用します。

システムスキーマには、スキーマ選択ダイアログに稲妻アイコン (Enable or disable the usage of pre-introspected objects) が表示されます。これらのスキーマを選択しない場合、PyCharm はそれらのスキーマをイントロスペクトせず、データベースツールウィンドウに表示しません。ただし、スキーマオブジェクトに関する情報はコーディング支援に使用されます。PyCharm は以前にイントロスペクトされたスキーマオブジェクトに関する内部データ (プレイントロスペクトデータ) を使用するため、これが可能です。PyCharm で事前イントロスペクトされたデータの使用を有効にするには、Shift+Enter を押してデータソース設定を開き、オプションタブをクリックして、事前にイントロスペクションされたオブジェクトをイントロスペクションされていないシステムカタログに使用するを選択します。

異なる DBMS のシステムカタログの例

  • PostgreSQL : pg_catalog、information_schema

  • Microsoft SQL Server : INFORMATION_SCHEMA

  • Oracle: SYS、SYSTEM

  • MySQL : information_schema

  • IBM Db2 LUW : SYSCAT、SYSFUN、SYSIBM、SYSIBMADM、SYSPROC、SYSPUBLIC、SYSSTAT、SYSTOOLS

データソースの Introspect システムカタログ

デフォルトでは、PyCharm はシステムカタログに事前イントロスペクトされたオブジェクトを使用します。

  1. データベースツールウィンドウ ( 表示 | ツールウィンドウ | データベース ) で、データソースを右クリックし、プロパティ Ctrl+Alt+S を選択します。

  2. データソースおよびドライバーダイアログで、オプションタブをクリックします。

  3. 事前にイントロスペクションされたオブジェクトをイントロスペクションされていないシステムカタログに使用するチェックボックスをクリアします。

  4. スキーム選択ウィンドウで、イントロスペクトするシステムカタログを選択します。

    Introspect system catalogs for a data source

選択したシステムカタログに事前にイントロスペクトされたデータを使用する

データソースでそのようなオブジェクトの使用を無効にしても、システムカタログに事前にイントロスペクトされたオブジェクトを使用できます。

  1. データソース設定のオプションタブの事前にイントロスペクションされたオブジェクトをイントロスペクションされていないシステムカタログに使用するチェックボックスをオフにします。

  2. スキーム選択ウィンドウを開き、システムカタログのチェックボックスをオフにします。

  3. システムカタログエントリをクリックします。

  4. ウィンドウの右上隅にある稲妻アイコン Enable or disable the usage of pre-introspected objects をクリックします。

スキーマのダイアグラムを生成する

  • データベースツールウィンドウ ( 表示 | ツールウィンドウ | データベース ) でスキーマを右クリックし、ダイアグラム | ダイアグラムの表示を選択します。

Generate a diagram for a database object

正規表現構造の概要

詳細については、Java 正規表現の完全な構文の説明(英語)および Java での正規表現の使用(英語)を参照してください。

構築する

一致

文字

x

文字 x

\\

バックスラッシュ文字

\0n

8 進数値 0n の文字 (0 <= n <= 7)

\0nn

8 進数値 0nn の文字 (0 <= n <= 7)

\0mnn

8 進数値 0mnn の文字 (0 <= m <= 3、0 <= n <= 7)

\xhh

16 進数値 0xhh の文字

\uhhhh

16 進数値 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: [ あ - ど - ぷ ] (union)

[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{ 小文字 }\p{ 大文字 }]

\p{Digit}

小数点: [0-9]

\p{Alnum}

英数字: [\p{Alpha}\p{Digit}]

\p{Punct}

句読点: !"#$%&'()*+,-./:;=>?@[\]^_`{|}~ のいずれか

\p{Graph}

目に見える文字: [\p{Alnum}\p{Punct}]

\p{Print}

印刷可能な文字: [\p{ グラフ }\x20]

\p{Blank}

スペースまたはタブ: [ \t]

\p{Cntrl}

制御文字: [\x00-\x1F\x7F]

\p{XDigit}

16 進数: [0-9a-fA-F]

\p{Space}

空白文字: [ \t\n\x0B\f\r]

java.lang. 文字クラス (単純な 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}

ギリシャ文字ブロックの文字 (シンプルブロック)

\p{Lu}

大文字 (シンプルなカテゴリ)

\p{Sc}

通貨記号

\P{InGreek}

ギリシャ文字ブロック内の文字を除く任意の文字 (否定)

[\p{L}&&[^\p{Lu}]]

大文字以外の任意の文字 (減算)

境界マッチャー

^

行の始まり

$

行の終わり

\b

単語の境界

\B

非単語境界

\A

入力の始まり

\G

前回の試合終了

\Z

最後のターミネータ(ある場合)を除いた入力の終わり

\z

入力の終了

貪欲な量指定子

X?

X、1 回またはまったくない

X*

X、0 回以上

X+

X、1 回以上

X{n}

X、ちょうど n 回

X{n,}

X、少なくとも n 回

X{n,m}

X、少なくとも n 回、最大 m 回

消極的な数量詞

X??

X、1 回またはまったくない

X*?

X、0 回以上

X+?

X、1 回以上

X{n}?

X、ちょうど n 回

X{n,}?

X、少なくとも n 回

X{n,m}?

X、少なくとも n 回、最大 m 回

所有格量指定子

X?+

X、1 回またはまったくない

X*+

X、0 回以上

X++

X、1 回以上

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 が始めた引用は終了

特別な構成 (non-capturing)

(?:X)

X、非捕捉グループとして

(?idmsux-idmsux)

何もしないが、マッチフラグをオンにする - off

(?idmsux-idmsux:X)

X、指定されたフラグがオンの非キャプチャーグループとして - off

(?=X)

X、ゼロ幅の正の先読み経由

(?!X)

X、ゼロ幅の負の先読み経由

(?<=X)

X、ゼロ幅の正のルックビハインド経由

(?<!X)

X、ゼロ幅の負の後方参照経由

(?>X)

X は独立した非捕捉グループとして

関連ページ:

データベース管理機能の用語集

データベースツールと SQL プラグインを有効にするこの機能は、PyCharm にバンドルされており、デフォルトで有効になっているデータベースツールと SQL プラグインに依存しています。関連する機能が利用できない場合は、プラグインを無効にしていないことを確認してください。を押して設定を開き、を選択します。インストール済みタブを開き、データベースツールおよび SQL プラグインを見つけて、プラグイン名の横にあるチェックボックスを選択します。データベースへの接続データベースに接続するには、PyCha...

データベースツールウィンドウ

データベースツールと SQL プラグインを有効にするこの機能は、PyCharm にバンドルされており、デフォルトで有効になっているデータベースツールと SQL プラグインに依存しています。関連する機能が利用できない場合は、プラグインを無効にしていないことを確認してください。を押して設定を開き、を選択します。インストール済みタブを開き、データベースツールおよび SQL プラグインを見つけて、プラグイン名の横にあるチェックボックスを選択します。概要:データベースツールウィンドウ (表示 | ツールウ...

スキーマの比較と移行

データベースツールと SQL プラグインを有効にするこの機能は、PyCharm にバンドルされており、デフォルトで有効になっているデータベースツールと SQL プラグインに依存しています。関連する機能が利用できない場合は、プラグインを無効にしていないことを確認してください。を押して設定を開き、を選択します。インストール済みタブを開き、データベースツールおよび SQL プラグインを見つけて、プラグイン名の横にあるチェックボックスを選択します。PyCharm では、同じ型の 2 つのデータベースオブジ...

データベース

PyCharm は、表示対象として選択したデータベースを表示します。これは、データベースが多数ある場合に便利です。また、この方法を使用すると、イントロスペクションするデータベースを定義できます。イントロスペクション中、PyCharm はデータベースからメタデータをロードし、後でこのデータを使用します。データベース () は、データベースツールウィンドウにあります。他のノードとオブジェクトアイコンのリファレンスについては、データベースツールウィンドウトピックのデータソースとその要素の章を参照してく...

テーブル

データベーステーブルは、データを行と列に整理する構造です。表内のデータは、縦の列と横の行が交差するセルに格納されます。表には指定された数の列がありますが、行は任意の数にすることができます。PyCharm を使用すると、テーブルを使用してデータ操作およびデータ定義操作を実行できます。PyCharm では、データエディターでテーブルを操作できます。データベースツールウィンドウ (表示 | ツールウィンドウ | データベース) でテーブルをダブルクリックすると、テーブルがデータエディターのテーブル表示モ...