La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Lezione 6 - SQL. Linguaggi per DB Per interagire con le basi di dati occorre un linguaggio Linguaggio SQL (Structured Query Language), linguaggio standardizzato.

Presentazioni simili


Presentazione sul tema: "Lezione 6 - SQL. Linguaggi per DB Per interagire con le basi di dati occorre un linguaggio Linguaggio SQL (Structured Query Language), linguaggio standardizzato."— Transcript della presentazione:

1 Lezione 6 - SQL

2 Linguaggi per DB Per interagire con le basi di dati occorre un linguaggio Linguaggio SQL (Structured Query Language), linguaggio standardizzato per basi dati, progettato per: Creare e modificare schemi di database DDL (Data Definition Language) Inserire, Modificare e gestire dati memorizzati DML (Data Manipulation Language Interrogare i dati memorizzati DQL (Data Query Language) Creare e gestire strumenti di controllo ed accesso ai dati DCL (Data Control Language)

3 Definizione del Problema Supponiamo di avere una base di dati per gestire una struttura ospedaliera Ci occorre un elenco dei nomi e cognomi dei medici Attenzione, vogliamo che chi legga non venga a conoscenza dello stipendio

4 Interrogazioni SQL Dobbiamo Selezionare solo ed esclusivamente i campi che ci interessano di una tabella SELECT campo1, campo2 FROM NomeTabella Il Carattere * permette di selezionare tutti i campi della tabella SELECT * FROM NomeTabella

5 Esempio Ci occorre un elenco dei nomi e cognomi dei medici MatricolaCognomeNomeSpecializzazioneSalario 1RossiMarioCardiologia VerdiAntonio GialliCiroCardiologia BianchiAnna48000

6 Esempio SELECT Cognome, Nome FROM Medici MatricolaCognomeNomeSpecializzazioneSalario 1RossiMarioCardiologia VerdiAntonio GialliCiroCardiologia BianchiAnna48000 CognomeNome RossiMario VerdiAntonio GialliCiro BianchiAnna

7 Più specifici Se vogliamo conoscere i medici che hanno specializzazione in urologia? MatricolaCognomeNomeSpecializzazioneSalario 1RossiMarioCardiologia VerdiAntonioUrologia GialliCiroCardiologia RossiAnnaOrtopedia48000

8 Condizione - Where SELECT Nome, Cognome FROM Medici WHERE Specializzazione = ‘Urologia’ MatricolaCognomeNomeSpecializzazioneSalario 1RossiMarioCardiologia VerdiAntonioUrologia GialliCiroCardiologia RossiAnnaOrtopedia48000 MatricolaCognomeNomeSpecializzazio ne Salario 2VerdiAntonioUrologia45000

9 Operatori AND e OR Siamo interessati ad individuare il salario dei medici con cognome Rossi specializzati in Ortopedia Le condizioni da rispettare sono due: Cognome = Rossi Specializzazione = Ortopedia

10 Operatore AND SELECT Salario FROM Medici WHERE Cognome=‘Rossi’ AND Specializzazione=‘Ortopedia’ MatricolaCognomeNomeSpecializzazioneSalario 1RossiMarioCardiologia VerdiAntonioUrologia GialliCiroCardiologia RossiAnnaOrtopedia48000 Salario 48000

11 Operatore OR Siamo interessati ad individuare il salario dei medici specializzati in Ortopedia oppure Urologia Le condizioni di interesse sono due: Specializzazione = Urologia Specializzazione = Ortopedia

12 Operatore OR SELECT Salario FROM Medici WHERE Specializzazione=‘Urologia’ OR Specializzazione=‘Ortopedia’ MatricolaCognomeNomeSpecializzazioneSalario 1RossiMarioCardilogia VerdiAntonioUrologia GialliCiroCardilogia RossiAnnaOrtopedia48000 Salario

13 Funzioni Count - conta Sum - somma Avg - media Max - massimo Min - minimo

14 Count Restituisce il numero di righe che soddisfano la condizione specificata nella clausola WHERE Es. Vogliamo conoscere il numero dei medici specializzati in Cardiologia

15 Count Vogliamo conoscere il numero dei medici specializzati in Cardiologia SELECT COUNT(*) FROM Medici WHERE Specializzazione = ‘Cardiologia’ MatricolaCognomeNomeSpecializzazioneSalario 1RossiMarioCardiologia VerdiAntonioUrologia GialliCiroCardiologia RossiAnnaOrtopedia

16 Sum Questa funzione somma tutti i valori di una colonna Es. Quanto costano i medici in termini di stipendi?

17 Sum Quanto costano i medici in termini di stipendi? SELECT SUM(Salario) FROM Medici MatricolaCognomeNomeSpecializzazioneSalario 1RossiMarioCardiologia VerdiAntonioUrologia GialliCiroCardiologia RossiAnnaOrtopedia

18 Sum Quanto costano i medici Cardiologi in termini di stipendi? SELECT SUM(Salario) FROM Medici WHERE Specializzazione = ‘Cardiologia’ MatricolaCognomeNomeSpecializzazioneSalario 1RossiMarioCardiologia VerdiAntonioUrologia GialliCiroCardiologia RossiAnnaOrtopedia

19 AVG Calcola la media aritmetica dei valori di una colonna ES. Quant’è la media degli stipendi dei medici? MatricolaCognomeNomeSpecializzazioneSalario 1RossiMarioCardiologia VerdiAntonioUrologia GialliCiroCardiologia RossiAnnaOrtopedia48000

20 AVG Quant’è la media degli stipendi dei medici? SELECT AVG(Salario) FROM Medici MatricolaCognomeNomeSpecializzazioneSalario 1RossiMarioCardiologia VerdiAntonioUrologia GialliCiroCardiologia RossiAnnaOrtopedia

21 AVG Quant’è la media degli stipendi dei medici Cardiologi? SELECT AVG(Salario) FROM Medici WHERE Specializzazione = ‘Cardiologia’ MatricolaCognomeNomeSpecializzazioneSalario 1RossiMarioCardiologia VerdiAntonioUrologia GialliCiroCardiologia RossiAnnaOrtopedia

22 Max Questa funzione calcola il valore massimo di una colonna Es. Vogliamo conoscere l’ammontare dello stipendio maggiore dei medici

23 Max Vogliamo conoscere l’ammontare dello stipendio maggiore dei medici SELECT MAX(Salario) FROM Medici MatricolaCognomeNomeSpecializzazioneSalario 1RossiMarioCardiologia VerdiAntonioUrologia GialliCiroCardiologia RossiAnnaOrtopedia48000

24 Min Questa funzione calcola il valore minimo di una colonna Es. Vogliamo conoscere l’ammontare dello stipendio minimo dei medici

25 Min Vogliamo conoscere l’ammontare dello stipendio minimo dei medici SELECT MIN(Salario) FROM Medici MatricolaCognomeNomeSpecializzazioneSalario 1RossiMarioCardiologia VerdiAntonioUrologia GialliCiroCardiologia RossiAnnaOrtopedia

26 MAX e MIN sui Caratteri Le funzioni di MAX e MIN possono essere utilizzate anche sui caratteri La stringa ‘AAA’ è minore di ‘BB’ Quindi non si opera sul numero dei caratteri, bensì sulle lettere La stringa ‘Maria’ è maggiore di ‘Giovanna’

27 JOIN Il vocabolo join significa unione In SQL si intende unione di tabelle E’ importante perché ci permette di visualizzare dati appartenenti a tabelle diverse

28 Natural Join Il Natural Join è un tipo di operazione che ci permette di correlare due o più tabelle sulla base di valori uguali in attributi contenenti lo stesso tipo di dato Vogliamo un Join delle righe delle due tabelle dove i valori dei campi Proprietario e Patente sono uguali PatenteCognome 154Blu 231Verdi 376Gialli 473Rossi ProprietarioTarga 341ab22ed 473cd352ma 154na659nx 457az649cd

29 Natural Join Vogliamo un Join delle righe delle due tabelle dove i valori dei campi Proprietario e Patente sono uguali SELECT * FROM Persone, Auto WHERE Patente = Proprietario PatenteCognome 154Blu 231Verdi 376Gialli 473Rossi ProprietarioTarga 341ab22ed 473cd352ma 154na659nx 457az649cd

30 Natural Join SELECT * FROM Persone, Auto WHERE Patente = Proprietario PatenteCognomeProprietarioTarga 154Blu154na659nx 473Rossi473cd352ma


Scaricare ppt "Lezione 6 - SQL. Linguaggi per DB Per interagire con le basi di dati occorre un linguaggio Linguaggio SQL (Structured Query Language), linguaggio standardizzato."

Presentazioni simili


Annunci Google