logo

CLAUSOLE SQL

  • La clausola SQL ci aiuta a recuperare un set o gruppi di record dalla tabella.
  • La clausola SQL ci aiuta a specificare una condizione sulle colonne o sui record di una tabella.

Le diverse clausole disponibili nello Structured Query Language sono le seguenti:

  1. DOVE LA CLAUSOLA
  2. GRUPPO PER CLAUSOLA
  3. AVENTE CLAUSOLA
  4. ORDINE PER CLAUSOLA

Vediamo ogni clausola una per una con un esempio. Utilizzeremo il database MySQL per scrivere le query negli esempi.

1. DOVE CLAUSOLA

Una clausola WHERE in SQL viene utilizzata con la query SELECT, che è uno dei comandi del linguaggio di manipolazione dei dati. Le clausole WHERE possono essere utilizzate per limitare il numero di righe da visualizzare nel set di risultati, generalmente aiuta a filtrare i record. Restituisce solo le query che soddisfano le condizioni specifiche della clausola WHERE. La clausola WHERE viene utilizzata nelle istruzioni SELECT, UPDATE, DELETE, ecc.

Clausola WHERE con query SELECT

Il simbolo asterisco viene utilizzato con una clausola WHERE in una query SELECT per recuperare tutti i valori di colonna per ogni record da una tabella.

Sintassi della clausola where con una query di selezione per recuperare tutti i valori di colonna per ogni record da una tabella:

cos'è Internet
 SELECT * FROM TABLENAME WHERE CONDITION; 

Se in base ai requisiti desideriamo recuperare solo colonne selettive, utilizzeremo la sintassi seguente:

 SELECT COLUMNNAME1, COLUMNNAME2 FROM TABLENAME WHERE CONDITION; 

Consideriamo la tabella dei dipendenti con i seguenti dati:

E_ID Nome Stipendio Città Designazione Data_di_adesione Età
1 Sakshi Kumari 50000 Bombay Responsabile del progetto 2021-06-20 24
2 Tejaswini Naik 75000 Delhi Sistemista 2019-12-24 23
3 Anuja Sharma 40000 Jaipur Manager 2021-08-15 26
4 Anushka Tripathi 90000 Bombay Tester di software 2021-06-13 24
5 Rucha Jagtap 45000 Bangalore Responsabile del progetto 2020-08-09 23
6 Rutuja Deshmukh 60000 Bangalore Manager 2019-07-17 26
7 La voce di Baviskar 55000 Jaipur Sistemista 2021-10-10 24
8 C'è Sheik 45000 Puna Ingegnere del software 2020-09-10 26
9 Swati Kumari 50000 Puna Tester di software 2021-01-01 25
10 Mayuri Patel 60000 Bombay Responsabile del progetto 2020-10-02 24
undici Simran Khanna 45500 Kolhapur risorse umane 2019-01-02 26
12 Shivani Wagh 50500 Delhi Sviluppatore di software 2016-09-10 25
13 Kiran Maheshwari 50000 Nashik risorse umane 2013-12-12 23
14 Tejal Jain 40000 Delhi Responsabile del progetto 2017-11-10 25
quindici Mohini Shah 38000 Puna Sviluppatore di software 2019-03-05 venti

Esempio 1:

Scrivi una query per recuperare tutti i record di un dipendente in cui lo stipendio del dipendente è superiore a 50000.

Domanda:

 mysql> SELECT * FROM employees WHERE Salary > 50000; 

La query precedente visualizzerà tutti i record di un dipendente in cui il suo stipendio è superiore a 50000. Lo stipendio inferiore a 50000 non verrà visualizzato secondo le condizioni.

Otterrai il seguente output:

CLAUSOLE SQL

In base all'output previsto, vengono visualizzati solo i record in cui lo stipendio di un dipendente è superiore a 50000. Nella tabella del dipendente sono presenti sei record che soddisfano la condizione specificata.

Esempio 2:

Scrivere una query per aggiornare il record del dipendente e impostare il nome aggiornato come 'Harshada Sharma' dove il nome della città del dipendente è Jaipur.

Domanda:

 mysql> UPDATE employees SET Name = 'Harshada Sharma' WHERE City = 'Jaipur'; 

CLAUSOLE SQL

La query precedente aggiornerà il nome del dipendente in 'Harshada Sharma', dove la città del dipendente è Jaipur.

Per verificare se i record sono aggiornati o meno, eseguiremo una query di selezione.

 mysql> SELECT * FROM employees; 

CLAUSOLE SQL

Nella tabella del dipendente è presente un solo record in cui la città del dipendente è 'Jaipur'. L'ID del record è 3, che soddisfa la condizione specificata. Pertanto, in base alla condizione specificata, il nome del dipendente con ID dipendente 3 viene ora modificato in 'Harshada Sharma'.

Esempio 3:

Scrivere una query per eliminare il record di un dipendente in cui la data di assunzione del dipendente è '2013-12-12'.

Domanda:

 mysql> DELETE FROM employees WHERE Date_of_Joining = '2013-12-12'; 

CLAUSOLE SQL

La query precedente eliminerà i dettagli del dipendente la cui data di assunzione è '2013-12-12'.

Per verificare i risultati della query precedente, eseguiremo la query di selezione.

 mysql> SELECT *FROM employees; 

CLAUSOLE SQL

Esiste un solo record nella tabella del dipendente in cui la data di assunzione del dipendente è '2013-12-12'. L'ID del record è 13, che soddisfa la condizione specificata. Pertanto, in base alla condizione specificata, il dipendente con ID dipendente 13 viene ora eliminato dalla tabella dei dipendenti.

2. GRUPPO PER CLAUSOLA

La clausola Group By viene utilizzata per organizzare tipi simili di record nei gruppi nello Structured Query Language. La clausola Group by nello Structured Query Language viene utilizzata con l'istruzione Select. La clausola Group by viene inserita dopo la clausola where nell'istruzione SQL. La clausola Group By viene utilizzata specialmente con la funzione aggregata, ovvero max (), min (), avg (), sum (), count () per raggruppare il risultato in base a una o più colonne.

La sintassi della clausola Group By:

 SELECT * FROM TABLENAME GROUP BY COLUMNNAME; 

La sintassi precedente selezionerà tutti i dati o record dalla tabella, ma li organizzerà tutti nei gruppi in base al nome della colonna fornito nella query.

La sintassi della clausola Group By con funzioni aggregate:

 SELECT COLUMNNAME1, Aggregate_FUNCTION (COLUMNNAME) FROM TABLENAME GROUP BY COLUMNNAME; 

Comprendiamo la clausola Group By con l'aiuto di esempi.

Consideriamo la tabella dei dipendenti con i seguenti dati:

E_ID Nome Stipendio Città Designazione Data_di_adesione Età
1 Sakshi Kumari 50000 Bombay Responsabile del progetto 2021-06-20 24
2 Tejaswini Naik 75000 Delhi Sistemista 2019-12-24 23
3 Anuja Sharma 40000 Jaipur Manager 2021-08-15 26
4 Anushka Tripathi 90000 Bombay Tester di software 2021-06-13 24
5 Rucha Jagtap 45000 Bangalore Responsabile del progetto 2020-08-09 23
6 Rutuja Deshmukh 60000 Bangalore Manager 2019-07-17 26
7 La voce di Baviskar 55000 Jaipur Sistemista 2021-10-10 24
8 C'è Sheik 45000 Puna Ingegnere del software 2020-09-10 26
9 Swati Kumari 50000 Puna Tester di software 2021-01-01 25
10 Mayuri Patel 60000 Bombay Responsabile del progetto 2020-10-02 24
undici Simran Khanna 45500 Kolhapur risorse umane 2019-01-02 26
12 Shivani Wagh 50500 Delhi Sviluppatore di software 2016-09-10 25
13 Kiran Maheshwari 50000 Nashik risorse umane 2013-12-12 23
14 Tejal Jain 40000 Delhi Responsabile del progetto 2017-11-10 25
quindici Mohini Shah 38000 Puna Sviluppatore di software 2019-03-05 venti

Esempio 1:

Scrivi una query per visualizzare tutti i record della tabella dipendenti ma raggruppa i risultati in base alla colonna età.

Domanda:

 mysql> SELECT * FROM employees GROUP BY Age; 

La query precedente mostrerà tutti i record della tabella dipendenti ma raggruppati in base alla colonna età.

Otterrai il seguente output:

CLAUSOLE SQL

Esempio 2:

Scrivere una query per visualizzare tutti i record della tabella dipendenti raggruppati per designazione e stipendio.

Domanda:

 mysql> SELECT * FROM employees GROUP BY Salary, Designation; 

La query precedente mostrerà tutti i record della tabella dipendenti ma raggruppati per colonna stipendio e designazione.

Otterrai il seguente output:

CLAUSOLE SQL

Esempi di clausola Group By che utilizza funzioni aggregate

Esempio 1:

Scrivere una query per elencare il numero di dipendenti che lavorano con una particolare designazione e raggruppare i risultati per designazione del dipendente.

Jasmine Davis da bambina

Domanda:

 mysql> SELECT COUNT (E_ID) AS Number_of_Employees, Designation FROM employees GROUP BY Designation; 

La query precedente mostrerà la designazione con il rispettivo numero di dipendenti che lavorano su quella designazione. Tutti questi risultati verranno raggruppati in base alla colonna di designazione.

Otterrai il seguente output:

CLAUSOLE SQL

In base all'output previsto, viene visualizzata la designazione con il rispettivo conteggio dei dipendenti.

Esempio 2:

Scrivi una query per visualizzare la somma dello stipendio di un dipendente in base alla città raggruppata per età del dipendente.

Domanda:

 mysql> SELECT SUM (Salary) AS Salary, City FROM employees GROUP BY City; 

La query di cui sopra calcolerà prima la somma degli stipendi che lavorano in ciascuna città, quindi visualizzerà la somma dello stipendio con il rispettivo stipendio ma raggruppato in base alla colonna dell'età.

Otterrai il seguente output:

CLAUSOLE SQL

In base al rendimento atteso, viene visualizzata la somma dello stipendio del dipendente in base alla città di appartenenza del dipendente. Se due dipendenti appartengono alla stessa città, apparterranno allo stesso gruppo.

3. CLAUSOLA AVENTE:

Quando dobbiamo inserire delle condizioni nella colonna della tabella, utilizziamo la clausola WHERE in SQL. Ma se in quel momento desideriamo utilizzare qualsiasi condizione su una colonna nella clausola Group By, utilizzeremo la clausola HAVING con la clausola Group By per le condizioni della colonna.

Sintassi:

 TABLENAME GROUP BY COLUMNNAME HAVING CONDITION; 

Consideriamo la tabella dei dipendenti con i seguenti dati:

E_ID Nome Stipendio Città Designazione Data_di_adesione Età
1 Sakshi Kumari 50000 Bombay Responsabile del progetto 2021-06-20 24
2 Tejaswini Naik 75000 Delhi Sistemista 2019-12-24 23
3 Anuja Sharma 40000 Jaipur Manager 2021-08-15 26
4 Anushka Tripathi 90000 Bombay Tester di software 2021-06-13 24
5 Rucha Jagtap 45000 Bangalore Responsabile del progetto 2020-08-09 23
6 Rutuja Deshmukh 60000 Bangalore Manager 2019-07-17 26
7 La voce di Baviskar 55000 Jaipur Sistemista 2021-10-10 24
8 C'è Sheik 45000 Puna Ingegnere del software 2020-09-10 26
9 Swati Kumari 50000 Puna Tester di software 2021-01-01 25
10 Mayuri Patel 60000 Bombay Responsabile del progetto 2020-10-02 24
undici Simran Khanna 45500 Kolhapur risorse umane 2019-01-02 26
12 Shivani Wagh 50500 Delhi Sviluppatore di software 2016-09-10 25
13 Kiran Maheshwari 50000 Nashik risorse umane 2013-12-12 23
14 Tejal Jain 40000 Delhi Responsabile del progetto 2017-11-10 25
quindici Mohini Shah 38000 Puna Sviluppatore di software 2019-03-05 venti

Esempio 1:

Scrivere una query per visualizzare il nome dei dipendenti, lo stipendio e la città in cui lo stipendio massimo del dipendente è superiore a 40000 e raggruppare i risultati per designazione.

Domanda:

 mysql> SELECT Name, City, MAX (Salary) AS Salary FROM employees GROUP BY Designation HAVING MAX (Salary) > 40000; 

Otterrai il seguente output:

CLAUSOLE SQL

L'output precedente mostra il nome, lo stipendio e la città di un dipendente in cui lo stipendio del dipendente è maggiore di 40000 raggruppati per designazione. (I dipendenti con una designazione simile vengono inseriti in un gruppo e quelli con un'altra designazione vengono inseriti separatamente).

Esempio 2:

Scrivere una query per visualizzare il nome dei dipendenti e la designazione in cui la somma dello stipendio di un dipendente è maggiore di 45000 e raggruppare i risultati per città.

modello di progettazione del metodo di fabbrica

Domanda:

 mysql> SELECT Name, Designation, SUM (Salary) AS Salary FROM employees GROUP BY City HAVING SUM (Salary) > 45000; 

Otterrai il seguente output:

CLAUSOLE SQL

L'output precedente mostra il nome, la designazione e lo stipendio di un dipendente. La somma degli stipendi è superiore a 45000 raggruppati per città. (I dipendenti con città simili vengono inseriti in un gruppo e quelli con città diverse non simili vengono inseriti separatamente).

4. ORDINE PER CLAUSOLA

Ogni volta che vogliamo ordinare qualcosa in SQL, utilizziamo la clausola ORDER BY. La clausola ORDER BY in SQL ci aiuterà a ordinare i dati in base alla colonna specifica di una tabella. Ciò significa che verranno ordinati tutti i dati memorizzati nella colonna specifica su cui stiamo eseguendo la clausola ORDER BY. I valori della colonna corrispondente verranno visualizzati nella sequenza in cui abbiamo ottenuto i valori nel passaggio precedente.

Come tutti sappiamo, ordinare significa o in ORDINE ASCENDENTE o in ORDINE DICENDENTE. Allo stesso modo, ORDER BY CLAUSE ordina i dati in ordine crescente o decrescente secondo i nostri requisiti. I dati verranno ordinati in ordine crescente ogni volta che Parola chiave ASC viene utilizzato con la clausola ORDER by e il parola chiave DESC ordinerà i record in ordine decrescente.

Per impostazione predefinita, l'ordinamento nell'SQL verrà eseguito utilizzando la clausola ORDER BY in ordine ASCENDING se non abbiamo menzionato l'ordinamento.

Prima di passare all'esempio della clausola ORDER BY per ordinare i record, esamineremo la sintassi, quindi sarà facile per noi esaminare l'esempio.

Sintassi della clausola ORDER BY senza parole chiave asc e desc:

 SELECT COLUMN_NAME1, COLUMN_NAME2 FROM TABLE_NAME ORDER BY COLUMNAME; 

Sintassi della clausola ORDER BY per ordinare in ordine crescente:

 SELECT COLUMN_NAME1, COLUMN_NAME2 FROM TABLE_NAME ORDER BY COLUMN_NAME ASC; 

Sintassi della clausola ORDER BY per ordinare in ordine decrescente:

 SELECT COLUMN_NAME1, COLUMN_NAME2 FROM TABLE_NAME ORDER BY COLUMN_NAME DESC; 

Consideriamo di avere una tabella dei dipendenti con i seguenti dati:

E_ID Nome Stipendio Città Designazione Data_di_adesione Età
1 Sakshi Kumari 50000 Bombay Responsabile del progetto 2021-06-20 24
2 Tejaswini Naik 75000 Delhi Sistemista 2019-12-24 23
3 Anuja Sharma 40000 Jaipur Manager 2021-08-15 26
4 Anushka Tripathi 90000 Bombay Tester di software 2021-06-13 24
5 Rucha Jagtap 45000 Bangalore Responsabile del progetto 2020-08-09 23
6 Rutuja Deshmukh 60000 Bangalore Manager 2019-07-17 26
7 La voce di Baviskar 55000 Jaipur Sistemista 2021-10-10 24
8 C'è Sheik 45000 Puna Ingegnere del software 2020-09-10 26
9 Swati Kumari 50000 Puna Tester di software 2021-01-01 25
10 Mayuri Patel 60000 Bombay Responsabile del progetto 2020-10-02 24
undici Simran Khanna 45500 Kolhapur risorse umane 2019-01-02 26
12 Shivani Wagh 50500 Delhi Sviluppatore di software 2016-09-10 25
13 Kiran Maheshwari 50000 Nashik risorse umane 2013-12-12 23
14 Tejal Jain 40000 Delhi Responsabile del progetto 2017-11-10 25
quindici Mohini Shah 38000 Puna Sviluppatore di software 2019-03-05 venti

Esempio 1:

Scrivere una query per ordinare i record in ordine crescente rispetto alla designazione del dipendente dalla tabella dei dipendenti.

Domanda:

 mysql> SELECT * FROM employees ORDER BY Designation; 

Qui in una query SELECT, viene applicata una clausola ORDER BY sulla colonna 'Designazione' per ordinare i record, ma non abbiamo utilizzato la parola chiave ASC dopo la clausola ORDER BY per ordinare in ordine crescente. Pertanto, per impostazione predefinita, i dati verranno ordinati in ordine crescente se non specifichiamo la parola chiave asc.

Otterrai il seguente output:

CLAUSOLE SQL

In base all'output previsto, i record vengono visualizzati in ordine crescente in base alla designazione del dipendente.

Esempio 2:

Scrivere una query per visualizzare il nome e lo stipendio del dipendente nell'ordine crescente dello stipendio del dipendente dalla tabella dipendenti.

Domanda:

 mysql> SELECT Name, Salary FROM employees ORDER BY Salary ASC; 

Qui in una query SELECT, una clausola ORDER BY viene applicata alla colonna 'Stipendio' per ordinare i record. Abbiamo utilizzato la parola chiave ASC per ordinare lo stipendio del dipendente in ordine crescente.

Otterrai il seguente output:

bash lunghezza della stringa
CLAUSOLE SQL

Tutti i record vengono visualizzati in ordine crescente rispetto allo stipendio del dipendente.

Esempio 3:

Scrivere una query per ordinare i dati in ordine decrescente in base al nome del dipendente archiviato nella tabella impiegati.

Domanda:

 mysql> SELECT * FROM employees ORDER BY Name DESC; 

Qui abbiamo utilizzato la clausola ORDER BY con la query SELECT applicata alla colonna Nome per ordinare i dati. Abbiamo utilizzato la parola chiave DESC dopo la clausola ORDER BY per ordinare i dati in ordine decrescente.

Otterrai il seguente output:

CLAUSOLE SQL

Tutti i record vengono visualizzati in ordine decrescente in base al nome del dipendente.