Esercitazione 3 SQL.
|
|
|
- Sara Cirillo
- 7 anni fa
- Просмотров:
Транскрипт
1 Esercitazione 3 SQL [email protected]
2 DB Riferimento Consideriamo i seguenti schemi di una base di dati relazionale: MODELLI (cod_modello,nome,versione,cod_fabbrica) VEICOLI (targa,cilindrata,cavalli_fiscali,velocita,posti,data_immatricolazione,cod_ modello,cod_categoria) FABBRICHE (cod_fabbrica,nome,num_modelli_prodotti) CATEGORIE (cod_categoria,nome) PROPRIETARI (codice_fiscale,cognome,nome,indirizzo,citta,provincia,cap) PROPRIETA (targa,codice_fiscale,data_acquisto,data_cessione) Viene data la seguente istanza della base di dati:
3 DB Riferimento Il database ha il seguente schema relazionale:
4 Selezionare nome e codice di tutti i Modelli SELECT nome, cod_modello FROM modelli Rinominare le colonne nome, cod_modello in Nome Modello e Codice Modello SELECT nome AS "Nome Modello", cod_modello AS "Codice Modello" FROM modelli E equivalente a: SELECT nome "Nome Modello", cod_modello "Codice Modello" FROM modelli
5 ES 1 1. Selezionare cognome, nome e indirizzo dei proprietari residenti nella provincia di Pisa 2. Fornire targa, nome e cognome dei proprietari, dei veicoli i cui proprietari risiedono nella provincia di Milano 3. Fornire targa, nome e cognome dei proprietari, dei veicoli i cui proprietari risiedono nella provincia di Torino, trovare solo i veicoli attualmente in possesso
6 Selezionare cognome, nome e indirizzo dei proprietari residenti nella provincia di Pisa: SELECT cognome, nome, indirizzo FROM proprietari WHERE provincia = 'PI ;
7 Fornire targa, nome e cognome dei proprietari, dei veicoli i cui proprietari risiedono nella provincia di Milano: SELECT proprieta.targa, proprietari.nome, proprietari.cognome FROM proprieta, proprietari WHERE proprieta.codice_fiscale = proprietari.codice_fiscale AND proprieta.codice_fiscale IN ( SELECT codice_fiscale FROM proprietari WHERE provincia = 'MI'); Oppure: SELECT proprieta.targa, proprietari.nome, proprietari.cognome FROM proprieta, proprietari WHERE proprieta.codice_fiscale = proprietari.codice_fiscale AND provincia = 'MI'; Oppure: SELECT proprieta.targa, proprietari.nome, proprietari.cognome FROM proprieta INNER JOIN proprietari ON proprieta.codice_fiscale = proprietari.codice_fiscale WHERE proprietari.provincia = 'MI'; Oppure: SELECT targa, nome, cognome FROM proprieta NATURAL JOIN proprietari WHERE provincia = 'MI';
8 Fornire targa, nome e cognome dei proprietari, dei veicoli i cui proprietari risiedono nella provincia di Torino, trovare solo i veicoli attualmente in possesso SELECT proprieta.targa, proprietari.nome, proprietari.cognome FROM proprieta, proprietari WHERE proprieta.codice_fiscale = proprietari.codice_fiscale AND proprieta.data_cessione IS NULL AND proprieta.codice_fiscale IN ( SELECT codice_fiscale FROM proprietari WHERE provincia = TO'); Oppure SELECT targa, nome, cognome FROM proprieta NATURAL JOIN proprietari WHERE data_cessione IS NULL AND provincia = 'TO';
9 ES 2 1. Calcolare il numero dei modelli prodotti da ciascuna fabbrica, ma solo per le fabbriche con almeno 2 modelli 2. Visualizzare per ciascun veicolo la targa, il codice e il nome della categoria 3. Visualizzare il nome delle fabbriche che producono il modello PUNTO
10 Calcolare il numero dei modelli prodotti da ciascuna fabbrica, ma solo per le fabbriche con almeno 2 modelli: SELECT cod_fabbrica, COUNT(*) AS Numero modelli FROM modelli GROUP BY cod_fabbrica HAVING COUNT(*) >= 2; Visualizzare per ciascun veicolo la targa, il codice e il nome della categoria: SELECT targa, categorie.cod_categoria, categorie.nome as Nome Categoria FROM veicoli, categorie WHERE veicoli.cod_categoria = categorie.cod_categoria; Oppure SELECT targa, categorie.cod_categoria, categorie.nome as "Nome Categoria" FROM veicoli NATURAL JOIN categorie; Oppure SELECT targa, categorie.cod_categoria, categorie.nome as "Nome Categoria FROM veicoli JOIN categorie ON veicoli.cod_categoria = categorie.cod_categoria;
11 Visualizzare il nome delle fabbriche che producono il modello PUNTO : SELECT fabbriche.nome FROM modelli, fabbriche WHERE modelli.cod_fabbrica = fabbriche.cod_fabbrica AND modelli.nome = 'PUNTO ; Oppure SELECT fabbriche.nome FROM modelli INNER JOIN fabbriche ON modelli.cod_fabbrica = fabbriche.cod_fabbrica WHERE modelli.nome = 'PUNTO ; Così non va bene (nome ambiguo) -> errore SELECT nome FROM modelli INNER JOIN fabbriche ON modelli.cod_fabbrica = fabbriche.cod_fabbrica WHERE modelli.nome = 'PUNTO'; Perché in questo caso il NATURAL JOIN non può essere usato?? Perché tra le relazioni modelli e fabbriche ci sono attributi con lo stesso nome che non sono chiave.
12 ES 3 1. Visualizzare per ogni categoria il numero di veicoli 2. Visualizzare le targhe dei veicoli immatricolati dopo il 1 gennaio Visualizzare le targhe dei veicoli immatricolati nel 2001
13 Visualizzare per ogni categoria il numero di veicoli: SELECT categorie.nome, COUNT(*) AS Numero veicoli FROM veicoli, categorie WHERE veicoli.cod_categoria = categorie.cod_categoria GROUP BY categorie.nome; Oppure SELECT categorie.nome, COUNT(*) AS Numero veicoli FROM veicoli INNER JOIN categorie ON veicoli.cod_categoria = categorie.cod_categoria GROUP BY categorie.nome; Oppure SELECT categorie.nome, COUNT(*) AS "Numero veicoli" FROM veicoli NATURAL JOIN categorie GROUP BY categorie.nome;
14 Visualizzare le targhe dei veicoli immatricolati dopo il 1 gennaio 1995 SELECT targa FROM veicoli WHERE data_immatricolazione > ' ; Visualizzare le targhe dei veicoli immatricolati nel 2001 SELECT targa FROM veicoli WHERE data_immatricolazione < ' ' AND data_immatricolazione > ' ; Oppure SELECT targa FROM veicoli WHERE data_immatricolazione BETWEEN ' AND ' ; Oppure SELECT targa FROM veicoli WHERE YEAR(data_immatricolazione) = 2001;
15 INTERSECT/EXCEPT Selezionare i cognomi dei proprietari che sono anche nomi (di qualche proprietario) SELECT cognome FROM proprietari INTERSECT SELECT nome FROM proprietari Selezionare i nomi dei proprietari che non sono anche cognomi (di qualche proprietario) SELECT nome FROM proprietari EXCEPT SELECT cognome FROM proprietari
16 INTERSECT/EXCEPT in MySQL MySQL non implementa le operazioni INTERSECT/EXCEPT Queste operazioni possono essere comunque implementate usando IN o NOT IN
17 Selezionare i cognomi dei proprietari che sono anche nomi (di qualche proprietario) SELECT distinct cognome FROM proprietari WHERE cognome IN (SELECT nome FROM proprietari); Selezionare i nomi dei proprietari che non sono anche cognomi (di qualche proprietario) SELECT distinct nome FROM proprietari WHERE nome NOT IN (SELECT cognome FROM proprietari);
18 ES 4 1. Selezionare i veicoli la cui targa ha un 2 come quarto carattere 2. Selezionare i veicoli la cui targa inizia o termina con la lettera A 3. Trovare i modelli con cilindrata inferiore a 1400 che non sono prodotti dalla fabbrica con codice Selezionare tutti i veicoli con cilindrata inferiore a tutte le cilindrate dei veicoli con modello 002 (quindi inferiore alla più bassa di queste cilindrate)
19 Selezionare i veicoli la cui targa ha un 2 come quarto carattere: SELECT * FROM veicoli WHERE targa LIKE 2% ; Selezionare i veicoli la cui targa inizia o termina con la lettera A: SELECT * FROM veicoli WHERE targa LIKE 'A%' OR targa LIKE '%A ; NOTA: _ rappresenta un confronto con un carattere arbitrario % rappresenta un confronto con una stringa di lunghezza arbitraria (eventualmente nulla)
20 Trovare i modelli con cilindrata inferiore a 1400 che non sono prodotti dalla fabbrica con codice 001 SELECT cod_modello FROM veicoli WHERE cilindrata < 1400 AND cod_modello <> ALL [NOT IN] (SELECT cod_modello FROM modelli WHERE cod_fabbrica='001'); NOTA: <>ALL è equivalente a NOT IN
21 Selezionare tutti i veicoli con cilindrata inferiore a tutte le cilindrate dei veicoli con modello 002 (quindi inferiore alla più bassa di queste cilindrate) SELECT * FROM veicoli WHERE cilindrata < ALL (SELECT cilindrata FROM veicoli WHERE cod_modello= 002 ); Oppure SELECT * FROM veicoli WHERE cilindrata < (SELECT MIN(cilindrata) FROM veicoli WHERE cod_modello= 002 );
22 ES 5 1. Fornire l elenco dei veicoli del proprietario con codice fiscale RSSBNA71G02A403J' specificando la targa, il nome della categoria ed il nome del modello 2. Fornire l elenco dei veicoli attualmente in possesso del proprietario con codice fiscale 'RSSBNA71G02A403J' specificando la targa, il nome della categoria ed il nome del modello
23 Fornire l elenco dei veicoli del proprietario con codice fiscale RSSBNA71G02A403J' specificando la targa, il nome della categoria ed il nome del modello: SELECT v.targa as Targa, m.nome as Nome Modello, c.nome as Nome categoria FROM veicoli v, modelli m, categorie c WHERE v.cod_modello = m.cod_modello AND v.cod_categoria = c.cod_categoria AND v.targa IN (SELECT targa FROM proprieta WHERE codice_fiscale = 'RSSBNA71G02A403J'); Oppure: SELECT v.targa as Targa, m.nome as Nome Modello, c.nome as Nome Categoria FROM veicoli v INNER JOIN modelli m ON v.cod_modello = m.cod_modello INNER JOIN categorie c ON v.cod_categoria = c.cod_categoria WHERE v.targa IN (SELECT targa FROM proprieta WHERE codice_fiscale = 'RSSBNA71G02A403J');
24 Fornire l elenco dei veicoli attualmente in possesso del proprietario con codice fiscale 'RSSBNA71G02A403J' specificando la targa, il nome della categoria ed il nome del modello SELECT v.targa as Targa, c.nome as Nome Categoria, m.nome as Nome Modello FROM veicoli v, modelli m, categorie c WHERE v.cod_modello = m.cod_modello AND v.cod_categoria = c.cod_categoria AND v.targa IN (SELECT targa FROM proprieta WHERE codice_fiscale = 'RSSBNA71G02A403J' AND data_cessione IS NULL); Oppure: SELECT v.targa as Targa, c.nome as Nome Categoria, m.nome as Nome Modello FROM veicoli v JOIN modelli m ON v.cod_modello = m.cod_modello JOIN categorie c ON v.cod_categoria = c.cod_categoria WHERE v.targa IN (SELECT targa FROM proprieta WHERE codice_fiscale = 'RSSBNA71G02A403J' AND data_cessione IS NULL);
25 ES 6 1. Selezionare i nomi dei modelli che hanno cilindrata maggiore della media 2. Selezionare il codice fiscale di tutti gli attuali possessori di veicoli che hanno un numero di cavalli fiscali maggiore della media 3. Selezionare il nome dei proprietari e la targa dei dei veicoli che hanno avuto due proprietari 4. Trovare i nomi di tutte le categorie per cui è presente almeno un veicolo
26 Selezionare i nomi dei modelli che hanno cilindrata maggiore della media SELECT DISTINCT nome FROM modelli NATURAL JOIN veicoli WHERE cilindrata > (SELECT AVG(cilindrata) FROM veicoli); Oppure: SELECT DISTINCT nome FROM modelli JOIN veicoli USING(cod_modello) WHERE cilindrata > (SELECT AVG(cilindrata) FROM veicoli); Oppure: SELECT DISTINCT nome FROM modelli JOIN veicoli ON modelli.cod_modello=veicoli.cod_modello WHERE cilindrata > (SELECT AVG(cilindrata) FROM veicoli);
27 Selezionare il codice fiscale di tutti gli attuali possessori di veicoli che hanno un numero di cavalli fiscali maggiore della media SELECT codice_fiscale FROM proprieta JOIN veicoli USING(targa) WHERE data_cessione IS NULL AND cavalli_fiscali > (SELECT AVG(cavalli_fiscali) FROM veicoli); Oppure: SELECT codice_fiscale FROM proprieta NATURAL JOIN veicoli WHERE data_cessione IS NULL AND cavalli_fiscali > (SELECT AVG(cavalli_fiscali) FROM veicoli);
28 Selezionare il nome dei proprietari, la targa dei dei veicoli e l inizio e la fine di ciascun periodo di proprietà per i veicoli che hanno avuto due o piu proprietari, ordinati dal primo all ultimo SELECT nome, targa, data_acquisto AS inizio, data_cessione AS fine FROM proprieta NATURAL JOIN proprietari WHERE targa IN (SELECT targa FROM proprieta GROUP BY targa HAVING COUNT(*) >= 2) ORDER BY data_acquisto; Oppure (con exists e passaggio di binding NON VISTO): SELECT nome, targa, data_acquisto AS inizio, data_cessione AS fine FROM proprieta AS pro NATURAL JOIN proprietari AS prop WHERE EXISTS (SELECT * FROM proprieta WHERE targa = pro.targa HAVING COUNT(*) >= 2) ORDER BY data_acquisto;
29 Trovare i nomi di tutte le categorie per cui è presente almeno un veicolo SELECT nome FROM categorie WHERE cod_categoria =ANY (SELECT cod_categoria FROM veicoli); Oppure SELECT nome FROM categorie WHERE cod_categoria IN (SELECT cod_categoria FROM veicoli); Oppure (con exists e passaggio di binding NON VISTO): SELECT nome FROM categorie AS c WHERE EXISTS (SELECT * FROM veicoli AS v WHERE c.cod_categoria = v.cod_categoria );
30 ES 7 1. Recuperare le fabbriche che producono almeno un modello di auto che ha una velocita maggiore di Recuperare il valor medio del numero di passaggi di proprieta per ogni veicolo (subquery nel from o con le viste) 3. Elencare (se esistono) i proprietari che hanno almeno un autoveicolo (cat 01) e un ciclomotore (cat 03) 4. Recuperare il tempo medio dopo cui un veicolo viene venduto
31 Recuperare il nome delle fabbriche che producono almeno un modello di auto che ha una velocita maggiore di 200 SELECT DISTINCT f.nome FROM fabbriche AS f INNER JOIN modelli AS m ON f.cod_fabbrica = m.cod_fabbrica WHERE m.cod_modello IN ( SELECT v.cod_modello FROM veicoli AS v WHERE v.velocita >= 200 ); Oppure (con passaggio di binding ed EXISTS) : SELECT DISTINCT f.nome FROM fabbriche AS f INNER JOIN modelli AS m ON f.cod_fabbrica = m.cod_fabbrica WHERE EXISTS( SELECT * FROM veicoli AS v WHERE m.cod_modello = v.cod_modello AND v.velocita >= 200 );
32 Recuperare il valor medio del numero di passaggi di proprieta per ogni veicolo Soluzione con SELECT nel FROM SELECT AVG(conto.passaggi) FROM ( SELECT v.targa, COUNT(*) AS passaggi FROM veicoli AS v NATURAL JOIN proprieta AS p GROUP BY v.targa ) AS conto Nota: si Può fare con una vista.
33 Elencare (se esistono) i proprietari che hanno almeno un autoveicolo (cat 01) e un ciclomotore (cat 03) SELECT cognome, nome FROM proprietari WHERE codice_fiscale IN (SELECT codice_fiscale FROM veicoli v JOIN proprieta p ON v.targa = p.targa WHERE v.cod_categoria = '01') AND codice_fiscale IN (SELECT codice_fiscale FROM veicoli v JOIN proprieta p ON v.targa = p.targa WHERE v.cod_categoria = '03');
34 Elencare (se esistono) i proprietari che hanno almeno un autoveicolo (cat 01) e un ciclomotore (cat 03) SOLUZIONE CON PASSAGGIO di Binding ed EXISTS NON VISTO a LEZIONE SELECT cognome, nome FROM proprietari AS p WHERE EXISTS( SELECT * FROM veicoli NATURAL JOIN proprieta WHERE p.codice_fiscale = codice_fiscale AND cod_categoria = '01' ) AND EXISTS( SELECT * FROM veicoli NATURAL JOIN proprieta WHERE p.codice_fiscale = codice_fiscale AND cod_categoria = '03' ) ;
35 Recuperare il tempo medio dopo cui ogni modello viene venduto. Mostrare solamente il cod_modello e il numero di giorni SELECT cod_modello, AVG(datefiff(data_cessione, data_acquisto)) AS numero_giorni_proprieta FROM proprieta NATURAL JOIN veicoli WHERE data_cessione IS NOT NULL GROUP BY cod_modello; Oppure (subquery nel FROM): SELECT cod_modello, AVG(numero_giorni_proprieta) FROM veicoli NATURAL JOIN ( SELECT targa, datediff(data_cessione - data_acquisto) AS numero_giorni_proprieta FROM proprieta WHERE data_cessione IS NOT NULL ) AS giorni_vendita GROUP BY cod_modello;
Esercitazione 3 SQL.
Esercitazione 3 SQL [email protected] DB Riferimento Consideriamo i seguenti schemi di una base di dati relazionale: MODELLI (cod_modello,nome,versione,cod_fabbrica) VEICOLI (targa,cilindrata,cavalli_fiscali,velocita,posti,data_immatricolazione,cod_
Basi di Dati. Esercitazione 2: Interrogazioni in SQL. K. Donno - Interrogazioni in SQL
Basi di Dati Esercitazione 2: Interrogazioni in SQL DB di riferimento per esempi Consideriamo i seguenti schemi di una base di dati relazionale: MODELLI (cod_modello,nome,versione,cod_fabbrica) VEICOLI
Basi di Dati. Esercitazione 3: Interrogazioni in SQL. K. Donno - Interrogazioni in SQL
Basi di Dati Esercitazione 3: Interrogazioni in SQL DB di riferimento per esempi Consideriamo i seguenti schemi di una base di dati relazionale: MODELLI(cod_modello, nome, versione, cod_fabbrica) VEICOLI(targa,
Basi di Dati. Esercitazione 1: Interrogazioni in SQL. K. Donno - Interrogazioni in SQL
Basi di Dati Esercitazione 1: Interrogazioni in SQL DB di riferimento per esempi Consideriamo i seguenti schemi di una base di dati relazionale: PremioProduzione, DataAssunzione) Viene data la seguente
Corso di. Basi di Dati I. 11. Esercitazioni in SQL: Altri esercizi
Corso di Basi di Dati 11. Esercitazioni in SQL: Altri esercizi A.A. 2016 2017 Esempio: consideriamo le seguenti tabelle Articoli(Id, Nome, Colore) Fornitori(Id, Nome, Indirizzo) Catalogo(Articolo, Fornitore,
3. Selezionare i nomi dei clienti che iniziano con le lettere P, Q, R, S
Esercitazione di SQL Corso di Basi di Dati 1. Visualizzare i clienti in ordine alfabetico select * order by nomesocietà 2. Visualizzare i clienti che non hanno il fax where fax is null 3. Selezionare i
Business Intelligence
Business Intelligence Esercitazione di Laboratorio N. 1 L esercitazione ha come obiettivo l interrogazione di una base di dati relazionale mediante query SQL su un DBMS Oracle XE. Schema logico della basi
Tipi di sottoquery SQL
Tipi di sottoquery SQL È possibile specificare subquery in numerose posizioni: Con le parole chiave IN e NOT IN. Con operatori di confronto. Con le parole chiave ANY, SOME e ALL. Con le parole chiave EXISTS
Basi di Dati. Esercitazione SQL. Paolo Papotti. 19 maggio 2005
Basi di Dati Esercitazione SQL 19 maggio 2005 Paolo Papotti Considerando la seguente base di dati: Fornitori (CodiceFornitore, Nome, Indirizzo, Città) Prodotti (CodiceProdotto, Nome, Marca, Modello) Catalogo
QL (Query Language) Alice Pavarani
QL (Query Language) Alice Pavarani QL Query Language Linguaggio di interrogazione dei dati, permette di: Interrogare la base di dati per estrarre informazioni Elaborare i dati Il risultato di un interrogazione
SQL: le funzioni di aggregazione
SQL: le funzioni di aggregazione funzioni predefinite che agiscono sui valori contenuti in insiemi di righe della tabella: Conteggi Somme Medie Massimi, minimi Funzione Count La funzione COUNT conta il
Structured Query Language
IL LINGUAGGIO SQL Structured Query Language Contiene sia il DDL sia il DML, quindi consente di: Definire e creare il database Effettuare l inserimento, la cancellazione, l aggiornamento dei record di un
SQL quick reference. piccolo manuale di riferimento dei principali comandi SQL (prof. Claudio Maccherani, Perugia, 2013)
SQL quick reference piccolo manuale di riferimento dei principali comandi SQL (prof. Claudio Maccherani, Perugia, 2013) I tipi dei dati di SQL sono: delimitatori delle costanti: TEXT(n) stringa di caratteri
SQL - Structured Query Language
SQL - Structured Query Language Lab 05 Alessandro Lori Università di Pisa 27 Aprile 2012 Riepilogo esercitazione precedente Operatori insiemistici (UNION, INTERSECT, EXCEPT) Riepilogo esercitazione precedente
ed SQL 10 Novembre 2009
Basi di Dati Esercitazione Algebra Relazionale ed SQL 10 Novembre 2009 Fornitori (CodiceFornitore, Nome, Indirizzo, Città) Prodotti (CodiceProdotto, Nome, Marca, Modello) Catalogo (Fornitore, Prodotto,
Prova Pratica di Informatica, Modulo Basi di dati Appello 23/07/2018
Prova Pratica di Informatica, Modulo Basi di dati Appello 23/07/2018 REGOLE SULLO SVOLGIMENTO DELL ESAME E vietato usare dispositivi elettronici di qualsiasi tipo (smartphone, tablet, portatili) Non è
Basi di Dati: Corso di laboratorio
Basi di Dati: Corso di laboratorio Lezione 3 Raffaella Gentilini 1 / 52 Sommario 1 Il DML di SQL: Interrogazione di una BD 2 / 52 Data Manipulation Language (DML) Istruzioni del DML Le istruzioni del DML
Select From Where...
Select From Where... SELECT Le colonne che saranno mostrate e in che ordine. Calcoli su colonne FROM La tabella o le tabelle usate dall interrogazione WHERE Condizione che deve essere soddisfatta dalle
Interrogazioni complesse. SQL avanzato 1
Interrogazioni complesse SQL avanzato Classificazione delle interrogazioni complesse Query con ordinamento Query con aggregazione Query con raggruppamento Query binarie Query annidate SQL avanzato 2 Esempio
Select Anagrafiche, Movimenti From Descrizione? Where Anagrafiche.Codice=Codice And Cognome=' Bianchi ';
1) Ottenere la descrizione dei movimenti riferiti all'anagrafica con Cognome = ' Bianchi '. Select Anagrafiche, Movimenti From Descrizione? Where Anagrafiche.Codice=Codice And Cognome=' Bianchi '; Ottenere
Linguaggio SQL seconda parte
Linguaggio SQL seconda parte A. Lorenzi, E. Cavalli INFORMATICA PER SISTEMI INFORMATIVI AZIENDALI Copyright Istituto Italiano Edizioni Atlas Le condizioni di ricerca 2 Le condizioni di ricerca Usate nelle
Operatori aggregati: COUNT
Operatori aggregati: COUNT Il numero di figli di select count(*) as NumFigliDi where Padre = '' Paternità Padre Sergio Figlio Olga Filippo Andrea Aldo l operatore aggregato (count) viene applicato al risultato
Interrogazioni Interrogazioni in SQL } L'istruzione base dell'sql per costruire interrogazioni di complessita arbitraria e lo statement SELECT } Sinta
Interrogazioni } L'istruzione base dell'sql per costruire interrogazioni di complessita arbitraria e lo statement SELECT } Sintassi di base: SELECT [DISTINCT ALL] FROM [WHERE
Eprogram ITIS V anno Unità 4 - Il linguaggio SQL
Eprogram ITIS V anno Unità 4 - Il linguaggio SQL Compito in classe proposto Date le seguenti tabelle: scrivi in SQL le seguenti richieste (per facilitare query complesse utilizza le viste): 1. elencare
Basi di Dati: Corso di laboratorio
Basi di Dati: Corso di laboratorio Lezioni 6 7 Raffaella Gentilini 1 / 46 Sommario 1 Subquery (o Interrogazioni Nidificate) Interrogazioni Annidate con Predicati di Confronto Interrogazioni Annidate con
SQL Esercizi DML Blocco 1
SQL Esercizi DML Blocco 1 Si consideri il seguente schema di base di dati che vuole tenere traccia di alcune informazioni riguardanti gli studenti di un'università. Studenti(Matricola, NomeS, CognomeS,
Esempi SQL con Access. Orazio Battaglia
con Access Orazio Battaglia Consideriamo la base di dati in figura. 2 Interrogazione 1: Selezioniamo tutti gli impiegati, vogliamo Cognome, Nome e Posizione SELECT Impiegati.Cognome, Impiegati.Nome, Impiegati.Posizione
SQL - Sottointerrogazioni correlate
SQL - Sottointerrogazioni correlate negli esempi visti ogni subquery viene eseguita una volta per tutte ed il valore (o insieme di valori) è usato nella clausola WHERE della query esterna è possibile definire
Basi di dati I Prova di autovalutazione 30 ottobre 2014
Basi di dati I Prova di autovalutazione 3 ottobre 214 La prova verrà discussa in aula, prevedibilmente giovedì 6 novembre. Si consiglia di svolgerlo simulando l esame, sulla carta e senza ausilio di libri
ESERCITAZIONE 4 Giovedì 13 novembre 2014 (3 ore) SQL
ESERCITAZIONE 4 Giovedì 13 novembre 2014 (3 ore) SQL Testi degli esercizi Si consideri il seguente schema di base di dati. STUDENTE(Matricola, Nome, Cognome, Indirizzo, Città) INSEGNANTE(Matricola, Nome,
Interrogare una base di dati: algebra relazionale e SQL. Savino Castagnozzi Giorgio Macauda Michele Meomartino Salvatore Picerno Massimiliano Sartor
Interrogare una base di dati: algebra relazionale e SQL Savino Castagnozzi Giorgio Macauda Michele Meomartino Salvatore Picerno Massimiliano Sartor Contesto didattico Il seguente materiale didattico è
Docente: Alberto Belussi e Carlo Combi. Lezione 4
Laboratorio di Basidi Dati e Web Docente: Alberto Belussi e Carlo Combi Lezione 4 Base di Dati usata negli esercizi (DB dell applicazione web di ateneo) InCorso CorsoStudi (,N) (,N) nomecorsostudi CorsoInFacoltà
Il sistema informativo deve essere di tipo centralizzato e accessibile mediante un computer server installato nella rete locale dell albergo.
PROBLEMA. Un albergo di una grande città intende gestire in modo automatizzato sia le prenotazioni sia i soggiorni e realizzare un database. Ogni cliente viene individuato, tra l altro, con i dati anagrafici,
Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, SQL
Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, 1996-2002 : SQL Operatori aggregati Nelle espressioni della target list possiamo avere anche espressioni che calcolano valori a partire da insiemi
Interrogazioni nidificate
Interrogazioni nidificate Nella clausola where si possono utilizzare valori prodotti da altre istruzioni select utilizzando any (qualsiasi) o all (tutti) insieme agli operatori di confronto Trovare nome,
SELECT s.nome, e.data Studenti s, Esami e WHERE e.materia = 'BD' AND e.voto = 30 AND e.matricola = s.matricola
SQL SELECT s.nome, e.data FROM Studenti s, Esami e WHERE e.materia = 'BD' AND e.voto = 30 AND e.matricola = s.matricola SELECT s.nome As Nome, 2002 - s.annonascita As Eta, 0 As NumeroEsami FROM Studenti
Operatori aggregati. Operatori aggregati. Interrogazioni con raggruppamento. Interrogazioni con raggruppamento
Operatori aggregati In algebra relazionale le espressioni vengono valutate sulle singole tuple in successione. Talvolta però possono essere necessarie informazioni derivabili dall esame di tutte le tuple
Interrogazioni nidificate
Interrogazioni nidificate Trovare nome, cognome e matricola degli studenti che non hanno fatto esami select Matricola,Nome,Cognome from studenti where matricola all (select studente group by studente)
