スキーマ Postgres での CREATE TABLE

Sukima Postgres Deno Create Table



PostgreSQL は、最も人気のあるオブジェクト リレーショナル データベース システムの 1 つです。複雑なデータ ワークロードを処理するための追加機能を使用して SQL 言語を拡張する、無料のオープン ソース ソフトウェアです。信頼性が高く安全な、さまざまなデータタイプを処理できます。 PostgreSQL の機能の詳細をご覧ください。

このガイドでは、PostgreSQL でスキーマにテーブルを作成する方法について詳しく学びます。







PostgreSQL のスキーマ

PostgreSQL データベースには、1 つ以上の名前付きスキーマが含まれている場合があり、各スキ​​ーマにはテーブルが含まれています。



複数のスキーマ間で競合することなく、同じオブジェクト名を割り当てることができます。たとえば、次のスキーマ/テーブル ツリーは有効です。



  • schema_a
    • 表1
    • テーブル_2
  • schema_b
    • 表1
    • テーブル_2

スキーマは、オペレーティング システム レベルのディレクトリのようなものと考えることができます。違いは、ネストされたスキーマが存在できないことです。スキーマの詳細については、こちらをご覧ください PostgreSQL のドキュメント .





スキーマを実装する理由は複数考えられます。

  • 互いに競合することなく同じデータベースを使用する複数のユーザー。
  • 論理グループへのデータベースの編成と管理の改善。
  • サードパーティ アプリは、既存のスキーマや他のオブジェクトと衝突することなく、独自のスキーマを作成できます。

PostgreSQL のテーブル

リレーショナル データベースは、複数の関連するテーブルで構成され、それぞれが行と列で構成されます。 PostgreSQL には、さまざまなシステム情報を含むいくつかの組み込みテーブルが付属しています。ただし、ユーザー定義のデータベースとスキーマの下に新しいテーブルを作成することもできます。



前提条件:

このガイドで説明されている手順を実行するには、次のコンポーネントが必要です。

  • 適切に構成された Linux システム。詳しくはこちら VirtualBoxにUbuntuをインストールする .
  • PostgreSQL の適切なインストール。チェックアウト Ubuntu に PostgreSQL をインストールする .
  • へのアクセス PostgreSQL ユーザー と USAGEパーミッション データベースに。

このガイドでは、 ポストグル PostgreSQL ですべてのアクションを実行します。

スキーマでのテーブルの作成

デモ データベースの作成

前述のように、スキーマはデータベースの下に存在します。デモンストレーションの目的で、ダミー データベースを作成し、既存のデータベースの中断を回避します。

次のように PostgreSQL シェルにアクセスします。 ポストグル :

$ sudo -i -u postgres psql

新しいデータベースを作成する デモデータベース:

$ CREATE DATABASE demo_db;

データベースが正常に作成されたかどうかを確認します。

$ \l

最後に、新しく作成したデータベースに接続します。

$ \connect demo_db;

公開スキーマ

PostgreSQL の新しいデータベースには、デフォルトのスキーマが付属しています – 公衆 .スキーマ名を指定せずにオブジェクトを作成しようとすると、デフォルトでパブリック スキーマが選択されます。

次のコマンドは、PostgreSQL データベースで使用可能なすべてのスキーマを出力します。

$ \dn

または、次の SQL クエリを使用することもできます。

$ SELECT * FROM pg_catalog.pg_namespace;

新しいスキーマの作成

特定のデータベースの下に新しいスキーマを作成するためのコマンド構造は次のとおりです。

$ CREATE SCHEMA <スキーマ名>;

ルールに従って、新しいスキーマ demo_schema を作成しましょう。

$ CREATE SCHEMA demo_schema;

検証のためにスキーマ リストを確認します。

$ \dn

スキーマでのテーブルの作成

ターゲット スキーマが作成されたので、テーブルを設定できます。

テーブルを作成するための構文は次のとおりです。

CREATE TABLE <スキーマ>.<テーブル名> (

...
)

ここ:

  • スキーマ : このフィールドは、テーブルが作成されるスキーマの名前を指定します。値が指定されていない場合、テーブルは 公衆 スキーマ。

デモ用に、簡単なテーブルを作成します。

CREATE TABLE demo_schema.demo_table (

名前CHAR(64)、

ID INT NOT NULL

);

ここ:

  • フィールド 名前 64 文字の文字列を格納するように指定されています。
  • フィールド ID 整数値が含まれます。用語 ' ヌルではない 」は、 ID 空または null にすることはできません。

次のクエリを使用して、テーブルの存在を確認できます。

$ SELECT * FROM demo_schema.demo_table;

テーブルへのデータの挿入

テーブルを配置したら、いくつかの値を挿入できます。

INSERT INTO demo_schema.demo_table (名前、ID)



('PQR', 45),

('IJK', 99)

;

テーブルの内容を確認します。

$ SELECT * FROM demo_schema.demo_table;

スキーマ管理

スキーマの権限

スキーマ権限の助けを借りて、特定のスキーマに対してどのロールがどのアクションを実行できるかを管理できます。可能なすべての特権のうち、スキーマのみがサポートします 作成と使用。

特定のロールのスキーマ権限を更新するためのコマンド構造は次のとおりです。

$ GRANT ON SCHEMA TO ;

特定のロールのスキーマ権限を取り消すためのコマンド構造は次のとおりです。

$ REVOKE ON SCHEMA TO ;

次のコマンドを使用して変更を確認します。

$ \dn+

スキーマ プロパティの変更

の助けを借りて スキーマの変更 ステートメントに従って、スキーマのさまざまなプロパティを変更できます。例: 所有権、スキーマ名など。

スキーマ名を変更するには、次のクエリを使用します。

$ ALTER SCHEMA RENAME TO ;

スキーマの所有権を変更するには、次のクエリを使用します。

$ ALTER SCHEMA OWNER TO ;

所有権を変更するには、現在のユーザーが 作成 スキーマへのアクセス許可。

スキーマの削除

スキーマが不要になった場合は、 落とす クエリ:

$ DROP SCHEMA

スキーマにオブジェクトが含まれている場合は、 カスケード 修飾子:

$ DROP SCHEMA CASCADE;

テーブル管理

テーブルの権限

スキーマと同様に、各テーブルにもパーミッション管理が付属しており、ロールがテーブルで実行できるアクションを定義します。

テーブルの権限を確認するには、psql で次のコマンドを使用します。

$ \dp <テーブル名>

テーブル プロパティの変更

の助けを借りて 他の机 ステートメントを使用すると、既存のテーブルのさまざまな側面を変更できます。

たとえば、列を削除する場合、クエリは次のようになります。

$ ALTER TABLE <テーブル名> DROP COLUMN <列>;

新しい列を追加するには、次のクエリを使用できます。

$ ALTER TABLE ADD COLUMN ;

特定の列の圧縮を設定することもできます。

$ ALTER COLUMN <列名> SET COMPRESSION <圧縮方法>;

テーブルの削除

スキーマからテーブルを削除するには、 ドロップテーブル クエリ:

$ DROP TABLE <テーブル名>;

スキーマとは異なり、 ドロップテーブル テーブルが空かどうかに関係なく、クエリはエラーを生成しません。

結論

このガイドでは、PostgreSQL のスキーマにテーブルを作成する方法を示しました。ダミー データベース内にダミー スキーマを作成し、スキーマ内にテーブルを作成しました。このガイドでは、スキーマとテーブルのさまざまなプロパティを管理する方法についても紹介しました。

データの整合性を向上させるために、 論理 PostgreSQL レプリケーション . PostgreSQL データベースを正常に保つために、次のように構成できます。 自動バキューム 削除されたレコードによって残されたデッド タプルをクリーンアップします。

その他の PostgreSQL ガイドについては、 PostgreSQL サブカテゴリ .