Maison >base de données >tutoriel mysql >Pourquoi Oracle exige-t-il une clause FROM dans les instructions SELECT et quelles sont les meilleures solutions de contournement ?

Pourquoi Oracle exige-t-il une clause FROM dans les instructions SELECT et quelles sont les meilleures solutions de contournement ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-29 01:24:10563parcourir

Why Does Oracle Require a FROM Clause in SELECT Statements, and What Are the Best Workarounds?

Restriction d'Oracle sur SELECT sans clause FROM

Alors que SQL Server autorise les instructions SELECT sans référencer une table, Oracle impose l'inclusion d'un FROM clause. Cela pose une question aux utilisateurs habitués à utiliser de telles requêtes.

Pour contourner cette limitation, les développeurs Oracle ont souvent recours à la double table. Cependant, des inquiétudes surviennent quant à l'efficacité et aux meilleures pratiques de cette approche.

Utilisation de la table DUAL

La table double d'Oracle est une table à enregistrement unique qui sert de espace réservé pratique pour les instructions SELECT qui ne nécessitent pas d'accès à des données de table spécifiques. Son utilisation, comme illustré ci-dessous, est devenue une pratique courante :

Select 1,2+3, 'my dummy string' FROM DUAL

Avantages de l'utilisation de la table DUAL

L'utilisation de la table dual offre plusieurs avantages :

  1. Accès léger : Dual est une table en mémoire, qui élimine le besoin de Opérations d'E/S lors de la sélection de la colonne DUMMY.
  2. Flexibilité : Elle permet de générer un nombre arbitraire de lignes à l'aide de requêtes CONNECT BY.
  3. Prévalence : La prise en charge de deux tables est également disponible dans MySQL, améliorant ainsi son multiplateforme compatibilité.

Alternatives à l'utilisation de la table DUAL

Bien que la table double reste une option viable, des approches alternatives peuvent également être envisagées :

  1. Tables temporaires : La création de tables temporaires spécifiquement pour de telles requêtes peut éviter la surcharge liée à l'utilisation du dual table.
  2. Requêtes en ligne : L'intégration de la requête dans une sous-requête ou une instruction CASE peut éliminer le besoin d'une clause FROM.

Conclusion

Dans Oracle, les instructions SELECT sans clause FROM sont en effet interdites. L'utilisation de la double table est apparue comme une solution de contournement pratique, offrant des avantages tels qu'un accès léger et une flexibilité. Cependant, des alternatives telles que les tables temporaires et les requêtes en ligne peuvent également être envisagées pour des scénarios spécifiques. En fin de compte, le choix dépend des exigences et des préférences du développeur.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn