Comment utiliser des prédicats similaires et nuls dans les instructions SQL

SQL: 1999 ajoute la SIMILAIRE prédicat, qui offre un moyen plus efficace de trouver des correspondances partielles que la AIMER prédicat fournit. Avec le SIMILAIRE prédicat, vous pouvez comparer une chaîne de caractères à une expression régulière. Par exemple, disons que vous êtes à la recherche de la Système d'exploitation colonne d'une table de compatibilité des logiciels de regarder une compatibilité avec Microsoft Windows. Vous pourriez construire un clause comme suit:

OÙ OperatingSystem similaire à '(' Windows '(3.1 | 95 | 98 | ME | CE | NT | 2000 | XP | Vista | 7 | 8))'

Ce prédicat extrait toutes les lignes qui contiennent l'un des systèmes d'exploitation Microsoft spécifiées.

La NUL prédicat trouve toutes les lignes où la valeur dans la colonne sélectionnée est nulle. Par exemple, dans une table ALIMENTS comparant la valeur nutritionnelle des aliments différents, plusieurs lignes ont des valeurs nulles dans le Glucides colonne. Vous pouvez récupérer leurs noms en utilisant un énoncé tel que le suivant:

SELECT (Food) DE FOODSWHERE glucide est NULL -

Cette requête renvoie les valeurs suivantes:




Boeuf, maigre hamburgerChicken, meatOpossum lumière, roastedPork, jambon

Comme on pouvait s'y attendre, y compris le PAS inverse le mot-résultat, comme dans l'exemple suivant:

SELECT (Food) DE FOODSWHERE Glucides IS NOT NULL -

Cette requête renvoie toutes les lignes de la table, sauf les quatre que la requête retourne précédentes.

La déclaration Glucides IS NULL est pas le même que Glucides = NULL. Pour illustrer ce point, supposons que, dans la ligne courante de la table des aliments, à la fois Glucides et Protéine sont nulles. De ce fait, vous pouvez tirer les conclusions suivantes:

  • Glucides IS NULL est vrai.

  • La protéine est NULL est vrai.

  • Glucides EST NULLE ET protéine est NULL est vrai.

  • Glucides = Protein est inconnue.

  • Glucides = NULL est une expression illégale.

En utilisant le mot-clé NUL dans une comparaison n'a pas de sens parce que la réponse revient toujours aussi inconnue.

Pourquoi est-ce Glucides = Protein définie comme inconnue, même si Glucides et Protéine avoir le même (null) de la valeur? Car NUL signifie simplement “ je ne sais pas ”. Vous ne savez pas quoi Glucides est, et vous ne savez pas quoi Protéine est- donc vous ne savez pas si ces valeurs (inconnues) sont les mêmes.

Peut être Glucides est 37, et Protéine 14 est, ou peut-être Glucides est 93, et Protéine est 93. Si vous ne savez pas tant la valeur de glucides et la valeur de la protéine, on ne peut pas dire si les deux sont les mêmes.


» » » » Comment utiliser des prédicats similaires et nuls dans les instructions SQL