SQL conosciamolo!

 Tipi di database

  • Grafo
  • Documentali
  • Key-value
     
  • RDBMS

Relazionali

Non Relazionali

 Che cosa è SQL?

SQL (Structured Query Language)

 

è il linguaggio di interrogazione più diffuso tra quelli usati per l’interazione con i principali Database Management Systems (DBMS)

 

Esistono alcuni "dialetti" per alcune tipologia di DB (T-SQL per SQL server ; HANA-SQL per SAP-HANA ..)

Concetti basi: Tabelle

Le tabelle sono la rappresentazione delle entità concrete.

Dipendente

Fattura

Appuntamento

Paziente

Visita

sono composte da attributi che le descrivono

Ogni riga (tupla) di una tabella è l'insieme dei valori di una tabella

Medico

Accettazoione

Concetti basi: Indici

Chiave primaria

è un insieme di attributi che permette di individuare univocamente un record o tupla in una tabella o relazione.

Indice

è un insieme di attributi che permettono di ricercare più velocemente i dati all'interno di una tabella

Chiave esterna

è un insieme di attributi che permettono di relazionare una o più tabelle tra di loro

Concetti basi: Relazioni

1:1

è una relazione con rapporto 1 ad 1 

1:N

è una relazione con un rapporto 1 a molti 

N:M

è una relazione con un rapporto Molti a Molti

Concetti basi: Diagramma ER

Frecce

identificano relazioni tra tabelle

Icona gialla (grassetto)

chiave primaria che identifica univocamente una riga

Icona rossa (sottolineato)

chiave esterna, identifica i campi che permettono la relazione con l'altra tabella

Icona azzurrina

attributi di tabella

Concetti basi: Relazioni

Query SQL

Risultato

Query

Il risultato di una query è una tabella,

dove le colonne sono i campi indicati nella prima parte della query

Text

Sintassi SQL

Selezione
(le colonne della tabella)

Provenienza

Filtri
(le condizioni e la logica per estrrre ciò che ci serve)

Raggruppamento
(per raggruppare i dati e avere risultati aggregati)

Filtri su raggruppamenti

Sintassi SQL: la proiezione

Nella prima parte della query si specificano i dati che vogliamo vengano visualizzati nel nostro risultato.

 

La dicitura "as" identifica come si deve chiamare la colonna nel risultato

I dati possono anche essere combinazioni di:

 

  - dati semplici (attirbuti contenuti nel database)

  - aggregati (somme, medie, conteggi)

  - condizioni (if-then)

  - complessi (sotto query, funzioni)

Sintassi SQL: provenienza e join

Qui si identificano le tabelle da dove si dovranno prendere i dati o fare i filtri

LE JOIN

Servono per creare le relazioni tra le tabelle: sono quei collegamenti che le relazionano tra di loro.

Le join possono essere esplicite o implicite.

In un DB relazionale, se si usano join esplicite con indici definiti migliori le performance

TIPI di JOIN:

INNER, LEFT, RIGHT

[INNER|LEFT|RIGHT] JOIN <tabella> ON <condizione di aggregazione>

Sintassi SQL: Join

Sintassi SQL: filtri e raggruppamenti

Tutti i filtri e la logica per estrarre i dati avviene principalmente qui.

Si usano:

  - condizioni di AND, OR, NOT

  - operazioni matematiche di =, ≠, >, < , ≤, ≥

  - operatori complessi LIKE, IN

Operatori di raggruppamento ed ordinamento

 

Sono operatori che svolgono azioni sui dati filtrati.

  - Group by: raggruppa secondo alcuni attributi che si elencano

  - Having: filtra i dati secondo la logica di raggruppamento

  - Order by: ordina i dati secondo alcuni attributi che si elencano

Sintassi SQL: alcuni operatori/funzioni

Devono essere usati con GROUP BY

COUNT: Serve per contare le righe

 

SUM: Serve per sommare valori numerici

 

AVG: serve per fare uan media tra i valori numerici

 

IF-THEN: serve per effettuare condizioni per avere "risultati dinamici"

 

 

DISTINCT: costrutto che identifica di selezionare risultati distinti (elimina quelli uguali)

 

REPLACE, SUBSTRING: per manipolare le stringhe

Nexts steps se si vorrà!

UNION

EXTRACT

INTERSECT

SUB-QUERY

SIDE EFFECT

VIEW

STORE PROCEDURE

FUNCTION

TRIGGER

Esercizi

Il nome di tutte le sale di Pisa

SELECT Nome
FROM Sala
WHERE Citta = 'Pisa'

Esercizi

Il titolo dei film di Fellini prodotti dopo il 1960.

SELECT Titolo
FROM Film
WHERE AnnoProduzione > 1960 AND Regista = 'Fellini'

Esercizi

Il regista ed il titolo dei film in cui recitano meno di 6 attori

SELECT Titolo, Regista, COUNT(R.*) as numeroAttori
FROM Film as F
JOIN Recita as R ON R.CodFilm = F.CodFilm
GROUP BY R.CodFilm
HAVING numeroAttori < 6

Esercizi

Il titolo dei film in cui recita Mastroianni

SELECT F.Titolo
FROM Film as F
JOIN Recita as R ON F.CodFilm = R.CodFilm
JOIN Attore as A ON A.CodAttore = R.CodAttore
WHERE R.Nome = 'Mastroianni'

Sql conosciamolo part.1

By Saverio M.

Sql conosciamolo part.1

  • 186