Sistemi di Elaborazione delle Informazioni

Documenti analoghi
Sistemi di Elaborazione delle Informazioni

Lezioni di Laboratorio sui Data Base

Structured Query Language

V. Moriggia Modelli di Base Dati. Modelli di Base Dati. a.a. 2001/

QL (Query Language) Alice Pavarani

IL LINGUAGGIO SQL LE BASI

SQL: le funzioni di aggregazione

Linguaggio SQL seconda parte

Select From Where...

Corso sul linguaggio SQL

Structured. Language. Basi di Dati. Introduzione. DDL: Data Definition Language. Tipi di dato. Query. Modifica dei Dati

Caratteristiche dei linguaggi per Database

SISTEMI INFORMATIVI E TELEMEDICINA INFORMATICA MEDICA. 3. Panoramica su SQL Prof. Mauro Giacomini

Manuale Comandi SQL SQL. Sito per esercitarsi (on line) SQL

Basi di Dati: Corso di laboratorio

Basi di Dati: Corso di laboratorio

Interrogazioni semplici

Interrogare una base di dati: algebra relazionale e SQL. Savino Castagnozzi Giorgio Macauda Michele Meomartino Salvatore Picerno Massimiliano Sartor

A.A. 2018/2019. Funzioni di Aggregazione e Raggruppamenti in SQL FONDAMENTI DI INFORMATICA E PROGRAMMAZIONE. Docente Prof. Raffaele Pizzolante

Basi di Dati: Corso di laboratorio

Informatica Grafica. Basi di dati parte 2

Esempi SQL con Access. Orazio Battaglia

<Nome Tabella>.<attributo>

SQL Esercizi DML Blocco 1

Queries su più tabelle

OPERATORI LOGICI: AND, OR, NOT

SELECT s.nome, e.data Studenti s, Esami e WHERE e.materia = 'BD' AND e.voto = 30 AND e.matricola = s.matricola

SELECT s.nome, e.data FROM Studenti s, Esami e WHERE e.materia = 'BD' AND e.voto = 30 AND e.matricola = s.matricola

Basi di Dati: Corso di laboratorio

Basi di dati. Gabriella Trucco

Esempio di database relazionale con l utilizzo del prodotto MySQL

Corso di Basi di Dati

Il formato di base di un interrogazione in SQL è: SELECT R i1.c 1, R i2.c 2,..., R in.c n FROM R 1, R 2,..., R k WHERE F;

4.SQL QUERY. Fare una query significa fare delle ricerche sul nostro database.

Basi di Dati. Concetti Avanzati

BASE DI DATI. Concetti trattati: Funzioni aggregate Raggruppamenti Nidificazione Viste. Informatica Umanistica Università di Pisa

BASI DATI: algebra relazionale INFORMATICA APPLICATA E SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI

Query. Query (Interrogazioni) SQL SQL. Significato dell interrogazione. Sintassi

Il linguaggio SQL - Interrogazioni -

Il linguaggio SQL: raggruppamenti

Operatori aggregati. Un operatore aggregato è una funzione che si applica ad un insieme di tuple di una tabella

Tabelle esempio: Impiegato/Dipartimento

INFORMATICA GENERALE Prof. Alberto Postiglione. Scienze della Comunicazione Università di Salerno. INFORMATICA GENERALE Prof. Alberto Postiglione

Progettazione di Sistemi Informatici

ISBN Titolo CasaEd AnnoEd

E possibile ordinare le righe del risultato di una interrogazione attraverso la clausola order by, a chiusura di una interrogazione.

Laboratorio di Basi di dati Soluzioni della V esercitazione - 23 aprile 2007

Select Anagrafiche, Movimenti From Descrizione? Where Anagrafiche.Codice=Codice And Cognome=' Bianchi ';

Modelli di Base Dati

Operatori aggregati. Operatori aggregati. Interrogazioni con raggruppamento. Interrogazioni con raggruppamento

Laboratorio di. Docenti: Alberto Belussi e Carlo Combi

BASI DATI: algebra relazionale

Il linguaggio SQL: raggruppamenti. Versione elettronica: SQLb-gruppi.pdf

Principi di Progettazione del Software a.a Il linguaggio SQL. Il Linguaggio SQL

Linguaggio SQL. studenti matricola nome cognome citta anno 11 marco bini bologna laura sicuro rimini 1984 esami codice

Il linguaggio SQL: raggruppamenti

Le implementazioni nei vari DBMS relazionali commerciali

PROGETTAZIONE DI DATABASE Linguaggio SQL

Manuale SQL. Manuale SQL - 1 -

Esercitazione query in SQL L esercitazione viene effettuata sul database viaggi e vacanze che prevede il seguente modello E/R:

INFORMATICA GENERALE Prof. Alberto Postiglione. Scienze della Comunicazione Università di Salerno. Raggruppamento. Raggruppamento

Alessandra Raffaetà. Esercizio: Cinema

S.I.T. PER LA VALUTAZIONE E GESTIONE DEL TERRITORIO Corso di Laurea Magistrale in Scienze Ambientali. Alessandra Raffaetà

Linguaggio SQL. Prof. Giuseppe Tandoi

(Lezione SQL 3) Barbara Di Camillo Dipartimento di Ingegneria dell Informazione. Università degli Studi di Padova

Operatori aggregati. Gli operatori di aggregazione NON sono rappresentabili in Algebra Relazionale. conteggio, minimo, massimo, media, somma

SQL quick reference. piccolo manuale di riferimento dei principali comandi SQL (prof. Claudio Maccherani, Perugia, 2013)

INFORMATICA GENERALE Prof. Alberto Postiglione Dipartimento Scienze della Comunicazione Università degli Studi di Salerno

Interrogare una base di dati: Algebra relazionale e SQL. Alessandro Bardine Alessandro Ciaramella Vincenzo Galella Rudy Manganelli

Idoneita Informatica. Sistemi per la gestione di basi di Dati

Esercitazione 2 SQL.

PRODOTTO CARTESIANO Caso Generale

Linguaggio SQL: fondamenti D B M G

Elena Baralis 2007 Politecnico di Torino 1

Prova Pratica di Informatica, Modulo Basi di dati Appello 23/07/2018

Interrogazioni nidificate

Database parte 2. Database azienda

SQL - Sottointerrogazioni

Tipi di sottoquery SQL

Esercizi sul linguaggio SQL e le basi dati relazionali

Prof. Alberto Postiglione Dipartimento di Scienze della Comunicazione Università degli Studi di Salerno

Il sistema informativo deve essere di tipo centralizzato e accessibile mediante un computer server installato nella rete locale dell albergo.

Appunti su SQL. Query Language. Comando Select

SQL. Argomenti della lezione. Join esplicito. Interrogazioni complesse in SQL join esplicito outer join operatori aggregati interrogazioni nidificate

SQL. Il nome sta per Structured Query Language Le interrogazioni SQL sono dichiarative

Basi di dati I Prova di autovalutazione 1 novembre 2016 Soluzioni

Basi di dati - Laboratorio

Basi di Dati: Corso di laboratorio

SQL. Università degli Studi di Salerno. Corso di Laurea in Scienze della Comunicazione Informatica generale (matr. Dispari) Docente: Angela Peduto

MODULO 2. Query normali e parametriche Query di:

Corso di Informatica Medica

DATABASE CLIENTIRAPPRESENTANTI

Archivi e basi di dati - ing. M. Cossentino. Settore. Traccia 1. Traccia 200. Settore non polarizzato

(Lezione SQL 1) Barbara Di Camillo Dipartimento di Ingegneria dell Informazione. Università degli Studi di Padova

APPUNTI DELLA LEZIONE DI DATABASE DEL 26/10/2016 Studenti: Marco D'Amato, Adriano Luigi Piscopello Professore: Mario Bochicchio

SQL [2] Concetti avanzati di SQL. Esempi di interrogazioni

Transcript:

SCUOLA DI MEDICINA E CHIRURGIA Università degli Studi di Napoli Federico II Corso di Sistemi di Elaborazione delle Informazioni Dott. Francesco Rossi a.a. 2017/2018 1

Sesta parte Interrogazione di una base di dati

Modello E/R STOSTIENE STUDENTE N 1 ESAME 1 EFFETTUA N DOCENTE

Modello Relazionale Studente(matricola, nome, cognome, datanascita, nazionalità, media) Esame(id, nomeesame, crediti, voto, studente, docente) Docente(identificativo, nome, cognome, datanascita, nazionalità, dipartimento)

Studente Matricola Nome Cognome Data Nascita Nazione M00031 Mario Bianchi 12/04/1990 Italia 28 media M00033 Marie Le Pen 11/02/1988 Francia 26,5 Esame ID Nomeesame Crediti Voto Studente Docente 001 Matematica 1 5 26 M00031 DOC0001 002 Fisica 1 9 25 M00033 DOC0002 003 Matematica 1 5 28 M00033 DOC0001 004 Fisica 1 9 30 M00031 DOC0002 Docente Identificativo Nome Cognome Data Nascita Nazione Dipartimento DOC0001 Massimo Della Pietra 12/2/1960 Italia Medicina DOC0002 Giulia Volpe 12/03/1977 Italia Fisica DOC0003 Francesco Migliore 03/03/1980 Italia Informatica

Le query Le operazioni di lettura o scrittura di dati da un DB vengono dette query (trad: interrogazioni ) In particolare ci occuperemo di capire come si possono realizzare le operazioni di: selezione, proiezione e join Ma come si fa a specificare le query?

SQL SQL è un linguaggio che permette di specificare le query SQL = Structured Query Language E stato studiato appositamente per essere facilmente comprensibile appare simile al linguaggio naturale ma NON è linguaggio naturale ha un sintassi formale

La proiezione In SQL l operazione per selezionare alcuni valori da tabelle è detta SELECT La parola FROM indica da quali tabelle vogliamo andare a prendere i risultati SELECT [DISTINCT ] att 1,att 2,..,att n FROM tab 1,tab 2,.., tab n

La proiezione In SQL l operazione per selezionare alcuni valori da tabelle è detta SELECT La parola FROM indica da quali tabelle vogliamo andare a prendere i risultati SELECT nome, cognome FROM studente Effettua la proiezione di studenti sugli attributi nome e cognome

Funzioni di aggregazione Le funzioni di aggregazione SQL restituiscono un singolo valore calcolato dai valori di una Colonna AVG() Il valor medio COUNT() il numero di righe FIRST() il primo valore LAST() l ultimo valore MAX() il valore massimo MIN() il valore minimo SUM() la somma

Funzioni scalari Le funzioni scalar SQL restituiscono un singolo valore basato sul valore di input UCASE() Conversione in maiuscolo LCASE() Conversione in minuscolo MID() Estrae caratteri dal testo LEN() la lunghezza del testo ROUND() arrotonda I numeri decimali NOW() restituisce la data corrente FORMAT() formattazione dei campi

La selezione Si utilizza lo stesso costrutto SELECT FROM della proiezione, ma in aggiunta si specifica una clausola WHERE SELECT [DISTINCT ] att 1, att 2,..,att n FROM tab 1, tab 2,.., tab n [ WHERE condizione ]

La selezione Si utilizza lo stesso costrutto SELECT FROM della proiezione, ma in aggiunta si specifica una clausola WHERE SELECT * FROM esame WHERE crediti > 5 Il simbolo * indica di selezionare tutti gli attributi

Selezione e proiezione La combinazione delle due operazioni si ottiene in modo naturale in SQL: SELECT nomeesame FROM esame WHERE crediti > 5 Effettua la selezione degli esami con più di 5 crediti e poi fa la proiezione sull attributo nomeesame

Selezione e proiezione La combinazione delle due operazioni si ottiene in modo naturale in SQL: SELECT nomeesame FROM esame WHERE crediti > 5 Query1 nomeesame Fisica 1 Fisica 1

Prodotto Il prodotto viene calcolato automaticamente quando vengono selezionate più tabelle con la clausola FROM SELECT nome, cognome, nomeesame FROM studente, esame

Prodotto Il prodotto viene calcolato automaticamente quando vengono selezionate più tabelle con la clausola FROM Query1 nome nomeesame SELECT Mario nome, cognome, Bianchi Matematica 1FROM Marie Le Pen Matematica 1 Mariostudente, esame Bianchi Fisica 1 Marie Le Pen Fisica 1 Mario Bianchi Matematica 1 Marie Le Pen Matematica 1 Mario Bianchi Fisica 1 Marie Le Pen Fisica 1

Il join Selezioniamo alcune righe dopo aver fatto il prodotto: SELECT nome, nomeesame FROM docente, esame WHERE docente.identificativo = esame.docente

Operatori della clausola Where Operatore OR NOT Descrizione Restituisce vero se almeno uno dei due operandi è vero, altrimenti falso Restituisce falso se l operando è vero e viceversa AND Restituisce vero se entrambi gli operandi sono veri, altrimenti falso

Operatori della clausola Where Operatore Descrizione = Uguale <> Diverso da > Maggiore < Minore >= Maggiore uguale <= Minore uguale BETWEEN LIKE IN Tra due valori di un range È come un certo valore E in un insieme di possibili valori

Alcuni esempi SELECT nome, cognome, nomeesame FROM docente, esame WHERE docente.identificativo = esame.docente AND nome = Giulia ; Effettua il join tra docenti ed esami e seleziona le righe in cui l attributo nome contiene il valore Anna ed effettua la proiezioni sui valori nome, cognome e nomeesame

Alcuni esempi SELECT nome, cognome, nomeesame FROM docente, esame WHERE docente.identificativo = esame.docente AND nome = Giulia ; Query1 nome cognome nomeesame Giulia Volpe Fisica 1 Giulia Volpe Fisica 1

Alcuni esempi SELECT nomeesame, voto, dipartimento FROM docente, esame WHERE docente.identificativo = esame.docente AND voto IN (26,18,30) AND dipartimento IN ( Medicina, Economia, Fisica ) ; Query1 nomeesame voto dipartimento Matematica 1 26 Medicina

Alcuni esempi SELECT nome, cognome, nomeesame FROM docente, esame WHERE docente.identificativo = esame.docente AND voto BETWEEN 23 AND 27; Query1 nome cognome nomeesame Massimo Della Pietra Matematica 1 Giulia Volpe Fisica 1

Alcuni esempi SELECT nome, cognome, voto FROM docente, esame WHERE docente.identificativo = esame.docente AND voto >= 26 Query1 nome cognome voto Massimo Della Pietra 26 Massimo Della Pietra 28 Giulia Volpe 29

Ordinamento Ordiniamo le righe dopo aver fatto la selezione sul prodotto: SELECT [DISTINCT ] att 1, att 2,..,att n FROM tab 1, tab 2,.., tab n [ WHERE condizione ] [ ORDER BY att 1 ASC DESC,..,att n ASC DESC]

Ordinamento Ordiniamo le righe dopo aver fatto la selezione sul prodotto: SELECT cognome, nome, dipartimento FROM docente, esame WHERE docente.identificativo = esame.docente ORDER BY cognome DESC

Ordinamento Ordiniamo le righe dopo aver fatto la selezione sul prodotto: Query1 cognome nome dipartimento Volpe Giulia Fisica Volpe Giulia Fisica Della Pietra Massimo Medicina Della Pietra Massimo Medicina

Raggruppamento L'operatore GROUP BY serve a raggruppare i risultati di una SELECT in base ad un campo specificato. L'operatore va usato in congiunzione con una funzione statistica SELECT [DISTINCT ] att 1, att 2,..,att n FROM tab 1, tab 2,.., tab n [ WHERE condizione ] [ GROUP BY att 1, att 2,..,att n ] [ ORDER BY att 1 ASC DESC,..,att n ASC DESC]

Raggruppamento L'operatore GROUP BY serve a raggruppare i risultati di una SELECT in base ad un campo specificato. L'operatore va usato in congiunzione con una funzione statistica SELECT nomeesame, AVG(voto) AS Media FROM esame GROUP BY nomeesame ORDER BY nomeesame

Raggruppamento L'operatore GROUP BY serve a raggruppare i risultati di una SELECT in base ad un campo specificato. L'operatore va usato in congiunzione con una funzione statistica Query1 nomeesame Media Fisica 1 27,5 Matematica 1 27

Raggruppamento HAVING è l'equivalente del WHERE applicata ai gruppi di tuple, quindi, deve far riferimento agli attributi di GROUP BY. SELECT [DISTINCT ] att 1, att 2,..,att n FROM tab 1, tab 2,.., tab n [ WHERE condizione ] [ GROUP BY att 1, att 2,..,att n ] [ HAVING condizione ] [ ORDER BY att 1 ASC DESC,..,att n ASC DESC]

Raggruppamento HAVING è l'equivalente del WHERE applicata ai gruppi di tuple, quindi, deve far riferimento agli attributi di GROUP BY. SELECT nomeesame, AVG(voto) FROM esame GROUP BY nomeesame HAVING AVG(voto) > 27 ORDER BY nomeesame

Raggruppamento HAVING è l'equivalente del WHERE applicata ai gruppi di tuple, quindi, deve far riferimento agli attributi di GROUP BY. Query1 nomeesame Media Fisica 1 27,5

La composizione guidata di query Molti applicativi per gestire database rendono disponibili strumenti di supporto alla creazione di query: oggi ne vedremo alcuni Idea: chi è esperto scrive direttamente in SQL (fa prima) chi non è esperto si lascia aiutare dall applicazione: il risultato è comunque una query in SQL

Query sul modello Relazionale Studente Esame Docente nome, cognome e media di tutti gli studenti matricola, nome e cognome degli studenti nati prima del 1/1/1988 nomeesame e crediti di tutti gli esami Nomeesame, crediti e voto degli esami sostenuti dagli studenti italiani Nomeesame, crediti e voto degli esami sostenuti dagli studenti nati dal 1/1/1988 al 1/1/1990 nome e cognome dei docenti del dipartimento di medicina nome, cognome dei docenti del dipartimento di medicina che hanno effettuato l esame di matematica 1 nome studente, matricola e nome docente degli esami con voto = 28