Basi di Dati. Esercitazione 2: Interrogazioni in SQL. K. Donno - Interrogazioni in SQL
|
|
|
- Luciana Moro
- 9 anni fa
- Просмотров:
Транскрипт
1 Basi di Dati Esercitazione 2: Interrogazioni in SQL
2 DB di riferimento per esempi 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)
3
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 Selezionare cognome, nome e indirizzo dei proprietari residenti nella provincia di Pisa: SELECT cognome, nome, indirizzo FROM Proprietari WHERE provincia = 'PI' Fornire le targhe dei veicoli i cui proprietari risiedono nella provincia di Milano: SELECT Proprieta.Targa FROM Proprieta WHERE Proprieta.codice_fiscale IN ( SELECT codice_fiscale FROM Proprietari WHERE provincia = 'MI')
6 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')
7 Partendo dalla query precedente 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 = 'MI')
8 Selezionare targa e cilindrata dei veicoli la cui categoria e diversa da 01: SELECT targa, cilindrata FROM Veicoli WHERE cod_categoria NOT IN ('01') Oppure SELECT targa, cilindrata FROM Veicoli WHERE cod_categoria <> '01'
9 Calcolare il numero dei modelli prodotti da ciascuna fabbrica, ma solo per le fabbriche con almeno 2 modelli: SELECT cod_fabbrica, COUNT(*) "Numero modelli" FROM Modelli GROUP BY cod_fabbrica HAVING COUNT(*) >= 2
10 Visualizzare per ciascun veicolo la targa, il codice e il nome della categoria: SELECT targa, Categorie.cod_categoria, Categorie.nome "Nome Categoria" FROM Veicoli, Categorie WHERE Veicoli.cod_categoria = Categorie.cod_categoria Oppure SELECT targa, Categorie.cod_categoria, Categorie.nome "Nome Categoria" FROM Veicoli NATURAL JOIN Categorie
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'
12 Visualizzare per ogni categoria il numero di veicoli: SELECT Categorie.cod_categoria, COUNT(*) AS "Numero veicoli" FROM Veicoli, Categorie WHERE Veicoli.cod_categoria = Categorie.cod_categoria GROUP BY Categorie.cod_categoria Oppure SELECT Categorie.cod_categoria, COUNT(*) AS "Numero veicoli" FROM Veicoli INNER JOIN Categorie ON Veicoli.cod_categoria = Categorie.cod_categoria GROUP BY Categorie.cod_categoria Oppure SELECT Categorie.cod_categoria, COUNT(*) AS "Numero veicoli" FROM Veicoli NATURAL JOIN Categorie GROUP BY Categorie.cod_categoria
13 Visualizzare le targhe dei veicoli immatricolati dopo il 1 gennaio 1995 SELECT targa FROM Veicoli WHERE data_immatricolazione > ' '
14 Visualizzare le targhe dei veicoli immatricolati nel 2001 SELECT targa FROM Veicoli WHERE EXTRACT (YEAR FROM data_immatricolazione) = 2001 NOTA: EXTRACT (YEAR FROM x): estrae il valore dell'anno da un valore x di tipo DATE
15 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 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 _ rappresenta un confronto con un carattere arbitrario % rappresenta un confronto con una stringa di lunghezza arbitraria (eventualmente nulla) ILIKE (case-insensitive) presente in Postgresql ma non SQL standard
17 JOIN Esplicito: L uso del JOIN Esplicito [INNER JOIN] permette di distinguere le condizioni che compaiono nell interrogazione : condizioni di JOIN condizioni di selezione fra le righe SELECT listaattributi FROM Tabella1 {[INNER] JOIN Tabella2 ON CondDiJoin} [WHERE Altracondizione]
18 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 "Targa", m.nome "Nome Modello", c.nome "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')
19 Fornire l elenco dei veicoli del proprietario con codice fiscale RSSBNA71G02A403J' specificando la targa, il nome della categoria ed il nome del modello JOIN Esplicito: SELECT v.targa "Targa", m.nome "Nome Modello", c.nome "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') NOTA: [INNER] si puo omettere
20 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 "Targa", c.nome "Nome Categoria ", m.nome "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)
21 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 "Targa", c.nome "Nome Categoria ", m.nome "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)
22 Join esterno OUTER JOIN: Il join esterno estende, con valori nulli, le tuple che verrebbero tagliate fuori da un join (interno). Tre versioni: LEFT (sinistro): mantiene tutte le tuple del primo operando, estendendole con valori nulli, se necessario RIGHT (destro): mantiene tutte le tuple del secondo operando FULL (completo): mantiene tutte le tuple di entrambi gli operandi
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_
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 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: Corso di laboratorio
Basi di Dati: Corso di laboratorio Lezione 4 Raffaella Gentilini 1 / 46 Sommario 1 Join di Tabelle Join Naturale Theta Join Join Esterno 2 3 Funzioni d aggregazione La Clausola GROUP BY La Clausola HAVING
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
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
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
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
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
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
Basi di Dati Corso di Laura in Informatica Umanistica
Basi di Dati Corso di Laura in Informatica Umanistica Appello del 26/07/2010 Parte 1: Algebra Relazionale e linguaggio SQL Docente: Giuseppe Amato Sia dato il seguente schema di base di dati per la gestione
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
Esercitazione 3 SQL 2
Esercitazione 3 SQL 2 Basi di dati - prof. Silvio Salza - a.a. 2014-2015 E3-1 Schema della base di dati Persone (Nome, Sesso, Anno, Città) Discendenza (Genitore, Figlio) Stato (Città, Inizio, Fine, Stato)
Left Join, Right Join, Full Join
Left Join, Right Join, Full Join Consideriamo il solito schema di database dell'ultima verifica. Ipotizziamo inoltre che tra le due relazioni sia impostato un vincolo di Integrità Referenziale. Modello
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,
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,
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 è
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
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: Corso di laboratorio
Basi di Dati: Corso di laboratorio Lezione 5 Raffaella Gentilini 1 / 22 Sommario 1 Gruppi 2 / 22 Raggruppamenti Gruppi Quanto sinora visto permette di estrarre dal DB informazioni che si riferiscono a
SQLite. 2018/ Laboratorio 8. Massimo Lauria
SQLite Informatica@SEFA 208/209 - Laboratorio 8 Massimo Lauria http://massimolauria.net/courses/infosefa208/ Lunedì, 0 Dicembre 208 SQLite 2 SQLite Gestisce una base di dati
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
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,
Linguaggio SQL: fondamenti D B M G
Linguaggio SQL: fondamenti Istruzione SELECT: fondamenti Struttura di base Clausola WHERE Ordinamento del risultato Join Funzioni aggregate Operatore GROUP BY 2 Istruzione SELECT: esempio Trovare il codice
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
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à
SQL e algebra relazionale
SQL e algebra relazionale Il linguaggio SQL consente una maggiore espressività dell algebra relazionale grazie a costrutti che permettono: di definire join più sofisticati di ordinare le righe dei risultati
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
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
SISTEMI INFORMATIVI E TELEMEDICINA INFORMATICA MEDICA. 3. Panoramica su SQL Prof. Mauro Giacomini
SISTEMI INFORMATIVI E TELEMEDICINA INFORMATICA MEDICA 3. Panoramica su SQL Prof. Mauro Giacomini Sommario Introduzione Istruzione SELECT Tipi di Join Subquery Comandi DML Creazione delle tabelle Introduzione
ESERCITAZIONI ACCESS
ESERCITAZIONI ACCESS MS Access 2000 Struttura di riferimento: Studente (Matricola, Cognome, Nome) Esame (Matricola, Materia, Voto, Data) CREARE LE TABELLE IN SQL: Create table STUDENTE ( matricola char(6)
Basi di Dati. S Q L Lezione 4
Basi di Dati S Q L Lezione 4 Antonio Virdis [email protected] Sommario Espressioni condizionali Query nella SELECT Raggruppamento di tuple Condizioni sui gruppi 2 Esercizio 6 (lezione 3) Indicare nome
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
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)
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
SQL [2] Concetti avanzati di SQL. Esempi di interrogazioni
SQL [2] Concetti avanzati di SQL 2 Esempi di interrogazioni 3 Esempi di interrogazioni 4 Esempi di interrogazioni 5 Confronti che coinvolgono NULL NULL può voler dire: valore sconosciuto (esiste ma non
