Interrogazione di una base di dati relazionale

Slides:



Advertisements
Presentazioni simili
Interrogazioni Semplici Le operazioni di interrogazione vengono specificate per mezzo dellistruzione select select ListaAttributi from ListaTabelle [where.
Advertisements

TIPI STANDARD DI SQL BOOLEAN Valori: vero, falso CHAR(n)
Principale limitazione di AR e SQL-92: interrogazioni ricorsive
Structured Query Language (SQL) Presentazione 13.1 Informatica Generale (Prof. Luca A. Ludovico)
1 DATA BASE GESTIONE VENDITE. 2 QUERY1 Per ogni Cognome di Rappresentante e Descrizione di Prodotto calcolare la somma delle quantità vendute: Somma (Quantità)
Esercizio zSi vuole realizzare un data warehouse per una azienda che vende mobili allingrosso. zIl data warehouse deve permettere di analizzare i ricavi.
Interrogazione di una base di dati relazionale Algebra relazionale.
Query OQL e XQUERY a confronto
SQL92 e XQuery1.0 a confronto1 SQL92 E XQUERY1.0 A CONFRONTO Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria - Sede di Modena Corso.
1 Misura Derivata: esempio dei biglietti CostoMedioBiglietto (CMB) calcolato come INCASSO/NUM_BIG. SUM AVG Implementazione in Analysis Services 1. Si definisce.
Principale limitazione di AR e SQL-92: interrogazioni ricorsive IMPIEGATO NOMENOMECAPO RossiVerdi NeriVerdi DeSio TucciDeSio DeLucaDeSio Lazio selezionare.
DML – Data Manipulation Language
Esercitazioni del Corso di Sistemi Informativi Marina Mongiello
Esercitazioni del Corso di Sistemi Informativi Marina Mongiello
SCUOLA INTERUNIVERSITARIA SICILIANA DI SPECIALIZZAZIONE PER LINSEGNAMENTO SECONDARIO Classe di Concorso: 42A Massimo Mancino MODULO DIDATTICO - Ambienti.
SQL.
SQL Dati i seguenti schemi relazionali:
Operazioni Relazionali
19/01/2014 Viste. 19/01/2014 Viste Le Viste Logiche o Viste o View possono essere definite come delle tabelle virtuali, i cui dati sono riaggregazioni.
1 Corso di Laurea in Biotecnologie Informatica (Basi di Dati) SQL: Data Manipulation Language (DML) Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi,
Laboratorio di Basi di Dati Introduzione ad Access 2ª Parte.
Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, 1999
Gestione dei Progetti Software 2 (a.a. 2004/05) - Lezione 81 Ricerca e visualizzazione delle informazioni Gestione, ricerca, navigazione: accesso alle.
Basi di dati Università Degli Studi Parthenope di Napoli
SQL: Lezione 7 Nataliya Rassadko
SQL Per la definizione di basi di dati SQL per definire ed amministrare Ogni utente puo definire una base di dati di cui diventa lamministratore potendo.
Memento Chi seguirà il modulo di e-learning?
Esercitazione.
Duplicati Lalgebra relazionale non ammette duplicati, SQL li ammette. Quindi select Città from Persona where Cognome= Rossi estrae una lista di città in.
SELECT STATEMENT Clausola WHERE permette di limitare il numero di record da estrarre SELECT */ [DISTINCT] colonna/ espressione [alias],… FROM table [WHERE.
Viste. Cosè una vista? è possibile creare un subset logico di dati o una combinazione di dati una vista è una tabella logica basata su una tabella o su.
Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, Capitolo 4:SQL 16/10/2002.
Basi di dati Claudia Raibulet
SQL: Structured Query Language
Corso di INFORMATICA anno scolastico 2009/10 Linguaggio SQL OPERATORI INSIEMISTICI IN SQL Siano due tabelle: GiochiSolitari(CodiceGioco, NomeGioco, PrezzoGioco)
Corso di INFORMATICA anno scolastico 2009/10 Linguaggio SQL IDENTIFICATORI di tabelle e attributi: stringhe di lunghezza max 18 caratteri, composte da.
L’algebra relazionale
Gerarchie Ricorsive Una gerarchia ricorsiva deriva dalla presenza di una ricorsione o ciclo (un anello nel caso più semplice) nello schema operazionale.
Basi di Dati e Sistemi Informativi
SQL.
Basi di dati - Modelli e linguaggi di interrogazione- Paolo Atzeni, Stefano Ceri, Stefano Paraboschi, Riccardo Torlone Copyright © The McGraw-Hill.
DATABASE Introduzione
Sistemi Informativi Insieme di “strutture” in grado di acquisire, elaborare, trasmettere ed archiviare informazioni in genere ad uso di un’organizzazione.
Informatica II – Basi di Dati (07/08) – Parte 2 Gianluca Torta Dipartimento di Informatica dell’Università di Torino
SQL Interrogazioni. 2 Interrogazioni in SQL Non esiste un SQL standard (vari dialetti) Formulazione di interrogazioni (query) è parte del Data Manipulation.
SEFOC – SETTORE FORMAZIONE CONTINUA DEL PERSONALE CORSO MYSQL AVANZATO ROBERTO PENNOLINO – CARMELO MASSIMO PRIOLO PALERMO – 07 | 06 | 2011.
Basi di dati I Prof.ssa Rosalba Giugno Prof. Alfredo Pulvirenti SQL :Structured Query Language: SELECT (IV) SQL (Slide tratte in parte da da Atzeni, Ceri,
Basi di Dati Esercitazione SQL 17 Novembre Esercitazione Basi di Dati2 Fornitori (CodiceFornitore, Nome, Indirizzo, Città) Prodotti (CodiceProdotto,
Esercitazione 7.
Le query in SQL Unità didattica sviluppata per l’ITIS “A. Volta” – Classe 5 sez. I Ing Domenico Liguori - Università degli studi di Napoli “Federico.
Il Linguaggio SQL. Le interrogazioni in SQL (continua…) La parte di SQL dedicata alla formulazione di interrogazioni fa parte del DML. SQL esprime le.
SQL, esempi 30/10/2014Basi di dati SQL1. 30/10/2014Basi di dati SQL2 CREATE TABLE, esempi CREATE TABLE corsi( codice numeric NOT NULL PRIMARY KEY, titolo.
Algebra relazionale (III). Esempi di Interrogazioni: 3 Trovare matricola e nome dei capi i cui impiegati guadagnano tutti più di Tutti gli impiegati?
1 Basi di Dati S tructured Q uery L anguage Appunti Matteo Longhi.
Interrogazioni (parte 2)
Interrogazioni Le interrogazioni in SQL sono formulate in modo dichiarativo specificando cioè cosa si vuole ottenere e non come lo si vuole ottenere. L’interrogazione.
Basi di dati I Prof.ssa Rosalba Giugno Prof. Alfredo Pulvirenti SQL :Structured Query Language: SELECT (III) SQL (Slide tratte in parte da da Atzeni, Ceri,
Vincoli Interrelazionali Per i vincoli visti l’inserimento di un valore che li viola viene semplicemente impedito. In caso di vincoli di integrità referenziale,
Raggruppamenti e target list scorretta select padre, avg(f.reddito), p.reddito from persone f join paternita on figlio = nome join persone p on padre =
Lezione 6 - SQL. Linguaggi per DB Per interagire con le basi di dati occorre un linguaggio Linguaggio SQL (Structured Query Language), linguaggio standardizzato.
Interrogazioni Le interrogazioni in SQL sono formulate in modo dichiarativo specificando cioè cosa si vuole ottenere e non come lo si vuole ottenere. L’interrogazione.
Funzionalità del DBMS relazionale l Funzioni per –definizione della base di dati –inserimento / rimozione /aggiornamento di informazioni deve soddisfare.
Approfondimenti SQL.
Basi di Dati e Sistemi Informativi Esercitazione: Il Linguaggio SQL (DDL+DML) Home page del corso:
Linguaggio SQL prima parte Linguaggio SQL prima parte A. Lorenzi, E. Cavalli INFORMATICA PER SISTEMI INFORMATIVI AZIENDALI Copyright © Istituto Italiano.
SQL Linguaggio per l’interrogazione di una base dati.
E. Tinelli SQL come linguaggio di manipolazione dei dati 1 DML – Data Manipulation Language.
Il linguaggio SQL (Structured Query Language) è il linguaggio standard per creare, manipolare e interrogare database relazionali. SQL non è case-sensitive:
Esercizi SQL Group by. CREATE TABLE dipendente (codDip CHAR(8) NOT NULL UNIQUE PRIMARY KEY, cognome CHAR(60) NOT NULL, nome CHAR(60) NOT NULL, stipendio.
Interrogazione di una base di dati relazionale
Transcript della presentazione:

Interrogazione di una base di dati relazionale SQL

SQL (Structured Query Language) Linguagio standard per la definizione, l’interrogazione e la manipolazione di basi di dati relazionali

Terminologia Relazione Table Attributo Column Tupla Row Dominio Data type

Costrutto SELECT select A1, A2,…An from R1, R2,…Rk  where C  dove: R1, R2,…Rk sono nomi (non necessariamente distinti) di relazioni A1, A2,…An sono attributi negli schemi di R1, R2,…Rk C è una condizione

Costrutto SELECT select A1, A2,…An from R1, R2,…Rk  where C ; fornisce una multinsieme (un elemento può comparire più volte) che differisce dalla relazione (insieme) A1,A2,…AnCR1 x R2 x …x Rk solo per le ripetizioni di elementi

select Nome Nome(Cliente) from Cliente; Cliente Nome CodC Comune Rossi C1 Roma C2 Milano Bianchi C3 Verdi C4 select Nome from Cliente; Nome(Cliente) Nome Rossi Bianchi Verdi Nome Rossi Bianchi Verdi

Clausola SELECT (opzione DISTINCT) Nome Rossi Bianchi Verdi Nome Rossi Bianchi Verdi select Nome from Cliente; select distinct Nome from Cliente;

Clausola SELECT (opzione ALIAS) Cognome Codice Residenza Rossi C1 Roma C2 Milano Bianchi C3 Verdi C4 Cliente Nome CodC Comune Rossi C1 Roma C2 Milano Bianchi C3 Verdi C4 select Nome as Cognome,CodC as Codice, Comune as Residenza from Cliente;

Clausola SELECT (opzione *) Cliente Nome CodC Comune Rossi C1 Roma C2 Milano Bianchi C3 Verdi C4 Nome CodC Comune Rossi C1 Roma C2 Milano Bianchi C3 Verdi C4 select * from Cliente;

Clausola FROM (opzione ALIAS) Cliente Nome CodC Comune Rossi C1 Roma C2 Milano Bianchi C3 Verdi C4 Nome Rossi Bianchi Verdi select C.Nome from Cliente C;

Clausola WHERE La condizione nella clausola where è un’espressione booleana (operatori: and, or, not). Vi possono comparire relazioni di: confronto appartenenza insiemistica somiglianza ortografica

Relazioni di confronto select * from Cliente where Comune=‘Milano’ or Comune=‘Napoli’; Dati dei clienti che risiedono a Milano o a Napoli Cliente Nome CodC Comune Rossi C1 Roma C2 Milano Bianchi C3 Verdi C4 Neri C5 Napoli Nome CodC Comune Rossi C2 Milano Neri C5 Napoli

Relazioni di confronto select * from Cliente where Nome=‘Rossi’ and (Comune=‘Milano’ or Comune=‘Napoli’); Dati dei clienti che si chiamano Rossi e risiedono a Milano o a Napoli Cliente Nome CodC Comune Rossi C1 Roma C2 Milano Bianchi C3 Verdi C4 Neri C5 Napoli Nome CodC Comune Rossi C2 Milano

Relazioni di confronto Dati dei clienti che si chiamano Rossi e risiedono a Milano oppure che risiedono a Napoli select * from Cliente where Nome=‘Rossi’ and Comune=‘Milano’ or Comune=‘Napoli’; Cliente Nome CodC Comune Rossi C1 Roma C2 Milano Bianchi C3 Verdi C4 Neri C5 Napoli Nome CodC Comune Rossi C2 Milano Neri C5 Napoli

Relazioni di confronto select Nome, C.CodC, Comune from Cliente C,Ordine O where N-pezzi>100 and C.CodC=O.CodC; Dati dei clienti che hanno ordinato più di 100 pezzi di un articolo Cliente Nome CodC Comune Rossi C1 Roma C2 Milano Bianchi C3 Verdi C4 Nome CodC Comune Rossi C2 Milano Bianchi C3 Roma Verdi C4 Ordine CodC CodA N-pezzi C1 A1 100 C2 A2 200 C3 150 C4 A3

Relazioni di confronto select Nome from Cliente C,Ordine O,Articolo A where C.CodC=O.CodC and O.CodA=A.CodA and Prezzo>3; Nomi dei clienti che hanno ordinato almeno un articolo con prezzo superiore a 3 Cliente Nome CodC Comune Rossi C1 Roma C2 Milano Bianchi C3 Verdi C4 Nome CodC Comune Rossi C1 Roma Verdi C4 Ordine CodC CodA N-pezzi C1 A1 100 C2 A2 200 C3 150 C4 A3 Articolo CodA Tipo Prezzo A1 Piatto 3 A2 Bicchiere 2 A3 Tazza 4

Relazioni di appartenenza insiemistica select * from Cliente where Comune in(‘Milano’,‘Napoli’); Dati dei clienti che risiedono a Milano o a Napoli Cliente Nome CodC Comune Rossi C1 Roma C2 Milano Bianchi C3 Verdi C4 Neri C5 Napoli Nome CodC Comune Rossi C2 Milano Neri C5 Napoli select * from Cliente where Comune=‘Milano’ or Comune=‘Napoli’;

Relazioni di appartenenza insiemistica Dati dei clienti che hanno ordinato più di 100 pezzi di un articolo select * from Cliente where CodC in (select CodC from Ordine where N-pezzi>100); Cliente Nome CodC Comune Rossi C1 Roma C2 Milano Bianchi C3 Verdi C4 Nome CodC Comune Rossi C2 Milano Bianchi C3 Roma Verdi C4 Ordine CodC CodA N-pezzi C1 A1 100 C2 A2 200 C3 150 C4 A3 select Nome, C.CodC, Comune from Cliente C,Ordine O where N-pezzi>100 and C.CodC=O.CodC;

Relazioni di appartenenza insiemistica select Nome from Cliente where CodC in (select CodC from Ordine where CodA in (select CodA from Articolo where Prezzo>3)); Nomi dei clienti che hanno ordinato almeno un articolo con prezzo superiore a 3 Cliente Nome CodC Comune Rossi C1 Roma C2 Milano Bianchi C3 Verdi C4 Nome CodC Comune Rossi C1 Roma Verdi C4 Ordine CodC CodA N-pezzi C1 A1 100 C2 A2 200 C3 150 C4 A3 Articolo CodA Tipo Prezzo A1 Piatto 3 A2 Bicchiere 2 A3 Tazza 4

Relazioni di appartenenza insiemistica select * from Ordine where CodC in (select CodC from Cliente where Nome=‘Rossi) and CodA in (select CodA from Articolo where Tipo=‘Tazza’); Dati degli ordini di tazze effettuati da Rossi Cliente Nome CodC Comune Rossi C1 Roma C2 Milano Bianchi C3 Verdi C4 CodC CodA N-pezzi C1 A3 100 Ordine CodC CodA N-pezzi C1 A1 100 C2 A2 200 C3 150 C4 A3 Articolo CodA Tipo Prezzo A1 Piatto 3 A2 Bicchiere 2 A3 Tazza 4

Relazioni di somiglianza ortografica Dati dei clienti i cui nomi iniziano per ‘B’ select * from Cliente where Nome like ‘B*’; Cliente Nome CodC Comune Rossi C1 Roma C2 Milano Bianchi C3 Verdi C4 Belli C6 Napoli Nome CodC Comune Bianchi C3 Roma Belli C6 Napoli

Funzioni di insieme select count(Nome) from Cliente Numero di clienti i cui nomi iniziano per ‘R’ select count(Nome) from Cliente where Nome like ‘R*’; Cliente Nome CodC Comune Rossi C1 Roma C2 Milano Bianchi C3 Verdi C4 Ricci C7 count(Nome) 3

Funzioni di insieme select count(distinct Nome) from Cliente where Nome like ‘R*’; Numero di nomi di clienti che iniziano per ‘R’ Cliente Nome CodC Comune Rossi C1 Roma C2 Milano Bianchi C3 Verdi C4 Ricci C7 count(distinct Nome) 2

Funzioni di insieme select min(Prezzo), max(Prezzo), avg(Prezzo) from Articolo; Prezzo minimo, massimo e medio degli articoli Articolo CodA Tipo Prezzo A1 Piatto 3 A2 Bicchiere 2 A3 Tazza 4 A4 Caraffa min(Prezzo) max(Prezzo) avg(Prezzo) 2 4 3,25

Funzioni di insieme select * from Articolo where Prezzo in (select max(Prezzo) from Articolo); Dati degli articoli con prezzo massimo Articolo CodA Tipo Prezzo A1 Piatto 3 A2 Bicchiere 2 A3 Tazza 4 Caraffa CodA Tipo Prezzo A3 Tazza 4 Caraffa select * from Articolo where Prezzo = (select max(Prezzo) from Articolo);

Funzioni di insieme select CodC,CodA,sum(N-pezzi) from Ordine group by CodC,CodA; Per ogni cliente e per ogni articolo Il numero complessivo di pezzi dell’articolo ordinati dal cliente Ordine CodC CodA N-pezzi data C1 A1 100 01-DEC-06 C2 A2 200 C3 150 12-DEC-06 C4 A3 17-JAN-07 15-JAN-07 12-JAN-07 20-JAN-07 04-JAN-07 11-JAN-07 CodC CodA sum(N-pezzi) C1 A1 250 C2 A2 200 C3 C4 A3 300 100

Funzioni di insieme select CodC, count(*) from Ordine Per ogni cliente con codice maggiore di C2, numero di ordini per più di 100 pezzi che ha effettuato select CodC, count(*) from Ordine where N-pezzi>100 group by CodC having CodC>’C2’; Ordine CodC CodA N-pezzi data C1 A1 100 01-DEC-06 C2 A2 200 C3 150 12-DEC-06 C4 A3 17-JAN-07 15-JAN-07 12-JAN-07 20-JAN-07 04-JAN-07 11-JAN-07 CodC count(*) C3 1 C4 2

Ordinamento select * from Cliente order by Nome Clienti in ordine alfabetico per nome Cliente Nome CodC Comune Rossi C1 Roma C2 Milano Bianchi C3 Verdi C4 Neri C5 Napoli Nome CodC Comune Bianchi C3 Roma Neri C5 Napoli Rossi C1 C2 Milano Verdi C4

Ordinamento select * from Cliente order by Nome,Comune Clienti in ordine alfabetico per nome e quelli con lo stesso nome ordinati per Comune Cliente Nome CodC Comune Rossi C1 Roma C2 Milano Bianchi C3 Verdi C4 Neri C5 Napoli Nome CodC Comune Bianchi C3 Roma Neri C5 Napoli Rossi C2 Milano C1 Verdi C4

Ordinamento select * from Articolo order by Tipo,Prezzo desc; Articoli in ordine alfabetico per Tipo e quelli con lo stesso Tipo ordinati in ordine decrescente per prezzo select * from Articolo order by Tipo,Prezzo desc; Articolo CodA Tipo Prezzo A1 Piatto 3 A5 2 A6 Bicchiere 1 A4 A2 A3 Tazza 4 Caraffa CodA Tipo Prezzo A2 Bicchiere 2 A6 1 A3 Caraffa 4 A1 Piatto 3 A5 A4 Tazza

Costrutto SELECT select <lista di attributi e funzioni> from <lista di tabelle>  where <condizione>  group by <lista attributi di raggruppamento>  having <condizione di raggruppamento>  order by <lista attributi>

Clausola FROM (opzione ALIAS) select Imp.Cognome, Imp.Stip, Capo.Cognome, Capo.Stip, from Impiegato Imp, Impiegato Capo where Imp.Sup=Capo.I and Imp.Stip>Capo.Stip Quali impiegati guadagnano più del loro superiore Impiegato Cognome I Stip Sup Rossi I1 31 I3 Bianchi I2 28 Verdi 30 I5 Neri I4 35 Bruni 33 - Imp.Cognome Imp.Stip Capo.Cognome Capo.Stip Rossi 31 Verdi 30 Neri 35 Bruni 33