Rumah >pangkalan data >tutorial mysql >Bagaimanakah Tanda Sebut Harga Mempengaruhi Nama Jadual dalam Oracle?
Nama Jadual Oracle: Kepentingan Tanda Petikan
Soalan yang kerap dalam pengurusan pangkalan data Oracle melibatkan penggunaan petikan berganda di sekitar nama jadual. Walaupun nampak mudah, memahami fungsinya adalah penting untuk mengelakkan ralat biasa.
Tingkah laku lalai Oracle ialah pengendalian pengecam tidak peka huruf besar-besaran. Ini bermakna MyTable
, mytable
dan MYTABLE
semuanya dianggap sebagai jadual yang sama. Walau bagaimanapun, melampirkan nama jadual dalam petikan berganda mengubahnya.
Petikan berganda menguatkuasakan sensitiviti huruf besar. "MyTable"
berbeza daripada "mytable"
atau "MYTABLE"
. Jika dibuat dengan petikan, jadual mesti dirujuk dengan sarung dan petikan yang sama.
Pertimbangkan contoh ini:
<code class="language-sql">SELECT * FROM mytable WHERE id = 1; -- Works (case-insensitive)</code>
Pertanyaan ini berjaya disebabkan padanan lalai tidak sensitif huruf besar Oracle. Tetapi ini gagal:
<code class="language-sql">SELECT * FROM "mytable" WHERE id = 1; -- Fails (case-sensitive)</code>
Ralat ini timbul kerana "mytable"
ditakrifkan sebagai sensitif huruf besar-besaran. Pertanyaan memerlukan huruf besar dan petikan yang tepat.
Oracle secara dalaman menggunakan perbandingan sensitif huruf besar-besaran, tetapi ia menggunakan huruf besar pengecam yang tidak disebut sebelum perbandingan. Petikan memintas ini.
Membuat jadual dengan petikan:
<code class="language-sql">CREATE TABLE "my_data"(col1 NUMBER, col2 VARCHAR2(255));</code>
Pertanyaan ini sah:
<code class="language-sql">SELECT * FROM "my_data"; SELECT * FROM "MY_DATA"; SELECT * FROM "My_Data";</code>
Ini, bagaimanapun, akan gagal:
<code class="language-sql">SELECT * FROM my_data;</code>
Sebaliknya, mencipta jadual tanpa petikan:
<code class="language-sql">CREATE TABLE my_other_data(col1 NUMBER, col2 VARCHAR2(255));</code>
Pertanyaan ini semuanya tidak betul:
<code class="language-sql">SELECT * FROM My_Other_Data; SELECT * FROM "my_other_data"; SELECT * FROM "MY_OTHER_DATA";</code>
Hanya ini berfungsi:
<code class="language-sql">SELECT * FROM my_other_data;</code>
Menguasai perbezaan antara pengecam sensitif huruf besar (dipetik) dan tidak sensitif huruf besar (tidak disebut petikan) dan peranan petikan berganda adalah penting untuk pengurusan pangkalan data Oracle yang berkesan dan penulisan pertanyaan.
Atas ialah kandungan terperinci Bagaimanakah Tanda Sebut Harga Mempengaruhi Nama Jadual dalam Oracle?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!