Tutoriel SQL

ACCUEIL SQL Introduction SQL Syntaxe SQL Sélection SQL SQL Select Distinct SQL Où SQL et, ou, pas Tri SQL par Insertion SQL dans Valeurs nulles SQL Mise à jour SQL Supprimer SQL SQL Sélectionner Haut Min et Max SQL Nombre SQL, Moy, Somme J'aime SQL Caractères génériques SQL Entrée SQL SQL Entre Alias ​​SQL Jointures SQL Jointure interne SQL Jointure gauche SQL Jointure droite SQL Jointure complète SQL Auto-jointure SQL Union SQL Regrouper SQL par SQL ayant SQL existe SQL Tout, Tout SQL Sélectionner dans Insertion SQL dans la sélection Cas SQL Fonctions nulles SQL Procédures stockées SQL Commentaires SQL Opérateurs SQL

Base de données SQL

SQL Créer une base de données BD de suppression SQL Base de données de sauvegarde SQL Créer une table SQL Table de dépôt SQL Table de modification SQL Contraintes SQL SQL non nul SQL unique Clé primaire SQL Clé étrangère SQL Vérification SQL SQL par défaut Index SQL Incrément automatique SQL Dates SQL Vues SQL Injection SQL Hébergement SQL Types de données SQL

Références SQL

Mots clés SQL Fonctions MySQL Fonctions SQL Server Fonctions MS Access Référence rapide SQL

Exemples SQL

Exemples SQL Questionnaire SQL Exercices SQL Certificat SQL

Opérateurs SQL ANY et ALL


Les opérateurs SQL ANY et ALL

Les opérateurs ANYet ALLvous permettent d'effectuer une comparaison entre une valeur de colonne unique et une plage d'autres valeurs.


L'opérateur SQL ANY

L' ANYopérateur :

  • renvoie une valeur booléenne comme résultat
  • renvoie TRUE si TOUTES les valeurs de la sous-requête remplissent la condition

ANY signifie que la condition sera vraie si l'opération est vraie pour l'une des valeurs de la plage.

N'IMPORTE QUELLE syntaxe

SELECT column_name(s)
FROM table_name
WHERE column_name operator ANY
  (SELECT column_name
 
FROM table_name
 
WHERE condition);

Remarque : L' opérateur doit être un opérateur de comparaison standard (=, <>, !=, >, >=, < ou <=).


L'opérateur SQL ALL

L' ALLopérateur :

  • renvoie une valeur booléenne comme résultat
  • renvoie TRUE si TOUTES les valeurs de la sous-requête remplissent la condition
  • est utilisé avec les instructions SELECT, WHEREetHAVING

ALLsignifie que la condition ne sera vraie que si l'opération est vraie pour toutes les valeurs de la plage. 

ALL Syntaxe avec SELECT

SELECT ALL column_name(s)
FROM table_name
WHERE condition;

ALL Syntaxe Avec WHERE ou HAVING

SELECT column_name(s)
FROM table_name
WHERE column_name operator ALL
  (SELECT column_name
 
FROM table_name
 
WHERE condition);

Remarque : L' opérateur doit être un opérateur de comparaison standard (=, <>, !=, >, >=, < ou <=).


Base de données de démonstration

Vous trouverez ci-dessous une sélection du tableau "Produits" dans l'exemple de base de données Northwind :

ProductID ProductName SupplierID CategoryID Unit Price
1 Chais 1 1 10 boxes x 20 bags 18
2 Chang 1 1 24 - 12 oz bottles 19
3 Aniseed Syrup 1 2 12 - 550 ml bottles 10
4 Chef Anton's Cajun Seasoning 2 2 48 - 6 oz jars 22
5 Chef Anton's Gumbo Mix 2 2 36 boxes 21.35
6 Grandma's Boysenberry Spread 3 2 12 - 8 oz jars 25
7 Uncle Bob's Organic Dried Pears 3 7 12 - 1 lb pkgs. 30
8 Northwoods Cranberry Sauce 3 2 12 - 12 oz jars 40
9 Mishi Kobe Niku 4 6 18 - 500 g pkgs. 97

Et une sélection du tableau "OrderDetails" :

OrderDetailID OrderID ProductID Quantity
1 10248 11 12
2 10248 42 10
3 10248 72 5
4 10249 14 9
5 10249 51 40
6 10250 41 10
7 10250 51 35
8 10250 65 15
9 10251 22 6
10 10251 57 15


SQL ANY Exemples

L'instruction SQL suivante répertorie le ProductName si elle trouve que N'IMPORTE QUEL enregistrement dans la table OrderDetails a une quantité égale à 10 (cela renverra VRAI car la colonne Quantité a des valeurs de 10) :

Exemple

SELECT ProductName
FROM Products
WHERE ProductID = ANY
  (SELECT ProductID
  FROM OrderDetails
  WHERE Quantity = 10);

L'instruction SQL suivante répertorie ProductName si elle trouve que N'IMPORTE QUEL enregistrement dans la table OrderDetails a une quantité supérieure à 99 (cela renverra VRAI car la colonne Quantité a des valeurs supérieures à 99) :

Exemple

SELECT ProductName
FROM Products
WHERE ProductID = ANY
  (SELECT ProductID
  FROM OrderDetails
  WHERE Quantity > 99);

L'instruction SQL suivante répertorie le ProductName si elle trouve que N'IMPORTE QUEL enregistrement dans la table OrderDetails a une quantité supérieure à 1 000 (cela renverra FAUX car la colonne Quantité n'a pas de valeur supérieure à 1 000) :

Exemple

SELECT ProductName
FROM Products
WHERE ProductID = ANY
  (SELECT ProductID
  FROM OrderDetails
  WHERE Quantity > 1000);

SQL ALL Exemples

L'instruction SQL suivante répertorie TOUS les noms de produits :

Exemple

SELECT ALL ProductName
FROM Products
WHERE TRUE;

L'instruction SQL suivante répertorie ProductName si TOUS les enregistrements de la table OrderDetails ont une quantité égale à 10. Cela renverra bien sûr FAUX car la colonne Quantité a de nombreuses valeurs différentes (pas seulement la valeur de 10) :

Exemple

SELECT ProductName
FROM Products
WHERE ProductID = ALL
  (SELECT ProductID
  FROM OrderDetails
  WHERE Quantity = 10);