大文字小文字と特殊文字 Case sensitivity of keywords and identifiers Keywordscase insensitivity of Special charactersescaping in SQL statements Escape characterfor single-quotation mark Stringsdelimited by single quotation marks within SQL statementsUnicode escapessupport for in SQL statementsJava identifierscase sensitivity of within SQL* as wildcard in SQL SELECT% as wildcard in SQL_ as wildcard within SQLWildcards in SQL Comment delimiters within SQL-- (comment delimiters within SQL)

JDBCのクラスやメソッドにSQL文の文字列を渡して、にSQLを発行することができます。 SQL文の文字列に可能な文字セットはUnicodeです。この文字列には、次の規則が適用されます。

  • 二重引用符でSQL-92に定義されている特殊識別子をデリミトして、デリミトされた識別子とすることができます。
  • 一重引用符で文字の列を区切ることができます。
  • 文字の列にて一重引用符またはアポストロフィーをあらわすには、一重引用符を2つ並べます。(言い方を変えれば、一重引用符は一重引用符のエスケープ文字です。)

    二重引用符にはエスケープ文字が必要ではありません。二重引用符をあらわすには、単に二重引用符を使ってください。ただし、Javaのプログラムでは、二重引用符はバックスラッシュによるエスケープが必要であることを気に留める必要があります。

    例: -- 一重引用符はエスケープ文字です-- 一重引用符に対して VALUES 'Joe''s umbrella' -- ijでは二重引用符はエスケープされません。 VALUES 'He said, "hello!"' n = stmt.executeUpdate( "UPDATE aTable setStringcol = 'He said, \"hello!\"'");
  • SQLのキーワードは大文字小文字を区別しません。例えば、SELECTというキーワードは、SELECT、Select、select、sELECTのいずれでも書くことができます。
  • SQL-92の書き方による識別子は大文字小文字を区別しません。(を参照してください。)ただしデリミトされた識別子はそうではありません。
  • Javaの書き方による識別子は常に大文字小文字を区別します。
  • *は、SelectExpression.にてワイルドカード文字です。を参照してください。 この文字は同時に情報演算子でもあります。そのほかの場合この文字は、0回以上の繰り返しを表す、構文のメタ文字です。
  • %と_は、LIKE演算子に続く文字の列にて使われると、ワイルドカード文字となります。(これはエスケープされなかった場合です。)詳細はを参照してください。
  • SQL-92の仕様に沿って一行あるいは複数行のコメントを書くことができます。一行のコメントは二つのダッシュ(--)で始まり改行文字で終わります。複数行の改行は前後を囲う書き方で、スラッシュ・スター(/*)で始まり、スター・スラッシュ(*/)で終わります。この書き方では入れ子となる場合があることを留意してください。コメントの開始文字と終了文字の間にある、あらゆる文字は無視されます。