SQLのコメントアウトの使い方は?書き方や違いについて解説
thumb_sqlcommentout_01
SQLのコメントアウトの使い方は?書き方や違いについて解説
アンドエンジニア編集部
2024.04.19
この記事でわかること
SQLはRDBMSの特性に合わせて定義されており、文法上の違いがあります
コメント機能もそれぞれのRDBMSで定義されている構文に従います
標準SQLの用法を基本としながら、それぞれの違いを理解して使用するのがおすすめです

SQLのコメントアウトの使い方

img_sqlcommentout_01

SQLは、リレーショナルデータベースを用いてデータを操作したり定義したりする言語です。他のプログラミング言語と組み合わせて、DBMSを操作する必要があることからプログラミングAPIや言語が仕様として決められています。

ここでは、言語仕様に基づき使用されるコメント機能について解説していきます。

SQLとは?概要・できること・プログラミング言語との違いを解説
SQLの入門編:初心者から経験者まで役立つSQL情報を掲載!

そもそもコメントアウトとは

コメントアウトとは、プログラミングコードにおいて実行処理として解釈されない注釈などをコメントとして記述することです。それぞれのプログラミング言語においてコメント機能が実装されています。

コメント機能は、ソースコードの説明文などの注釈や、デバッグコードを埋め込んで無効化しておくなどの用途に用います。

SQLのコメントアウト

SQLは、テキストファイルとして編集してSQLファイルとして格納し使用する場合が多いでしょう。作成したSQLファイルは、スクリプトファイルとして使用しますが、操作方法を解説したい場合などはファイルに注釈を入れておくと便利です。

その際には、SQLのコメント機能の定義に基づいて、コメントアウトしておくと良いでしょう。

主要SQLのコメントアウトの書き方

img_sqlcommentout_02

SQLが使えるリレーショナルデータベースは、商用パッケージからオープンソースソフトウェアまで多岐に渡ります。また、SQLはRDBMSの特性に合わせて定義されていることから、文法上の違い(方言)があります。ここでは、主要なRDBMSについてSQLのコメント機能を解説します。

標準SQLのコメント機能

標準SQLは、「ISO/IEC 9075」で定義されているSQLの仕様です。1986年以降それまでバラバラだった各社の提供するSQLを統一標準として定義したものです。各社の提供するSQLは、この標準に準拠するものと独自に定義した部分がありますので、利用するDBMSの仕様の確認も必要になります。

標準SQLにおけるコメント機能は、次の2種類です。

・2重ハイフン ”--” の後にコメントを使う 2重ハイフン ”--” 以降のテキストはコメントとして解釈されます。これは行末まで有効です。言い換えると1行単位のコメントに使用し、複数行の場合はその都度行頭に2重ハイフン ”--” を入れます。

SELECT * FROM DATA; -- この部分がコメントです
SELECT * FROM DATA; -- この部分がコメントです

 

・C言語形式で ”/*” と ”*/” の間にコメントを入れる C言語形式では、 ”/*” と ”*/” の間にコメントを入れます。この場合は、行の区切りは意識せずに、単1行あるいは複数行で使用できます。

SELECT * FROM DATA; /* この部分がコメントです */
/*
 このように複数行でも使用できます
 このように複数行でも使用できます
 */

標準SQLでは、次のようにC言語形式コメントの入れ子にも対応します。

/*
 このように複数行でも使用できます
 /* この部分がコメントの入れ子です */
 このように複数行でも使用できます
 */

標準SQLとSQLの歴史!SQLの互換性と規格化の流れを解説

SQL Serverのコメント機能

Microsoft SQL Serverは、Microsoft Windowsと親和性が高いRDBMSで、T-SQLと標準SQLに対応します。コメント機能は、2重ハイフン ”--” 、C言語形式 ”/* */” に対応します。C言語形式のコメントの入れ子にも対応します。

またAnalysis ServicesではMDXクエリがあり、C++の二重スラッシュ ”//” 形式にも対応します。以下は、MDXクエリでのコメント機能の書き方です。

// クエリにこのようなコメントを追加できます

【参考】:SQL コメント (MDX 構文) 【参考】:SQL -- (コメント) (Transact-SQL) 【参考】:SQL スラッシュ アスタリスク (ブロック コメント) (Transact-SQL)

SQL Serverとは?使い方や構築方法をわかりやすく解説!

Oracleのコメント機能

Oracleは初めてリリースされた商用RDBMSで、数多くのプラットフォームをサポートします。コメント機能は、標準SQLと同じく2重ハイフン ”--” 、C言語形式 ”/* */” に対応します。ただしC言語形式のコメントの入れ子には対応しません。

PL/SQLでも同様の使い方を行います。SQL*Plusでは、次のようにREMARKコマンドで明示的にコメントを追加することもできます。

REMARK コメントです
SELECT * FROM DATA;

【参考】:Oracle Database: コメント 【参考】:Oracle Database: SQL*Plusでのスクリプトの使用

PostgreSQLのコメント機能

PostgreSQLは、標準SQL準拠を強みとするオープンソースのRDBMSです。コメント機能は、標準SQLと同じく2重ハイフン ”--” 、C言語形式 ”/* */” に対応します。標準SQLの仕様に従い、C言語形式のコメントの入れ子にも対応します。

【参考】:PostgreSQL Docs: Comments

PostgreSQL入門、複数のRDBMSを習得して更なる活躍を

MySQLのコメント機能

MySQLは、Linux、Apache、Perl・Python・PHPとの組み合わせに強みと実績を持つ、オープンソースのRDBMSです。コメント機能は、標準SQLと同じく2重ハイフン ”--” 、C言語形式 ”/* */” に対応します。C言語形式のコメントの入れ子には、対応しません。

2重ハイフンの後ろには半角スペースあるいはタブなどの制御文字が必要です。具体的には、次のような違いがあります。

SELECT * FROM DATA; -- 2重ハイフンの後ろに半角スペースがあるため、コメントです
SELECT * FROM DATA; --これは半角スペースで区切られていないためコメントとなりません

MySQLは独自性が高く、シェルスクリプト形式の”#”にも対応します。 ”#” は行末まで有効で、行ごとに指定する必要があります。

SELECT * FROM DATA; # この部分がコメントです

MySQLの特定のコードを実行するために、拡張コードを記述することもできます。MySQLで実行し、他のSQLでは解釈されないようにします。

SELECT /*! STRAIGHT_JOIN */ column_x from table_y;

【参考】:MySQL Docs: コメント 【参考】:MySQL Docs: コメントの先頭としての「--」

MySQL入門!世界で最も普及しているRDBMSを学んでみよう

Informixのコメント機能

IBMが提供するInformixでは、標準SQLと同じく2重ハイフン ”--” 、C言語形式 ”/* */” に対応します。ただしC言語形式のコメントの入れ子には対応しません。独自機能として、波括弧 ”{ }” で囲む形式もサポートします。

波括弧 ”{ }” の使用方法は、C言語形式と同じで単1行と複数行に対応しますが、コメントの入れ子には対応しません。波括弧の使い方は、次の通りです。

SELECT * FROM DATA;{ この部分がコメントです }
{
 このように複数行でも使用できます
}

【参考】:IBM Docs: How to Enter SQL Comments 【参考】:IBM Docs: Examples of SQL Comments

SQLのコメントアウトはRDBMSの違いを理解して使おう

img_sqlcommentout_03

SQLはリレーショナルデータベースで用いる言語ですが、言語は対象となるRDBMSごとに最適化されています。そのため標準SQLが共通言語としてリリースされてからも、互換性の観点で違いがあります。

コメントアウトはコード開発の生産性を高めますが、ベースとなるRDBMSの違いを理解して使い分けするのが良いでしょう。

SQLの学習方法とは?習得の流れ・おすすめの本・サイトを紹介!
【2022年】SQLを学べるおすすめ本15選!初心者向け・目的別に紹介
気になる人のXをフォローしよう!
アンドエンジニア公式LINEでは
新着記事やエンジニアに役立つ情報をお届け!
日々のキャッチアップをお手伝いします!
マイナビITエージェント

編集部オススメコンテンツ

Sponsored
【年収±診断】6つの質問に答えて、真の市場価値をチェック!
マイナビITエージェント
Sponsored

アンドエンジニアへの取材依頼、情報提供などはこちらから

お問い合わせ・情報提供
はじめて転職される方へ
SE・システムエンジニア(IT/通信/インターネット) 求人一覧

編集部おすすめコンテンツ

Sponsored
【年収±診断】6つの質問に答えて、真の市場価値をチェック!
マイナビITエージェント
Sponsored

アンドエンジニアへの取材依頼、情報提供などはこちらから

Powered by マイナビ AGENT