Le rôle des guillemets dans les noms de tables dans la base de données Oracle
Dans Oracle Database, les guillemets jouent un rôle important dans les conventions de dénomination des tables et dans le respect de la casse. Contrairement à leur fonction principale de marqueurs de regroupement, les guillemets autour des noms de tables ont une signification spécifique pour l’accès aux tables et la manipulation des données.
Sensibilité à la casse et guillemets
Par défaut, Oracle traite les identifiants (y compris les noms de table) comme étant insensibles à la casse. Cependant, mettre un identifiant entre guillemets doubles le rend sensible à la casse. Par exemple, si vous créez une table nommée « SITE » (avec des guillemets doubles), vous devez toujours y faire référence en utilisant des guillemets doubles et la casse exacte spécifiée.
Par exemple, la requête suivante renverra les résultats attendus :
<code class="language-sql">SELECT * FROM "SITE" WHERE SITE_ID = 3;</code>
Cependant, les requêtes sans guillemets ou sans majuscules incorrectes échoueront :
<code class="language-sql">SELECT * FROM SITE WHERE SITE_ID = 3; -- 失败 SELECT * FROM "site" WHERE SITE_ID = 3; -- 失败</code>
Le mécanisme en coulisses
En interne, Oracle applique une conversion insensible à la casse (conversion en majuscules) aux identifiants sans guillemets. Pour les identifiants entre guillemets, cette conversion est ignorée, garantissant ainsi une correspondance sensible à la casse.
Application pratique
L'utilisation de guillemets pour les noms de tables peut être bénéfique dans les situations suivantes :
Exemple
Considérons deux tableaux : SITE et site. Sans les guillemets, les deux tableaux seront interprétés comme le même tableau « SITE ». Utilisez cependant des guillemets :
<code class="language-sql">CREATE TABLE "SITE"(ID INT, NAME VARCHAR2(100)); CREATE TABLE "site"(ID INT, ACTIVE BOOLEAN);</code>
Ces tableaux peuvent être identifiés et accessibles de manière unique :
<code class="language-sql">SELECT * FROM "SITE"; SELECT * FROM "site";</code>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!