Réponses:
Non, il n'y a aucune différence de fonctionnalité.
(La même chose est vraie pour tous les autres SGBD - la plupart d'entre eux prennent en charge les deux styles):
Voici la référence SQL actuelle: https://docs.oracle.com/database/121/SQLRF/conditions002.htm#CJAGAABC
Le standard SQL ne définit qu'un seul opérateur pour « pas égal », c'est-à-dire<>
IS NOT
équivalent / synonome / .. à <>
et !=
? Les trois peuvent-ils être utilisés de la même manière?
En fait, il existe quatre formes de cet opérateur:
<>
!=
^=
et même
¬= -- worked on some obscure platforms in the dark ages
qui sont identiques, mais traités différemment lorsqu'une correspondance verbatim est requise (contours stockés ou requêtes mises en cache).
NOT(x = y)
, peut !(x = y)
- être , etc.?
^=
(je l'ai vu moi-même la première fois lorsque j'ai posté le lien vers le manuel). Mais votre point sur les requêtes mises en cache est bon.
Oracle
, boolean n'est pas un type de première classe in SQL
(qui est différent de PL/SQL
). C'est à dire. vous ne pouvez pas SELECT 1 = 1 FROM dual
aimer dans d'autres systèmes. Alors booléens ont leur propre ensemble d'opérateurs valides que dans des contextes logiques ( WHERE
ou HAVING
ou clauses similaires). NOT
est le seul opérateur de négation booléenne dans Oracle SQL
(AFAIK).
¬= -- worked on some obscure platforms in the dark ages
- ouais, ils s'appelaient "mainframes IBM". Depuis l'époque où les hommes étaient des hommes, les femmes étaient des femmes, les dinosaures parcouraient la terre et les ordinateurs étaient refroidis à l'eau. :-)
À l'université, on nous a enseigné que la «meilleure pratique» était d'utiliser! = Quand on travaillait pour des employeurs, bien que tous les opérateurs ci-dessus aient la même fonctionnalité.
<>
comme l'opérateur "pas égal".
<>
et préférer !=
. Principalement parce que <>
dans son énoncé «inférieur ou supérieur à», pour moi, il semble supposer que le type de données a un ordre implicite (ce qui n'est pas nécessairement vrai, même si c'est vrai pour tous les types de données SQL), alors que !=
c'est dire «pas égal» dans un sens très pur.
Selon cet article,! = Fonctionne plus rapidement