11
votes

SQL: Avons-nous besoin de mots-clés / certains et de tous les mots-clés?

J'utilise SQL (SQL Server, PostgreSQL) sur 10 ans et je n'ai toujours jamais utilisé aucun / certains et tous les mots-clés dans mon code de production. Toute la situation que j'ai rencontrée, je pourrais vous échapper avec dans , max , min , existe , et je pense que je pense que C'est plus lisible.

Par exemple: xxx

ou xxx

utilisant n'importe quel et < code> Tout :


8 commentaires

Je ne les ai pas utilisés non plus au cours des 13 dernières années.


Je n'ai jamais utilisé sauf non plus. Je tiens à n'existe pas


Je ne pouvais pas être d'accord avec ça, je pense que sauf est utile pour trouver des différences entre deux tables avec le même schéma


Mais les tables avec la même structure (dans le même schéma) sont rares. Pourrait être différent lorsque vous autorisez des vues ou des expressions de table, cependant.


À Postgres, la syntaxe Tout / toutes est utile pour la recherche de tableaux, bien que je ne l'ai jamais utilisée à Vanilla SQL. Array Recherche


@Romanpekar, = tout et dans est un alias pour sous-requêtes. Donc, votre première comparaison n'a pas beaucoup de sens en fait, il s'agit de la même chose avec elle-même.


@Pacerier Eh bien ce n'est pas le point de la question, question est: tout , ou et tout pourrait être facilement supprimé du code


@Joop En fait, je trouve que sauf est un moyen simple de comparer les résultats de deux Sélectionnez les instructions : Sélectionnez ... Sauf sélectionnez ... donnerait un L'ensemble vide des résultats sont les mêmes.


3 Réponses :


6
votes

Non, je n'ai jamais utilisé le aucun , tout ou quelques mots-clés et je ne les ai jamais vus utilisés dans Code des autres personnes. Je suppose que celles-ci sont la syntaxe de vestigal, comme les différents mots-clés optionnels qui apparaissent dans certains endroits dans SQL (par exemple, comme ).

Gardez à l'esprit que SQL a été défini par un comité.


0 commentaires

0
votes

J'avais essayé quelque chose que rien manque de rien, juste un type d'habitude différent uniquement si j'utilise un pas condition. L'existienne et devront ajouter non tandis que tout ou certains changent simplement l'opérateur vers <> . Je n'utilise que SQL Server et je ne suis pas sûr de l'autre logiciel pourraient manquer quelque chose


0 commentaires

13
votes

Je trouve tout et tous pour être très utile lorsque vous ne testez pas simplement l'égalité ou l'inégalité. Considérons xxx pré>

Tel qu'utilisé ma réponse à cette question . P>

tout code>, tout code> et leurs négations peuvent grandement simplifier le code qui nécessiterait autrement des sous-requêtes ou des CTES non triviales, et ils sont significativement sous-utilisés à mon avis.

considère que tout code> fonctionnera avec n'importe quel opérateur. C'est très pratique avec comme code> et ~ code>, mais fonctionnera avec TSQUERY, des tests d'adhésion de tableau, des tests de clé HSTORE, et plus encore. P>

'a => 1, b => 2'::hstore ? ALL (ARRAY['a', 'b'])


6 commentaires

+1, mais que utilisez-vous les SGBDM? J'ai essayé de mettre votre requête dans le travail de PostgreSQL et de mieux que je puisse obtenir, c'est comme n'importe quel (valeurs ('% Lah'), ('% FAH'), ('% DAH')); SQL FIDDLE


Il doit être tout (tableau [...]) . Mais oui, c'est généralement très utile.


@PeeReisenraut whoops, bon point. Je continue à penser qu'il faut la même syntaxe de liste littérale simple que in (...)


Intéressant - Pourriez-vous ajouter d'autres exemples de liens qui illustrent votre deuxième point, s'il vous plaît?


Dans les cas où tout / tout signifie max / min quels avantages ont une option sur l'autre?


@skan qui n'a pas de sens. min et max sont des agrégats. Tout et Tous sont complètement différents.