Introduzione alla clausola WHERE

Come tutti sappiamo, SQL (Structured Query Language) è una delle lingue più comunemente utilizzate per i database relazionali (database in cui i record vengono salvati sotto forma di righe e colonne). Nelle query SQL vengono attivate query per colpire il database per eseguire le operazioni desiderate, siano esse operazioni DML (Data Manipulation Language), DDL (Data Definition Language) o DCL (Data Control Language). SQL utilizza alcune clausole come WHERE, GROUP BY, HAVING, ORDER BY che eseguono operazioni specifiche. La clausola WHERE viene utilizzata per applicare condizioni e filtrare i risultati durante il recupero o la manipolazione dei dati dal database. Viene utilizzato con l'istruzione SELECT, UPDATE e DELETE anche la clausola WHERE è facoltativa da utilizzare con esse.

In generale, termini, clausola WHERE,

  • Utilizzato per filtrare le righe in base ai criteri indicati.
  • Limita il numero di righe restituite.
  • Seguita da una condizione logica che restituisce vero o falso.
  • Funziona solo se la condizione menzionata ritorna vera.
  • Può essere utilizzato con le istruzioni SELECT, UPDATE o DELETE.

1. Sintassi con SELECT

SELECT column1, column2, column3… from table_name WHERE condition;

Qui SELEZIONA recupererà tutti i dati di colonna1, colonna2, colonna3 dalla tabella (denominata nome_tabella) e la clausola WHERE applica le condizioni ai dati recuperati dall'istruzione SELECT e le filtra in base alla condizione menzionata nell'istruzione.

2. Sintassi con UPDATE

UPDATE table_name SET column_name = value WHERE condition;

Qui Aggiorna aggiornerà il valore per nome_colonna con condizione condizione fornita.

Gli operatori di confronto e logici possono anche essere usati con la condizione WHERE come e, o, non, LIKE, <, =, ecc.

3. Sintassi con DELETE

DELETE from table_name WHERE condition;

Nella sintassi sopra:

table_nameNome della tabella su cui è necessario eseguire le operazioni.
condizioneSpecifica la condizione del filtro su cui è necessario filtrare i record
column_listNome delle colonne della tabella

Esempi

Considera una tabella degli studenti con colonne e valori diversi menzionati di seguito:

Stu_idStu_nameStu_addressStu_phnoStu_percentage
1RahulAgra955780662585
2ankitDelhi885566447175
3ShailendraNoida721345789692

Scenario 1

Recupera ID studente, nome dello studente, indirizzo e percentuale di tutti quegli studenti che hanno ottenuto un punteggio superiore all'80%.

domanda

SELECT Stu_id, Stu_name, Stu_address from students WHERE Stu_percentage > 80;

Risultato:

Numero di record: 2

Stu_idStu_nameStu_addressStu_percentage
1RahulAgra85
3ShailendraNoida92

Scenario n. 2

Aggiorna la percentuale di Rahul del 2 percento.

domanda

UPDATE students SET Stu_percentage = Stu_percentage+2 WHERE Stu_name ='Rahul';

Risultato:

Righe interessate: 1

Se colpiamo la query per visualizzare i campi aggiornati:

domanda

SELECT * from students WHERE Stu_name ='Rahul';

Risultato:

Numero di record: 1

Stu_idStu_nameStu_addressStu_percentage
1RahulAgra87

Scenario n. 3

Lo studente Ankit ha lasciato la scuola, quindi elimina l'intero record dal tavolo.

domanda

DELETE from students WHERE Stu_name = 'Ankit';

Risultato:

Righe interessate: 1

Per visualizzare lo studente tabella aggiornato:

domanda

SELECT * from students;

Risultato:

Righe interessate: 2

Stu_idStu_nameStu_addressStu_phnoStu_percenta ge
1RahulAgra955780662587
3ShailendraNoida721345789692

Clausola WHERE Operazioni

La clausola WHERE contiene le condizioni in base alle quali vengono filtrati i valori del database. È possibile utilizzare vari operatori con la clausola WHERE. Alcuni di questi sono riportati di seguito nella tabella con un esempio:

S.No.OperatoreDescrizioneEsempio
1.ERestituisce vero se entrambe le condizioni corrispondonoSELEZIONA * dagli studenti DOVE Stu_name = 'Rahul' e Stu_percentage = 85;
2.ORestituisce vero se uno dei

condizioni corrispondenti

SELEZIONA * dagli studenti DOVE Stu_name = 'Rahul' o Stu_name = 'Shalendra';
3.NELIl valore corrisponde a uno dei valori multipli specificatiSELEZIONA * dagli studenti DOVE Stu_city IN ('AGRA', 'NOIDA');
4.NON INIl valore non corrisponde a nessuno dei valori multipli specificatiSELEZIONA * dagli studenti DOVE Stu_city NOT IN ('AGRA', 'NOIDA');
5.=PariSELEZIONA * dagli studenti DOVE

Stu_name = 'Rahul';

6.>Più grande diSELEZIONA * dagli studenti DOVE Stu_percentage> 80;
7.<Meno diSELEZIONA * dagli studenti DOVE Stu_percentage <78;
8.> =Maggiore o uguale aSELEZIONA * dagli studenti DOVE Stu_percenetage> = 70;
9.<=Minore o uguale aSELEZIONA * dagli studenti DOVE Stu_percenetage <= 70;
10.Non uguale aSELEZIONA * dagli studenti DOVE Stu_percentage 75;
11.FRAIl valore si trova tra un certo intervalloSELEZIONA * dagli studenti DOVE

Stu_percentage TRA 70 E 85;

12.PIACEI valori corrispondono a un determinato modello. Utilizzato per eseguire ricerche con caratteri jollySELEZIONA * dagli studenti DOVE Stu_city COME 'AG%';

Nota: c'è una cosa da tenere a mente mentre si lavora con la clausola WHERE è che mentre si specifica la condizione, i valori numerici non vengono citati tra virgolette singole ('') mentre i valori di testo (varchar) devono essere citati in singolo citazioni (' ').

Come funziona la clausola WHERE in SQL?

Sebbene gli esempi sopra mostrino chiaramente come la clausola WHERE viene utilizzata per filtrare i dati in base alla condizione specificata dall'utente e consente l'esecuzione più rapida del codice SQL poiché il numero di record restituiti è limitato dalla condizione. SQL Query Optimizer funziona prima sulla query utilizzando FROM (tabella sulla quale deve essere eseguita l'operazione) per recuperare, eliminare o aggiornare e quindi applicare la clausola WHERE ai risultati.

La clausola WHERE può essere utilizzata solo quando è necessario filtrare i risultati in una singola tabella o unire le tabelle in quanto funziona sui dati delle righe ma quando nel caso delle funzioni di aggregazione, WHERE non può essere utilizzato per applicare condizioni alla query.

Consideriamo lo scenario in cui la clausola WHERE non può essere utilizzata:

Scenario: in una tabella "film", recupera tutti i dettagli dei film che guadagnano più di 10 milioni in particolari anni come (2000, 2010, 2012, ecc.)

Query:

SELECT * from movies GROUP BY Year_released HAVING earnings > 10;

L'esempio precedente utilizza la clausola HAVING anziché WHERE, poiché la clausola WHERE non può essere utilizzata nelle funzioni di aggregazione mentre HAVING può, e questa è anche una delle principali differenze tra la clausola WHERE e HAVING

Conclusione - clausola WHERE di SQL

La spiegazione sopra mostra chiaramente l'uso della clausola WHERE e la sua implementazione per diversi scenari nelle query SQL. Prima di scrivere qualsiasi query, è necessario tenere presente l'uso di ogni clausola e lo scenario in cui tale particolare clausola o parola chiave deve essere utilizzata.

Articoli consigliati

Questa è una guida alla clausola WHERE di SQL. Qui discutiamo l'uso della clausola WHERE e la sua implementazione per diversi scenari. Puoi anche consultare i nostri altri articoli suggeriti:

  1. Tipi di join in SQL
  2. Caratteri jolly in MySQL
  3. Query di inserimento SQL
  4. Chiave esterna in SQL
  5. I 6 migliori tipi di join in MySQL con esempi