COUNT, SUM; AND, OR, NOT SQL


Lezione 26 / 33

COUNT, SUM; AND, OR, NOT SQL

Di Leo Sorge


SQL sql

Passeremo velocemente su questa parte, poiché davvero semplice. Avrai comunque modo di eseguire alcune operazioni che ti mostrino in pratica le possibilità di base e ti consentano, se avrai voglia, di fare autonomamente sperimentazioni più ampie con le clausole che vedrai. Inoltre, avrai le basi per cercare autonomamente le altre clausole ed istruzioni offerte dal linguaggio SQL.

 

COUNT, SUM; AND, OR, NOT SQL

 

  • Funzioni e operatori aritmetici

Come qualsiasi linguaggio di programmazione, anche il linguaggio SQL consente di manipolare i dati con funzioni ed operatori aritmetici.

COUNT e SUM le hai già usate in un esempio precedente. Sai, quindi, già che gli operatori aritmetici, come l'addizione, la sottrazione, la moltiplicazione e la divisione, sono clausole dell’istruzione SELECT. 

 

  • Funzioni e operatori logici

Gli operatori logici, come AND, OR e NOT, non li hai usati negli esempi precedenti. Ma, niente paura! In genere, sono clausole dell’istruzione WHERE per filtrare i dati in base a determinate condizioni.

 

UPPER, CONCAT, SUBSTRING; DATEDIFF SQL

 

  • Funzioni per la manipolazione di stringhe

Le funzioni di manipolazione delle stringhe sono molto importanti.
 

SUBSTRING estrae una sottostringa da una stringa. 

REPLACE sostituisce una sottostringa con un'altra. 

CONCAT concatena due o più stringhe in una sola.

UPPER e LOWER convertono una stringa rispettivamente in maiuscolo (uppercase) o minuscolo (lowercase).

LEN calcola la lunghezza (length) di una stringa

TRIM rimuove gli spazi vuoti.

 

  • Funzioni per la manipolazione di date

Anche le date sono importanti in SQL. Le funzioni per la manipolazione delle date consentono di eseguire operazioni su date e ore.
 

DATEPART estrae parti specifiche da una data, come il giorno, il mese o l'anno. 

DATEADD aggiunge un intervallo di tempo, ad esempio un numero di giorni o ore. 

DATEDIFF calcola la differenza tra due date in giorni o ore.

 

A partire dalla tabella ‘agenda’, ipotizziamo di voler fare le seguenti modifiche:
 

- mettere in maiuscolo i contenuti del campo 'giorno', ad es.‘Lunedì’ -> “LUNEDÌ”

- dal campo 'dottore' trasformi il nome proprio nella sola iniziale seguita da un punto, es.  Gregory House -> G. House;

- calcolare la differenza in giorni dal 01-01-2023 e la data dell'appuntamento, e metterla in una nuova colonna di nome 'da 1 gennaio'.

 

-- Per mettere in maiuscolo il campo 'giorno'

 

UPDATE agenda SET giorno = UPPER(giorno);

 

-- Per modificare il campo 'dottore' da ‘Nome Cognome’ in ‘N. Cognome’

 

UPDATE agenda SET dottore = CONCAT(LEFT(dottore, 1), '. ', SUBSTRING_INDEX(dottore, ' ', -1));

 

/*

Per aggiungere una nuova colonna 

con la differenza in giorni dal 01-01-2023

*/

 

ALTER TABLE agenda ADD COLUMN da_1_genn INT;

UPDATE agenda SET da_1_genn = DATEDIFF(data, '2023-01-01');

 

Il risultato finale, visualizzato con la solita SELECT * FROM agenda, sarà il seguente:

 

Essendo partiti dalla tabella ‘agenda’ senza modifiche, la data viene mostrata comprensiva di orario (che non abbiamo aggiornato) e senza il campo orario. Queste modifiche le abbiamo già fatte insieme: sei in grado di ripeterle da solo?

 

Scopri i corsi

Le nostre guide possono essere molto utili per muovere i primi passi nel mondo della programmazione, ma se vuoi iniziare una nuova carriera in ambito digital & tech con il supporto costante dei docenti e tantissime esercitazioni pratiche, ti consigliamo di frequentare uno dei corsi della nostra Hackademy!

Scopri i corsi