Esercitazione SQL

SQL HOME Introduzione SQL Sintassi SQL Seleziona SQL SQL Seleziona distinto SQL dove SQL e, o, no Ordina SQL per Inserisci SQL in Valori nulli SQL Aggiornamento SQL Elimina SQL SQL Seleziona in alto SQL Min e Max Conteggio SQL, media, somma Mi piace SQL Caratteri jolly SQL SQL In SQL tra Alias ​​SQL Join SQL Join interno SQL Join sinistro SQL SQL Right Join SQL Full Join SQL Self Join Unione SQL Raggruppamento SQL per SQL Avere SQL esiste SQL Qualsiasi, Tutti SQL Seleziona in Inserisci SQL in Seleziona Caso SQL Funzioni SQL Null Stored procedure SQL Commenti SQL Operatori SQL

Database SQL

SQL Crea DB SQL Drop DB DB di backup SQL SQL Crea tabella Tabella di rilascio SQL SQL Alter tabella Vincoli SQL SQL non nullo SQL unico Chiave primaria SQL Chiave esterna SQL Controllo SQL SQL predefinito Indice SQL Incremento automatico SQL Date SQL Viste SQL SQL Injection Hosting SQL Tipi di dati SQL

Riferimenti SQL

Parole chiave SQL Funzioni MySQL Funzioni di SQL Server Funzioni di accesso MS Riferimento rapido SQL

Esempi SQL

Esempi SQL Quiz SQL Esercizi SQL Certificato SQL

SQL QUALSIASI e TUTTI gli operatori


Gli operatori SQL ANY e ALL

Gli operatori ANYe ALLconsentono di eseguire un confronto tra un valore di una singola colonna e un intervallo di altri valori.


L'operatore SQL ANY

L' ANYoperatore:

  • restituisce un valore booleano come risultato
  • restituisce TRUE se QUALSIASI dei valori della sottoquery soddisfa la condizione

ANYsignifica che la condizione sarà vera se l'operazione è vera per uno qualsiasi dei valori nell'intervallo.

QUALSIASI sintassi

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

Nota: l' operatore deve essere un operatore di confronto standard (=, <>, !=, >, >=, < o <=).


L'operatore SQL ALL

L' ALLoperatore:

  • restituisce un valore booleano come risultato
  • restituisce TRUE se TUTTI i valori della sottoquery soddisfano la condizione
  • è usato con SELECT, WHEREe HAVINGistruzioni

ALL significa che la condizione sarà vera solo se l'operazione è vera per tutti i valori nell'intervallo. 

TUTTO Sintassi Con SELECT

SELECT ALL column_name(s)
FROM table_name
WHERE condition;

TUTTO Sintassi Con WHERE o HAVING

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

Nota: l' operatore deve essere un operatore di confronto standard (=, <>, !=, >, >=, < o <=).


Database dimostrativo

Di seguito è riportata una selezione dalla tabella "Prodotti" nel database di esempio 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

E una selezione dalla tabella "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 QUALSIASI Esempi

La seguente istruzione SQL elenca ProductName se trova QUALSIASI record nella tabella OrderDetails ha Quantità uguale a 10 (questo restituirà TRUE perché la colonna Quantità ha alcuni valori di 10):

Esempio

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

La seguente istruzione SQL elenca ProductName se trova QUALSIASI record nella tabella OrderDetails ha Quantità maggiore di 99 (questo restituirà TRUE perché la colonna Quantità ha alcuni valori maggiori di 99):

Esempio

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

La seguente istruzione SQL elenca ProductName se trova QUALSIASI record nella tabella OrderDetails ha una quantità maggiore di 1000 (questo restituirà FALSE perché la colonna Quantità non ha valori maggiori di 1000):

Esempio

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

Esempi di SQL TUTTI

La seguente istruzione SQL elenca TUTTI i nomi dei prodotti:

Esempio

SELECT ALL ProductName
FROM Products
WHERE TRUE;

La seguente istruzione SQL elenca ProductName se TUTTI i record nella tabella OrderDetails hanno Quantità uguale a 10. Questo ovviamente restituirà FALSE perché la colonna Quantità ha molti valori diversi (non solo il valore di 10):

Esempio

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