In questo argomento impareremo come aggiungere più condizioni utilizzando la clausola WHERE.
Per prima cosa, comprendiamo il concetto di clausola WHERE.
La clausola WHERE viene utilizzata per specificare una condizione durante il recupero di record da una tabella.
La clausola WHERE viene generalmente utilizzata con l'istruzione SELECT in SQL
La query SELECT visualizzerà solo i record che soddisfano la condizione specificata nella clausola WHERE
Possono esserci una o più condizioni specificate nella condizione della clausola WHERE di una query SELECT.
Gli operatori AND e OR vengono utilizzati per verificare più condizioni utilizzando la clausola WHERE in un'unica query.
- Operatore AND con clausola WHERE
Ogni volta che l'operatore AND viene utilizzato tra le condizioni con la clausola WHERE per controllare più condizioni nella query SELECT, i risultati vengono visualizzati quando viene soddisfatta solo più di una condizione specificata nella query.
Sintassi:
SELECT *FROM table_name WHERE Condition 1 AND Condition 2 [AND Condition 3];
Esempio 1:
Considera la tabella degli studenti riportata di seguito. Considereremo la stessa tabella per tutti i seguenti esempi.
Student_RollNo | Nome_studente | Sesso_studente | Numero_di_cellulare studente | Città_casa degli studenti | Età_studente | Percentuale_studente |
1 | Rohit di più | Maschio | 9890786123 | Fortunato | 23 | 75 |
2 | Kunal Shah | Maschio | 7789056784 | Chandigarh | 20 | 68 |
3 | Kartik Goenka | Maschio | 9908743576 | Ahemdabad | 22 | 92 |
4 | Anupama Shah | Femmina | 8890907656 | Chandigarh | 24 | 94 |
5 | Snehal Jain | Femmina | 8657983476 | Surat | 21 | 94 |
Vediamo ora alcuni esempi per comprendere praticamente questo concetto.
mysql> SELECT *FROM students WHERE Student_Gender = "Male" AND Student_HomeTown = "Chandigarh";
Risultato:
C'è solo un record nella tabella degli studenti con il numero 2, che ha il sesso come maschio e la città natale come Chandigarh. Anche se una qualsiasi delle condizioni specificate non è soddisfatta, in tal caso, l'output non sarà lo stesso. Il record/i record visualizzati saranno diversi o, in alcuni casi, l'output potrebbe essere un set vuoto se nessun record soddisfa entrambe le condizioni.
Esempio 2:
mysql> SELECT *FROM students WHERE Student_Age = 21 AND Student_Percentage = 94;
Risultato:
C'è un solo record con il numero di ruolo "5" nella tabella studenti, che ha età uguale a "21" e percentuale uguale a "94".
Esempio 3:
mysql> SELECT *FROM students WHERE Student_Gender = "Female" AND Student_HomeTown = "Chandigarh" AND Student_Age = 24;
Risultato:
Tra tutti i record nella tabella degli studenti, c'è solo un record con il numero di registro "4", che ha il sesso come "maschio", la città natale come "Chandigarh" e l'età è pari a "24". Questo è l'unico record che soddisfa tutte e tre le condizioni.
Esempio 4:
mysql> SELECT *FROM students WHERE Student_Gender = "Male" AND Student_Name = "Kartik Goenka" AND Student_Percentage = 92;
Risultato:
Tra tutti i record nella tabella studenti, c'è un solo record con numero di registro '3' in cui sono soddisfatte tutte e tre le condizioni, ovvero sesso maschile, nome uguale a 'Kartik Goenka' e percentuale uguale a '92'.
- Operatore OR con clausola WHERE
Ogni volta che l'operatore OR viene utilizzato tra le condizioni con la clausola WHERE per controllare più condizioni nella query SELECT, i risultati vengono visualizzati quando viene soddisfatta almeno una condizione tra tutte le altre condizioni scritte in una query.
Sintassi:
SELECT *FROM table_name WHERE Condition 1 OR Condition 2 [OR Condition 3];
Esempio 1:
mysql> SELECT *FROM students WHERE Student_Gender = "Male" OR Student_HomeTown = "Chandigarh";
Risultato:
Nella tabella degli studenti, ci sono quattro record con il numero di rotolo 1, 2, 3 e 4 che hanno il sesso maschile o la città natale come Chandigarh. Anche se vengono soddisfatte le condizioni specificate, quel record verrà considerato come parte dell'output. In alcuni casi, l'output potrebbe essere un set vuoto se nessun record soddisfa nessuna delle due condizioni.
Esempio 2:
mysql> SELECT *FROM students WHERE Student_Age = 21 OR Student_Percentage = 94;
Risultato:
Nella tabella degli studenti sono presenti due numeri di registro "4" e "5", che hanno un'età uguale a "21" o una percentuale uguale a "94".
Esempio 3:
mysql> SELECT *FROM students WHERE Student_Gender = "Female" OR Student_HomeTown = "Chandigarh" OR Student_Age = 24;
Risultato:
Tra tutti i record nella tabella studenti, ci sono tre record con numero di registro "2", "4" e "5", che hanno entrambi i sessi come "femmina"; città natale come "Chandigarh" o età uguale a "24". Questi sono i record che soddisfano una delle tre condizioni.
Esempio 4:
mysql> SELECT *FROM students WHERE Student_Gender = "Male" OR Student_Name = "Kartik Goenka" OR Student_Percentage = 92;
Risultato:
Tra tutti i record nella tabella studenti, ci sono tre record con i numeri di registro '1', '2' e '3' in cui è soddisfatta una delle tre condizioni, ovvero sesso maschile, nome uguale a 'Kartik Goenka' o percentuale è uguale a '92'.
- Operatore AND e OR con clausola WHERE in una singola query
Nella query con clausola WHERE con un'istruzione SELECT, possiamo anche utilizzare una combinazione di operatori AND e OR in una singola query. Lo scopo dell'utilizzo delle combinazioni di operatori AND e OR in una singola query è testare il livello più elevato di condizioni complicate.
Sintassi:
SELECT *FROM table_name WHERE Condition 1 AND/OR Condition 2 [AND/OR Condition 3];
Esempio 1:
mysql> SELECT *FROM students WHERE Student_Gender = "Female" AND Student_HomeTown = "Chandigarh" OR Student_Age = 24;
Risultato:
Secondo le condizioni in una query, il record dovrebbe avere il sesso come "femmina" e la città natale come "Chandigarh". L'età dello studente può essere o meno "24". Quindi, c'è solo un record con il numero di rotolo "4", che soddisfa queste condizioni. Anche se un record ha un sesso come "femmina" e una città natale diversa da "Chandigarh" o viceversa, quel record non verrà considerato nell'output.
Esempio 2:
SELECT * FROM students WHERE Student_Gender = "Female" OR Student_HomeTown = "Chandigarh" AND Student_Age = 24;
Risultato:
Secondo le condizioni in una query, il record dovrebbe avere il sesso come "femmina" o la città natale come "Chandigarh". L'età dello studente non dovrebbe essere diversa da "24". Quindi, ci sono due record con numero di rotolo "4" e "5" che soddisfano queste condizioni.
Esempio 3:
mysql> SELECT *FROM students WHERE Student_Gender = "Male" AND Student_HomeTown = "Lucknow" OR Student_Age = 23 AND Student_Percentage = 75;
Risultato:
C'è un solo record nella tabella degli studenti con sesso come "maschio", la città natale come "Lucknow" e la percentuale di studenti dovrebbe essere "75". L'età di uno studente può essere 23 o diversa da 23.
Esempio 4:
mysql> SELECT *FROM students WHERE Student_Gender = "Male" OR Student_HomeTown = "Lucknow" AND Student_Age = 23 OR Student_Percentage = 75;
Risultato:
Nella tabella degli studenti, ci sono tre record che hanno il sesso come "maschio" e l'età come "23". La città natale può essere o meno "Lucknow". Inoltre, la percentuale può essere o meno "75".