前提条件:
このガイドで説明されている手順を実行するには、次のコンポーネントが必要です。
- 適切に構成された Linux システム。テストのために、考慮してください VirtualBox を使用して仮想 Ubuntu マシンをセットアップする .
- PostgreSQL をインストールして構成しました。詳しくはこちら Ubuntu に PostgreSQL をインストールする .
- へのアクセス sudo 権限を持つ非 root ユーザー .
PostgreSQL データベース
PostgreSQL 無料でオープン ソースの SQL 準拠のオブジェクト リレーショナル データベース システムです。リレーショナル (SQL) クエリと非リレーショナル (JSON) クエリの両方で機能します。についてもっと知る PostgreSQL の機能 .
PostgreSQL では、データ階層は次のようになります。
- 集まる
- データベース
- スキーマ
- テーブル (または関数などの他のオブジェクト)
PostgreSQL インスタンスは、複数のクライアント接続を受け入れることができます。クライアントは、接続要求でデータベース名を指定する必要があります。接続ごとに 1 つのデータベースのみが許可されます。ただし、クライアントはサーバーへの複数の接続を開き、1 つ以上のデータベースに同時に接続できます。
PostgreSQL でデータベースを作成する
1. サーバーへの接続を開く
新しいデータベースを作成するには、まず PostgreSQL サーバーに接続します。
$ 須藤 -私 -の ポストグル
$ psql
データベースの作成は制限された操作であることに注意してください。十分な権限を持つユーザーのみがアクションを実行できます。
2. 現在のデータベースの一覧表示
psql で次のクエリを実行して、サーバー上のデータベースのリストを出力します。
インストール中に、PostgreSQL は「postgres」であるサーバーの最初のデータベースを作成します。 2 つの追加データベースも作成されます。
- テンプレート1 : クラスタ内に新しいデータベースを作成するたびに、「template1」が複製されます。
- テンプレート0 : 「template1」の元のコンテンツの元のコピーとして機能します。
新しく作成されたすべてのデータベースの一部にする場合を除き、「template1」内にオブジェクトを作成しないでください。 「template1」が変更された場合、「template0」を複製して、サイトローカルの追加なしで新しいデータベースを作成できます。
3. 新しいデータベースの作成
新しいデータベースを作成するには、psql で次のクエリを実行します。
ここ:
- 現在の役割は、新しいデータベースの所有者として自動的に想定されます。
- 所有者には、所有者を別のロールに変更する権限があります。
アクションが成功した場合は、次のコマンドを使用してデータベースのリストを確認します。
$ \リスト
特権アカウントを使用すると、次のコマンドを使用して他のユーザーのデータベースを作成することもできます。
$ データベースの作成 < データベース名 > オーナー < 役割 > ;
Createdb コマンド
前の方法では、データベースを作成するために複数の手順を実行する必要がありました。
- psql を使用して PostgreSQL サーバーに接続します。
- クエリを実行して新しいデータベースを作成します。
プロセスを簡素化するために、PostgreSQL には createdb コマンドが付属しています。基本的に、これらのアクションのラッパーとして機能します。シェルから createdb コマンドを直接実行できます。
1. Createdb を使用したデータベースの作成
デフォルトのデータベース サーバーを使用してデータベースを作成するには、次のコマンドを使用します。
次のコマンドを使用してアクションを確認します。
$ psql -c '\リスト'
さまざまなオプションを使用して、createdb 操作を微調整することもできます。次の例を確認してください。
$ 作成したb -h < ホスト > -p < ポート > -T < レンプレート > -それは -- ユーザー名 = < ユーザー名 > - パスワード --メンテナンス-db = < 保守データベース名 > < データベース名 >ここ:
- -h : このパラメーターは、PostgreSQL サーバーの場所 (IP アドレスまたはドメイン名) を指定します。
- -p : サーバーに接続するポート。
- -T : 新しいデータベースを作成するときに使用するテンプレート。 template0、template1、またはその他のデータベースを指定できます。
- -それは : 同等のクエリをエコーします。
- –ユーザー名 : サーバーに接続するためのユーザー名。
- -パスワード : サーバーに接続する前に、createdb コマンドにパスワードの入力を求めるプロンプトを強制します。サーバーがパスワードを必要とする場合、createdb は自動的にパスワードの入力を求めるため、ほとんどの場合は必要ありません。ただし、それを理解するために接続試行を費やします。
- –メンテナンスデータベース : 新しいデータベースの作成時に接続するデータベース。指定しない場合、postgres がデフォルトで想定されます。 postgres が存在しない場合は、「template1」が想定されます。
それを実行に移す時が来ました。次の createdb コマンドを実行します。
$ 作成したb -h ローカルホスト -p 5432 -T テンプレート0 -それは -- ユーザー名 =postgres test_db
出力が示すように、これは次のクエリと同等です。
$ CREATE DATABASE test_db TEMPLATE template0;追加のデータベース管理
このセクションでは、他のデータベース管理操作を見てみましょう。
データベースの一覧表示
サーバーに格納されているデータベースを一覧表示するには、いくつかの方法があります。前のセクションですでに 1 つの方法を示しました。
$ \リストもう 1 つの方法は、「pg_database」システム カタログを調べることです。
$ pg_database からデータ名を選択します。
データベースの削除
データベースを削除するには、次のクエリを実行します。
$ データベースをドロップ < データベース名 > ;
createdb と同様に、PostgreSQL にもシェルから実行できる dropdb コマンドが付属しています。次の例を見てください。
$ ドロップデブ -h < ホスト > -p < ポート > -- ユーザー名 = < ユーザー名 > - パスワード -それは < データベース名 >
ここ:
- -h : 接続先の PostgreSQL サーバー。
- -p : 接続する PostgreSQL サーバーのポート。
- -それは : 同等のクエリをエコーします。
ユーザーには、データベースを削除するための十分な権限が必要であることに注意してください。
データベース所有権の変更
データベースの所有者は、データベースの削除など、データベースに対して任意のアクションを実行できます。デフォルトでは、データベースを作成したユーザーが所有者として割り当てられます。ただし、所有権を別のユーザーに再割り当てすることはできます。
データベースの所有者を変更するには、psql で次のクエリを実行します。
$ データベースの変更 < データベース名 > 所有者に < 新しい所有者 > ;
ただし、これによってデータベース内のオブジェクト (テーブルを含む) の所有権が変更されることはありません。そのような場合、別のクエリを使用する必要があります。ターゲット データベースに接続し、次のクエリを実行します。
$ 所有者の再割り当て < 古い所有者 > に < 新しい所有者 > ;このクエリには便利ですが、いくつかの注意事項があります。
- postgres (データベース) に接続すると、複数のデータベースの所有権を一度に変更できます。
- DB インスタンス全体が破損する可能性があるため、元の所有者が postgres の場合は、このクエリを使用しないでください。
おまけ: シェルからクエリを実行する
ここまでは、PostgreSQL コンソールからクエリを実行しました。スクリプトにいくつかのデータベース機能を組み込みたい場合はどうしますか? createdb および dropdb コマンドは、特定の操作のみを実行できます。
これを解決するために、psql をコンジットとして使用できます。標準の対話型シェルに加えて、psql はオンザフライでクエリを実行することもできます。
方法 1:
コマンド構造は次のとおりです。
$ psql -h < ホスト > -p < ポート > -の < ユーザー名 > -d < データベース > -c < クエリ >
ここ:
- -h : PostgreSQL サーバーのアドレス。
- -p : 接続するポート (デフォルト値は 5432)。
- -の : 接続するユーザー。
- -d : 接続するデータベース。
- -c : 実行するクエリ。
方法 2:
PostgreSQL には、接続 URI という別の興味深い機能があります。これは、すべての接続パラメーターをきちんとエンコードする賢い方法です。接続 URI の構造は次のとおりです。
$ postgresql: //< ユーザー名 > : < パスワード >@< ホスト > : < ポート >/< データベース名 >ここ:
- postgresql また ポストグル : PostgreSQL 接続 URI の一意のプロトコル。
接続 URI を使用してデータベースに接続するには、次の psql コマンドを使用します。
$ psql -d < connection_uri > -c < クエリ >
結論
PostgreSQL でデータベースを作成するさまざまな方法について学びました。 CREATE DATABASE クエリを使用してデータベースを作成する方法を示しました。また、createdb コマンドを使用したデータベースの作成も紹介しました。さらに、データベースの削除や所有者の変更など、その他の重要なデータベース管理アクションについても説明しました。
PostgreSQL についてもっと知りたいですか?チェックアウト PostgreSQL サブカテゴリ さまざまな機能に関する多数のガイドが含まれています。例えば: 機能 、 正規表現 、 テーブル などなど。