ホームページ >データベース >mysql チュートリアル >引用符は Oracle のテーブル名にどのような影響を与えますか?
Oracle テーブル名: 引用符の重要性
Oracle データベース管理に関するよくある質問に、テーブル名の前後の二重引用符の使用に関するものがあります。 一見単純に見えますが、一般的なエラーを回避するには、その機能を理解することが重要です。
Oracle のデフォルトの動作では、大文字と小文字を区別しない識別子の処理が行われます。 これは、MyTable
、mytable
、および MYTABLE
がすべて同じテーブルとして扱われることを意味します。 ただし、テーブル名を二重引用符で囲むと、これが変更されます。
二重引用符は大文字と小文字を区別します。 "MyTable"
は "mytable"
や "MYTABLE"
とは異なります。 引用符を使用して作成した場合、テーブルはまったく同じ大文字と小文字と引用符で参照される必要があります。
<code class="language-sql">SELECT * FROM mytable WHERE id = 1; -- Works (case-insensitive)</code>このクエリは、Oracle のデフォルトの大文字と小文字を区別しない一致により成功します。 しかし、これは失敗します:
<code class="language-sql">SELECT * FROM "mytable" WHERE id = 1; -- Fails (case-sensitive)</code>このエラーは、
が大文字と小文字を区別するように定義されているために発生します。クエリには正確な大文字と引用符が必要です。"mytable"
引用符を含むテーブルの作成:
<code class="language-sql">CREATE TABLE "my_data"(col1 NUMBER, col2 VARCHAR2(255));</code>次のクエリは有効です:
<code class="language-sql">SELECT * FROM "my_data"; SELECT * FROM "MY_DATA"; SELECT * FROM "My_Data";</code>ただし、これは失敗します:
<code class="language-sql">SELECT * FROM my_data;</code>逆に、引用符なしでテーブルを作成する場合:
<code class="language-sql">CREATE TABLE my_other_data(col1 NUMBER, col2 VARCHAR2(255));</code>これらのクエリはすべて正しくありません:
<code class="language-sql">SELECT * FROM My_Other_Data; SELECT * FROM "my_other_data"; SELECT * FROM "MY_OTHER_DATA";</code>これだけが機能します:
<code class="language-sql">SELECT * FROM my_other_data;</code>大文字と小文字を区別する (引用符付き) 識別子と区別しない (引用符で囲まない) 識別子の違いと二重引用符の役割をマスターすることは、効果的な Oracle データベース管理とクエリ作成に不可欠です。
以上が引用符は Oracle のテーブル名にどのような影響を与えますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。