はじめに
PostgreSQLは、リレーショナルをサポートするオープンソースの高度なデータベース管理システムです。 (SQL)および非リレーショナル (JSON)クエリ。
PostgreSQLでは、 ACID を維持しながら、主に拡張性とSQLコンプライアンスに重点が置かれています。 トランザクションのプロパティ(Atomicity、Consistency、Isolation、Durability)。
このチュートリアルでは、3つの異なる方法を使用してPostgreSQLでデータベースを作成する方法を学習します。
前提条件
- PostgreSQLのインストールとセットアップ
- 管理者権限
pgAdminを介してPostgreSQLでデータベースを作成する
pgAdminを使用してデータベースを作成するには、次の手順に従います。
ステップ1 :pgAdminを開き、パスワードを入力してデータベースサーバーに接続します。
ステップ2 :ブラウザセクションで、サーバーを展開します 次にPostgreSQL アイテム。 データベースを右クリックします アイテム。 作成をクリックします およびデータベース…
ステップ3 :データベース名を指定する必要がある場所に新しいウィンドウがポップアップし、必要に応じてコメントを追加して、[保存]をクリックします。 。
データベースはデータベースに表示されます オブジェクトツリー。
pgAdminウィンドウの右側のセクションには、データベース統計、データベースの作成に使用されるSQLコマンド、依存関係などを表示するタブが含まれています。
CREATEDATABASEを介してPostgreSQLでデータベースを作成する
PostrgreSQLデータベースを作成する別の方法は、 CREATE DATABASEを使用することです。 コマンド。
次の手順に従ってデータベースを作成します。
ステップ1 : SQLシェル(psql)を開きます アプリ。
ステップ2 : ENTERを押してDBサーバーに接続します 四回。求められたら、マスターパスワードを入力します。パスワードを設定していない場合は、 ENTERを押します。 もう一度接続します。
ステップ3 :次の構文を使用して、新しいデータベースを作成します。
CREATE DATABASE [database_name]
[database_name]
の代わりに 、データベースの名前を入力します。既存のデータベース名を使用するとエラーが発生するため、必ず一意の名前を入力してください。
例:
パラメータを指定せずにデータベースを作成すると、デフォルトのテンプレートデータベースからパラメータが取得されます。次のセクションで使用可能なパラメータを参照してください。
ステップ4 :次のコマンドを使用して、PostgreSQLのすべてのデータベースを一覧表示します。
\l
出力には、使用可能なデータベースとその特性のリストが表示されます。
CREATEDATABASEパラメーター
データベースを作成するために使用できるパラメーターは次のとおりです。
-
[OWNER =role_name]
所有者
パラメータは、データベース所有者の役割を割り当てます。 OWNER
を省略します パラメータは、データベース所有者が CREATE DATABASE
を実行するために使用されるロールであることを意味します ステートメント。
-
[TEMPLATE=テンプレート]
TEMPLATE
パラメータを使用すると、新しいデータベースの作成元となるテンプレートデータベースを指定できます。 TEMPLATE
を省略します パラメータセットtemplate1 デフォルトのテンプレートデータベースとして。
-
[ENCODING =encoding]
エンコード
パラメータは、新しいデータベースの文字セットエンコーディングを決定します。
-
[LC_COLLATE =collate]
LC_COLLATE
パラメータは、新しいデータベースの照合順序を指定します。このパラメータは、 ORDER BY
の文字列の並べ替え順序を制御します 句。 特殊文字を含むロケールを使用すると、効果が表示されます 。
LC_COLLATE
を省略します パラメータは、テンプレートデータベースから設定を取得します。
-
[LC_CTYPE =ctype]
LC_CTYPE
パラメータは、新しいデータベースで使用される文字分類を指定します。文字の分類には、小文字、大文字、数字が含まれます。 LC_CTYPE
を省略します パラメータは、テンプレートデータベースからデフォルト設定を取得します。
-
[TABLESPACE =tablespace_name]
TABLESPACE
を使用します 新しいデータベースのテーブルスペース名を指定するパラメーター。 TABLESPACE
を省略します パラメータは、テンプレートデータベースのテーブルスペース名を取ります。
[ALLOW_CONNECTIONS=true | false]
ALLOW_CONNECTIONS
パラメータはTRUE
にすることができます またはFALSE
。値をFALSE
として指定する データベースに接続できなくなります。
-
[CONNECTION LIMIT =max_concurrent_connections]
接続制限
パラメータを使用すると、PostgreSQLデータベースへの最大同時接続数を設定できます。デフォルト値は-1
、これは無制限の接続を意味します。
[IS_TEMPLATE=true | false]
IS_TEMPLATE
を設定します TRUE
へのパラメータ またはFALSE
。 IS_TEMPLATE
の設定 TRUE
へ CREATEDB</code>を持つすべてのユーザーを許可します
データベースのクローンを作成する特権。それ以外の場合は、スーパーユーザーまたはデータベース所有者のみがデータベースのクローンを作成できます。
パラメータを使用してデータベースを作成するには、キーワード WITH
を追加します CREATE DATABASE
の後 ステートメントを作成し、必要なパラメーターをリストします。
例:
この例は、UTF-8文字エンコードを使用し、最大200の同時接続をサポートするように新しいデータベースを設定する方法を示しています。
createdbコマンドを使用してPostgreSQLでデータベースを作成する
createdb
コマンドは、PostgreSQLでデータベースを作成するための3番目の方法です。 createdb
の唯一の違い およびCREATE DATABASE
コマンドは、ユーザーが createdb
を実行することです 直接コマンドラインから 一度にデータベースにコメントを追加します。
createdb
を使用してデータベースを作成するには コマンドを実行するには、次の構文を使用します。
createdb [argument] [database_name [comment]]
パラメータについては、次のセクションで説明します。
createdbパラメータ
createdb
構文パラメータは次のとおりです。
パラメータ | 説明 |
---|---|
[argument] | createdb のコマンドライン引数 受け入れます。次のセクションで説明します。 |
[database_name] | database_name の代わりにデータベース名を設定します パラメータ。 |
[コメント] | 新しいデータベースに関連付けるオプションのコメント。 |
createdbコマンドライン引数
利用可能なcreatedb
引数は次のとおりです:
引数 | 説明 |
---|---|
-D | 新しいデータベースのテーブルスペース名を指定します。 |
-e | createdb のコマンドを表示します サーバーに送信します。 |
-E | データベースで使用する文字エンコードを指定します。 |
-l </ code> | データベースで使用するロケールを指定します。 |
-T | 新しいデータベースのテンプレートとして使用するデータベースを指定します。 |
-ヘルプ | createdb に関するヘルプページを表示する コマンドライン引数。 |
-h | サーバーを実行しているマシンのホスト名を表示します。 |
-p | サーバーが接続をリッスンするために使用するTCPポートまたはローカルUnixドメインソケットファイル拡張子を設定します。 |
-U | 接続に使用するユーザー名を指定します。 |
-w | createdb に指示します パスワードプロンプトを発行しないでください。 |
-W | createdb に指示します データベースに接続する前にパスワードプロンプトを発行します。 |
例:
ここでは、 mydatabaseというデータベースを作成しました デフォルトの管理ユーザーpostgresを使用する 。 フェニックスナップを使用しました データベースをテンプレートとして使用し、パスワードを要求しないようにプログラムに指示しました。
createdbコマンドの一般的なエラー
createdbを使用するときにユーザーが遭遇する可能性のある一般的なエラーがいくつかあります コマンド。
createdb
を参照してください 以下のエラーリスト:
エラー | 説明 |
---|---|
createdb コマンドが見つかりません。 | PostgreSQLが正しくインストールされていない場合に発生します。 createdb を実行します PostgreSQLのインストールパスから、または psql.exeを追加します PCの詳細設定のシステム変数セクションへのパス。 |
そのようなファイルやディレクトリはありません サーバーはローカルで実行され、受け入れていますか Unixドメインソケットでの接続...? | PostgreSQLサーバーが適切に起動されていないか、現在実行されていない場合に発生します。 |
致命的:役割"username"は存在しません。 | ユーザーがinitdb を実行すると発生します スーパーユーザー権限のないロールを使用します。 エラーを修正するには、 -superuser を使用して新しいPostgresユーザーを作成します オプションを選択するか、デフォルトの管理者ロールである postgresにログインします 。 |
データベースの作成に失敗しました:エラー:データベースを作成する権限が拒否されました。 | 必要な権限を持たないアカウントでデータベースを作成しようとすると表示されます。エラーを修正するには、問題のロールにスーパーユーザー権限を付与します。 |