PostgreSQL 命名規則
他の開発者がデータベースとやり取りして、データベース コンポーネントを簡単に読んで理解できるようにするために、名前付けは非常に重要です。 このチュートリアルでは、データベース
、テーブル
、シーケンス
、主キー
、制約
、およびインデックス
に名前を付けるために使用できる命名規則について説明します。
PostgreSQL 命名規則
PostgreSQL のドキュメント によると、命名規則について定義された標準はありませんが、識別子の命名規則に精通している限り、適切と思われる命名方法を使用できます。
次のコマンドを使用して、PostgreSQL サーバーにログインします。
david@david-HP-ProBook-6470b:~$ psql -U postgres
命名規則のテストに使用するデータベースを作成します。
postgres=# create database NAMING_CONVENTION_DB;
CREATE DATABASE
データベースの名前に大文字を使用しましたが、データベース名はデフォルトで小文字に変換されることに注意してください。 これを確認するには、\l
コマンドを使用して、PostgreSQL サーバー内のデータベースを一覧表示します。
postgres=# \l
出力:
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
----------------------+----------+----------+-------------+-------------+-----------------------
naming_convention_db | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
postgres | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
template0 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
(4 rows)
返されたテーブルには、PostgreSQL サーバーで作成されたさまざまなデータベースとそのユーザーが表示されます。 作成したばかりのデータベースは naming_convention_db
という名前です。
次のコマンドを使用して naming_convention_db
データベースに接続します。これにより、クエリが適切なデータベースで実行されるようになります。
postgres=# \c naming_convention_db;
You are now connected to database "naming_convention_db" as user "postgres".
UPPER_CASE
命名規則は、開発者が keywords
に名前を付けるために使用する最も一般的な方法です。
naming_convention_db=# CREATE TABLE employee(
naming_convention_db(# id SERIAL,
naming_convention_db(# first_name VARCHAR(30),
naming_convention_db(# last_name VARCHAR(30),
naming_convention_db(# email VARCHAR(50),
naming_convention_db(# PRIMARY KEY(id));
CREATE TABLE
上記の例では、次のキーワードがあります: CREATE
、TABLE
、SERIAL
、VARCHAR
、および PRIMARY KEY
。 これらの単語は、データベース管理システムの特定の機能のキーワードを表すため、大文字で始まることに注意してください。
lower_case_with_underscore
命名規則は、開発者が identifiers
に名前を付けるために使用する最も一般的な方法です。
naming_convention_db=# CREATE SEQUENCE employee_sequence
naming_convention_db-# INCREMENT 5
naming_convention_db-# START 10;
CREATE SEQUENCE
上記の例では、小文字とアンダースコアを使用して employee_underscore
で識別される SEQUENCE
の識別子を作成しました。 識別子で大文字と小文字を区別
したい場合は、識別子に名前を付けるときに二重引用符を使用できます。
naming_convention_db=# CREATE TABLE "EMPLOYEE"(
naming_convention_db(# first_name VARCHAR(30),
naming_convention_db(# last_name VARCHAR(30),
naming_convention_db(# email VARCHAR(50),
naming_convention_db(# id SERIAL,
naming_convention_db(# PRIMARY KEY(id));
CREATE TABLE
上記の例では、EMPLOYEE
という名前の大文字の識別子を使用して、データベースに別の従業員テーブルを作成します。
以下のコマンドを使用して、データベース内のすべてのテーブルを表示します。
naming_convention_db=# \dt
出力:
List of relations
Schema | Name | Type | Owner
--------+----------+-------+----------
public | EMPLOYEE | table | postgres
public | employee | table | postgres
(2 rows)
識別子を引用しない場合、デフォルトで小文字で保存されます。 したがって、Employee
、EMPLOYEE
、および EmPlOyEe
という名前は同じです。
これは、識別子が引用符で囲まれていない場合、大文字と小文字が区別されないことを意味します。 また、構文エラーがないように、キーワードと同じ名前の引用符付き識別子を使用しないようにする必要があります。
たとえば、次のデータ定義言語は、クエリに異常をもたらす可能性があるため、避ける必要があります。
naming_convention_db=# CREATE SEQUENCE "serial"
naming_convention_db-# INCREMENT 5
naming_convention_db-# START 10;
SERIAL
は、データベース内の別の機能を解釈するキーワードであり、引用符で囲まれた識別子を使用して別のシリアル プロパティを作成すると、潜在的なエラーが発生する可能性があります。
David is a back end developer with a major in computer science. He loves to solve problems using technology, learning new things, and making new friends. David is currently a technical writer who enjoys making hard concepts easier for other developers to understand and his work has been published on multiple sites.
LinkedIn GitHub