今回は、MySQLやPostgreSQLに記述したSQL文内にメモを書く「コメントアウト」の方法について説明します。
他の汎用的なプログラミング言語と同様、SQLでも実操作のコード以外のコメントを書き残すことが可能です。1回限りのSQL文であれば、特に不要かもしれませんが、SQLファイルとして保存する場合や、他のユーザーと共有するSQL文については、コメントアウトがあることで、何の処理を行っているのか、客観的にも分かりやすくなります。
この記事では、SQL文内でコメントアウトする方法と、実際のMySQLとPostgreSQLでコメントアウトした実画像も紹介します。
この章では、SQL文でコメントアウトする基本的な書き方を説明します。なお、当記事で実例として紹介するMySQLとPostgreSQLでは、コメントアウトの記述が多少異なります。
コメントアウトとは、汎用的なプログラミング言語であれば、ほぼすべての言語に含まれている機能です。
プログラミングコード内に、人間に理解しやすくさせるために書く説明文のことを「コメント」といい、「コメント」箇所のみプログラミング実行の対象外にすることを、コメントアウトといいます。
Excelのコメント機能をイメージすれば分かりやすいでしょう。
コメントアウトするには、それぞれの言語で定められたルールに基づいて書く必要があり、ルールが守られていないコメントは、プログラミングコードの一部として認識され、実行時にエラーが発生します。
コメントがなければ、コードだけで処理を解読する必要があるため、一般的にコードが長くなる場合や、他のユーザーに共有する場合には、適宜、コメントを書くことが望ましいとされています。
なお、コメントアウトには、1行のみコメントアウトさせる方法と、複数行に渡ってコメントアウトさせる方法があります。
コメントアウトの記述箇所には、特にルールはありません。
SQL文に続けて書いても、SQL文の上の行に書いても効果は同じです。可読性を意識して書くようにしましょう。
たとえば、下記のコメントアウトはどちらも有効です。
SELECT * FROM Worker; #これはコメントです(テーブルWorkerからすべての列を抽出)
#これはコメントです(テーブルWorkerからすべての列を抽出)
SELECT * FROM Worker;
まずは、MySQLとPostgreSQLで共通する単一行のコメントアウトの書き方です。※完全な共通ではありません。
「–」ハイフンを2つの後の文章がコメントアウトされる
※MySQLの場合は、ハイフン2つの後に半角スペースが必要
MySQL
SELECT * FROM Worker; -- これはコメントです(テーブルWorkerからすべての列を抽出)
PostgreSQL
SELECT * FROM Worker; --これはコメントです(テーブルWorkerからすべての列を抽出)
上記の例では分かりづらいのですが、MySQLのハイフン2つの後には半角スペースが含まれています。
MySQLでは、前述のハイフン2つと半角スペースの他にも、単一行をコメントアウトする書き方があります。これは、PostgreSQLでは使えません。
「#」シャープの後の文章がコメントアウトされる
MySQL
SELECT * FROM Worker; #これはコメントです(テーブルWorkerからすべての列を抽出)
コメントが長くなる場合には、1行で長く書くよりも、改行して複数行で書いたほうが可読性が高まる場合があります。下記は、MySQLとPostgreSQLで共通する複数行のコメントアウトの書き方です。
「/*」から「*/」までの間の文章がコメントアウトされる
MySQL・PostgreSQL
/*これはコメントです
テーブルWorkerからすべての列を
抽出するSQLです。適宜、修正して
構いません*/
SELECT * FROM Worker;
上記の「/*」から「*/」までの4行文がコメントアウトされます。行数に制限はありません。
実際のRDBMS、MySQLでコメントアウトをした実画像を紹介します。
MySQLの場合は、ハイフン2つの後に半角スペースが必須です。半角スペースがなければ、コメントアウトされずエラーが発生します。
実際のRDBMS、PostgreSQLでコメントアウトをした実画像を紹介します。
今回は、MySQLとPostgreSQLでコメントアウトする書き方を記事にしました。
SQLでは、汎用的なプログラミング言語ほどコメントアウトを使わないと思いますが、SQLの可読性を高めたり、共有しやすくなるひとつの方法のため、使い方は覚えておきましょう。