SQL : les prédicats NULL, IN, LIKE, BETWEEN

Prédicat NULL

Un attribut (une colonne, un champ...) peut avoir la valeur "NULL" soit en raison d'information incomplète (la valeur n'était pas connue au moment de la saisie des données) soit parce que la donnée n'est pas pertinente. Dans une table qui modélise des individus, l'attribut "Nom Marital" n'est pas pertinent pour les individus de sexe masculin et a donc la valeur "NULL". La valeur "NULL" est différente de la valeur par défaut de l'attribut : zéro pour un attribut de type numérique et espace pour un attribut de type caractère.

La syntaxe est : IS NULL et sa négation IS NOT NULL.

- Numéro, nom et sexe des étudiants dont la date de naissance n'est pas connue

SELECT Numetu, Nometu
FROM ETUDIANT
WHERE Dtnaiss IS NULL;

Prédicat IN

Il comporte une liste de valeurs et vérifie si une valeur particulière apparaît sur cette liste.

La syntaxe est : IN(val1, val2, ...) et sa négation NOT IN(val1, val2, ...).

Lorsque la liste des valeurs est connue et fixe, le prédicat IN peut être remplacé par une suite d'opérateurs logiques OR. Lorsque la liste des valeurs n'est pas connue à priori, comme dans certaines sous-interrogations, ce prédicat est nécessaire.

- Numéro et nom des enseignants qui sont soit assistants (ASS) soit professeurs (PR)

Version IN Version OR
SELECT Numens, Nomens
FROM ENSEIGNANT
WHERE Grade IN('ASS', 'PR');
SELECT Numens, Nomens
FROM ENSEIGNANT
WHERE Grade='ASS'
OR Grade='PR';
Prédicat LIKE

Ce prédicat permet de faire des recherches à l'intérieur d'une chaîne de caractères, lorsque l'on dispose d'informations incomplètes. Il utilise 2 caractères génériques :

% : utilisé pour représenter une chaîne de caractère de longueur quelconque.
_  : utilisé pour représenter un caractère unique.

La syntaxe est : LIKE 'Chaîne de recherche' et sa négation NOT LIKE 'Chaîne de recherche'

- Nom et date de naissance des étudiants dont la 2° lettre du nom est 'a'.

SELECT Nometu, Dtnaiss
FROM ETUDIANT
WHERE Nometu LIKE '_a%';

Tester les exemples

Sommaire SQL

Q04 : Afficher le Nom des étudiants de sexe féminin dont la première lettre du prénom est un "J".

Tester les exemples

Sommaire SQL

Prédicat BETWEEN

Il permet de comparer la valeur d'un champ par rapport à une borne inférieure et une borne supérieure (bornes incluses).

- Nom des matières qui ont un coefficient compris entre 1 et 2.

SELECT Nomat
FROM MATIERE
WHERE Coeff BETWEEN 1 AND 2;

Ce prédicat est une simplification d'écriture et peut être remplacé par :

SELECT Nomat
FROM MATIERE
WHERE (Coeff >=1) AND (Coeff<=2);

Tester les exemples

Section suivante | Section précédente | Sommaire SQL