sql >> データベース >  >> RDS >> Mysql

異なるデータベースは異なる名前の引用符を使用しますか?

    この引用符の使用は、区切り識別子と呼ばれます。これはSQLの重要な部分です。そうしないと、次のような識別子(テーブル名や列名など)を使用できないためです。

    • 空白を含める:「マイテーブル」
    • 特殊文字と句読点を含める:「my-table」
    • 国際的な文字を含める:「私のテーブル」
    • 大文字と小文字が区別されます:「MyTable」
    • SQLキーワードの一致:「テーブル」

    標準のSQL言語では、区切られた識別子に二重引用符が使用されます。

    SELECT * FROM "my table";
    

    MySQLはデフォルトでバッククォートを使用します。 MySQLは標準の二重引用符を使用できます:

    SELECT * FROM `my table`;
    SET SQL_MODE=ANSI_QUOTES;
    SELECT * FROM "my table";
    

    Microsoft SQL ServerとSybaseは、デフォルトでブラケットを使用します。どちらも、次のように標準の二重引用符を使用できます。

    SELECT * FROM [my table];
    SET QUOTED_IDENTIFIER ON;
    SELECT * FROM "my table";
    

    InterBaseとFirebirdは、区切られた識別子をサポートするためにSQLダイアレクトを3に設定する必要があります。

    他のほとんどのブランドのデータベースは、二重引用符を正しく使用しています。



    1. current_timestamp SQLに10秒を追加する方法(Oracle)

    2. IN演算子に動的に値を渡す方法は?

    3. refcursorを消費して返すPostgreSQL関数のテスト

    4. 常に暗号化されたパフォーマンス:フォローアップ