Sistemi Informativi Esercitazione di Laboratorio: SQL e Access (1)



Похожие документы
Il linguaggio SQL. è di fatto lo standard tra i linguaggi per la gestione di data base relazionali.

IL MINISTRO DEL LAVORO, DELLA SALUTE E DELLE POLITICHE SOCIALI. di concerto con IL MINISTRO DELL'ECONOMIA E DELLE FINANZE

Join in SQL (primo modo) Informatica. Tabella Dipartimento. Interrogazione 4a. Interrogazione 4b. Interrogazione 4a

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

Obbligo di visto per gli stranieri che entrano in Ucraina. Paese Visto richiesto/non richiesto Nota *

SQL - Funzioni di gruppo

obbligazioni corporate e semi-government (tenute presso il corrispondente estero) emesse prima del 01/01/1999;

ESEMPI DI QUERY SQL. Esempi di Query SQL Michele Batocchi AS 2012/2013 Pagina 1 di 7

KRESTON GV Italy Audit Srl The new brand, the new vision

Avv. Franco Toffoletto. La disciplina delle mansioni. Optime - Grand Hotel et de Milan. 1 luglio 2015

LISTA REFERENTI-PAESE PER LE BORSE DI STUDIO A STUDENTI STRANIERI & IRE. Aggiornamento del 4 giugno 2012

Chiamate verso Italia e UE rete mobile. AFGHANISTAN 0,35 1,69 /min. 2,09 /min. 2,09 /min. 2,39 /min. 1,19 /min. 0,19 /cad.

SQL prima parte D O C E N T E P R O F. A L B E R T O B E L U S S I. Anno accademico 2011/12

Uso delle variabili di alias. SQL slide aggiuntive. Interrogazione 25. Interrogazione 26

2011/ / / / /16 Post laurea. Primo e secondo. Totale secondo. Post laurea. Post laurea. Post laurea. Post laurea.

Informatica. Sintassi. Interrogazioni in SQL. Significato dell interrogazione. Tabella Impiegato. Basi di dati parte 4 SQL

Scuola Secondaria Palmariggi IC Muro Leccese (LE)

SQL/OLAP. Estensioni OLAP in SQL

EUROPEAN DIGITAL LANDSCAPE 2014

Interrogazioni complesse. SQL avanzato 1

2005/ / / / /10 Post laurea. Primo e secondo. Totale secondo. Post laurea. Post laurea. Post laurea. Post laurea.

Istruzioni DML di SQL

1-Stranieri residenti a Torino per cittadinanza e genere

1.Stranieri residenti a Torino per cittadinanza e genere

Adesione all associazione Italiano Semplicemente.

Country by Country Reporting

ALLEGATO 1 alla delibera n. 252/16/CONS

ALLEGATO 1 alla delibera n. 252/16/CONS. Wind Telecomunicazioni S.p.A. Stato dell'offerta Aggiornamento al "05/09/2016"

SQL (STRUCTURED QUERY LANGUAGE)

2007/ / / / /12 Post laurea. Primo e secondo. Totale secondo. Post laurea. Post laurea. Post laurea. Post laurea.

Interrogazioni nidificate, commenti

2008/ / / / /13 Post laurea. Primo e secondo. Totale secondo. Post laurea. Post laurea. Post laurea. Post laurea.

SQL. Structured Query Language

Università degli Studi di Trento ERASMUS+: NUOVE PROSPETTIVE DI INTERNAZIONALIZZAZIONE. Call KEY ACTION 1 International Credit Mobility

Data Management Software. Il linguaggio SQL. Raggruppamenti. Paolo Avallone Sr Consulting IT Specialist DB2, Data Management Marzo 2004

ALLEGATO 1 alla delibera n. 252/16/CONS

Volumi di riferimento

ALLEGATO 1 alla delibera n. 252/16/CONS

GLI OPERATORI DELLA COOPERAZIONE INTERNAZIONALE. Anno 2011

Produzione e crescita

ALLEGATO 1 alla delibera n. 252/16/CONS

DATI CONSORZIATI RAFFRONTO DATI STORICI GENN- SETT 14 VS GENN- SETT 13

Interrogazione della base di dati

ALLEGATO 1 alla delibera n. 252/16/CONS. uropa_usa/

Elenco Bandiere del Mondo

call_your_country_super/ 150,00 50,00

Museo Internazionale della Croce Rossa. Mariagrazia Baccolo Croce Rossa Italiana _ Castiglione delle Stiviere

Utilizzando Microsoft Access. Si crea la tabella Anagrafica degli alunni,le Materie e i voti si mettono alcuni campi

ALLEGATO 1 alla delibera n. 252/16/CONS 150,00 50,00. mesi euro 0,00 mesi 24 euro. Scatto alla risposta. Importo Fonia

Sportello informativo Casa delle Culture Comune di Arezzo Report 3 Bimestre 2013

SQL IL LINGUAGGIO DI INTERROGAZIONE

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

Stranieri e italiani per acquisizione della cittadinanza a Palermo anno 2017

OSSIF WEB. Manuale query builder

Convenzione Servizi di Telefonia Fissa e Trasmissione Dati. Listino prezzi

Corso di Laboratorio di Basi di Dati

Data management a.a Il linguaggio SQL

Il linguaggio SQL: query innestate

INDICATORI ECONOMICI E ANALISI STRATEGICA

Differenze incolmabili nelle strutture per età agiranno come fattori push nei paesi di emigrazione e fattori pull nei paesi di immigrazione

SQL: Structured Query Language. T. Catarci, M. Scannapieco, Corso di Basi di Dati, A.A. 2008/2009, Sapienza Università di Roma

VANTAGGI IMPRESE ESTERE

SQL seconda parte D O C E N T E P R O F. A L B E R T O B E L U S S I. Anno accademico 2012/13

Basi di Dati Corso di Laura in Informatica Umanistica

Basi di dati. Il Linguaggio SQL. K. Donno - Il Linguaggio SQL

Archiviazione elettronica e Gestione della conoscenza Dott. Timur Khoussainov Toffoletto De Luca Tamajo e Soci Studio Legale

DDL, VINCOLI D INTEGRITÁ, AGGIORNAMENTI E VISTE. SQL è più di un semplice linguaggio di interrogazione

N.B. : alcuni Stati dell elenco, grazie a successive convenzioni, potrebbero essere esentati dall obbligo di apostille

Vogliamo creare una anagrafe e poi creare delle query che rispondono a delle domandi. Utilizzando Microsoft Access

Allegato B alla Delibera 96/07/CONS - Telefonia fissa

Sezione Regionale Abruzzo e Molise

Транскрипт:

Sistemi Informativi Esercitazione di Laboratorio: SQL e Access (1) 1 Descrizione della base di dati...1 2 Interrogazioni semplici con SELECT e WHERE...2 2.1 La densità di popolazione in Francia...2 2.2 Il nome e le densità di popolazione dei paesi molto grandi...2 2.3 In quali regioni si trovano paesi piccoli ma ricchi?...2 2.4 Quale di questi è il nome corretto della nazione? Sri Lanka o Ceylon? Persia o Iran?...2 2.5 Quali sono i paesi il cui nome comincia per D?...2 2.6 Trovare i nomi e i PIL delle Nazioni molto popolose...3 2.7 Trovare i nomi e il PIL pro capite per le nazioni molto popolose...3 2.8 Mostrare i nomi e le popolazioni (in milioni) per le nazioni sudamericane...3 2.9 Mostrare le nazioni in cui nome è formato da almeno cinque parole...4 2.10 Mostrare il PIL pro capite di Francia, Germania e Italia...4 2.11 Quali paesi hanno la parola 'United' nel nome?...4 3 Interrogazioni Nidificate...4 3.1 Quali paesi hanno popolazioni maggiori degli Stati Uniti?...4 3.2 Trovare le nazioni delle regioni in cui sono Ucraina e Ungheria...4 3.3 Trovare le nazioni europee con il PIL pro capite maggiore del Regno Unito...5 4 Interrogazioni con SUM, COUNT, MAX, AVG, DISTINCT and ORDER BY...5 4.1 La popolazione totale e il PIL dell'europa...5 4.2 Quante sono le regioni?...5 4.3 Mostra i paesi popolosissimi ordinati per popolazione...6 4.4 Qual'è la popolazione totale del mondo?...6 4.5 Elenca tutte le regioni...6 4.6 Elenca tutte le nazioni che hanno il PIL maggiore dell'intera Africa...6 5 Uso di GROUP BY e HAVING...7 5.1 Elencare le regioni con la loro popolazione ed area totali ordinate per popolazione...7 5.2 Come sopra includendo solamente le regioni il cui nome contiene 'America'...7 5.3 Per ogni regione mostrare il numero di paesi con almeno 10 milioni di abitanti...7 5.4 Elencare le regioni con almeno 100 milioni di abitanti...8 Soluzioni...9 1 Descrizione della base di dati Il file cia.mdb è una base di dati presi dal World Factbook della CIA del 1995. Una versione più aggiornata può essere reperita sul sito http://www.odci.gov. Qualche errore nei dati potrebbe essere stato introdotto durante il loro trasferimento. La base di dati è costituita da una singola relazione di nome CIA con 265 tuple. La prima tupla è relativa ad Afganistan in Asia e l'ultima è relativa allo Zimbabwe in Africa. La relazione ha cinque attributi, e cioè: 1. (nome della nazione) 2. region (macroregione di appartenenza) 3. area (misurata in chilometri quadrati) 4. population (numero di abitanti) 5. gdp (Gross Domestic Product = Prodotto Interno Lordo) Un estratto dalla relazione CIA è il seguente: region area population gdp 'Yemen' 'Middle East' 527970 14728474 23400000000 'Zaire' 'Africa' 2345410 44060636 18800000000 'Zambia' 'Africa' 752610 9445723 7900000000 'Zimbabwe' 'Africa' 390580 11139961 17400000000

2 Interrogazioni semplici con SELECT e WHERE Si ricorda che la struttura di una interrogazione SQL è la seguente: SELECT <target-list> FROM <table-> WHERE condizione Nella target list si usa * (asterisco) per selezionare tutti gli attributi delle tavole specificate nella clausola where. La condizione è una espressione booleana che ogni tupla deve soddisfare per essere inclusa nel risultato. Possono essere usati gli operatori AND, OR, NOT, >, >=, =, <, <= e l'operatore LIKE, che permette di comparare una stringa con caratteri jolly 2.1 La densità di popolazione in Francia densita 106.22664204 8882 2.2 Il nome e le densità di popolazione dei paesi molto grandi Si consideri molto grande un paese con un'area maggiore di cinque milioni di chilometri quadrati. densita Australia 2.3835811808 Brazil 18.883711222 4781 Canada 2.8502552089 9667 China 125.36233015 285 Russia 8.7793460105 4549 United States 28.147339108 8846 3167 2.3 In quali regioni si trovano paesi piccoli ma ricchi? Si consideri piccolo un paese la cui area è minore di 2000 chilometri quadrati. Si consideri ricco un paese il cui PIL è maggiore di cinque miliardi di dollari. Bahrain Hong Kong Mali Mauritius Singapore region Middle East Southeast Asia Africa World Southeast Asia 2.4 Quale di questi è il nome corretto della nazione? Sri Lanka o Ceylon? Persia o Iran? Iran Sri Lanka 2.5 Quali sono i paesi il cui nome comincia per D?

Nota: in Access i caratteri jolly sono diversi rispetto allo standard SQL:? Qualsiasi carattere singolo * Zero o più caratteri # Qualsiasi cifra singola (0 9) [elencocar] Qualsiasi carattere singolo contenuto in elencocar [!elencocar] Qualsiasi carattere singolo non contenuto in elencocar Denmark Djibouti Dominica Dominican Republic 2.6 Trovare i nomi e i PIL delle Nazioni molto popolose Si consideri molto popolosa una nazione con più di 200 milioni di abitanti gdp China 2978800000000. India 1253900000000. Indonesia 619400000000.0 United States 6738400000000. 0 00 2.7 Trovare i nomi e il PIL pro capite per le nazioni molto popolose Si consideri molto popolosa una nazione con più di 200 milioni di abitanti. Si noti che Access richiede che le stringhe contenenti spazi siano chiuse tra parentesi quadre per essere interpretate correttamente. Es.: [pil pro capite] pil pro capite China 2475.9427378 India 1338.8560464 9008 Indonesia 3042.4805015 5498 United States 25542.234939 4618 4364 2.8 Mostrare i nomi e le popolazioni (in milioni) per le nazioni sudamericane In inglese 'Sud America' è 'South America'. popolazione (milioni) Argentina 34.292742 Bolivia 7.896254 Brazil 160.737489 Chile 14.161216 Colombia 36.200251 Ecuador 10.89095 Falkland 0.002317 Islands French Guiana (Islas 0.14527 Guyana 0.723774 Paraguay 5.358198 Peru 24.087372 Suri 0.429544

Uruguay 3.222716 Venezuela 21.004773 2.9 Mostrare le nazioni in cui nome è formato da almeno cinque parole French Southern and Antarctic Lands Heard Island and McDonald Islands Macedonia, The Former Yugoslav Republic of Saint Vincent and the Grenadines South Georgia and the South Sandwich Islands 2.10 Mostrare il PIL pro capite di Francia, Germania e Italia Francia, Germania e Italia in inglese sono rispettivamente France, Germany e Italy. pil pro capite France 18587.430891 Germany 17853.994803 2399 Italy 17144.973934 0148 095 2.11 Quali paesi hanno la parola 'United' nel nome? United Arab Emirates United Kingdom United States 3 Interrogazioni Nidificate 3.1 Quali paesi hanno popolazioni maggiori degli Stati Uniti? In inglese 'Stati Uniti' è 'United States'. China India 3.2 Trovare le nazioni delle regioni in cui sono Ucraina e Ungheria In inglese Ucraina e Ungheria sono rispettivamente 'Ukraine' e 'Hungary'. region Albania Commonwealth of Independent States-European States Armenia Commonwealth of Independent States-European States Azerbaijan Commonwealth of Independent States-European States Belarus Bosnia and Herzegovina

Bulgaria Croatia Czech Republic Hungary Macedonia, The Former Yugoslav Republic Commonwealth of Independent States-European States of Moldova Poland Romania Serbia and Montenegro Slovakia Slovenia Commonwealth of Independent States-European States Ukraine 3.3 Trovare le nazioni europee con il PIL maggiore del Regno Unito In inglese 'Regno Unito' è 'United Kingdom' e 'Europa' è 'Europe'. France Germany 4 Interrogazioni con SUM, COUNT, MAX, AVG, DISTINCT and ORDER BY Gli operatori SUM, COUNT, MAX e AVG possono essere applicati ad attributi numerici per produrre una sola riga nel risultato dell'interrogazione. Queste funzioni sono ancora più utili quando sono usate in congiunzione con la clausola GROUP BY. Per default il risultato di una SELECT può contenere tuple duplicate. Si possono rimuovere i duplicati usando la particella DISTINCT. Il costrutto ORDER BY permette di ordinare il risultato di una SELECT con un particolare criterio. Dev'essere l'ultima riga dell'interrogazione. 4.1 La popolazione totale e il PIL dell'europa In inglese Europa è Europe. pop tot pil tot 393.708823 6584874.9872 4.2 Quante sono le regioni? Nota1: in Access non è legittimo usare il distinct nel costrutto "count (distinct region)". Nota2: in Access, contravvenendo un po' alla filosofia dell'sql, è possibile applicare una interrogazione alla relazione ottenuta da un'altra interrogazione, specificando nella clausola FROM l'identificatore della interrogazione sorgente. Es.: query2 SELECT FROM query1; query1 SELECT WHERE region = 'Africa'; Come si può ottenere il segunete output in SQL-2? Come si può ottenere usando Access?

regioni 15 4.3 Mostra i paesi popolosissimi ordinati per popolazione Si consideri popolosissimo un paese con più di cento milioni di abitanti population China 1203097268 India 936545814 United States 263814032 Indonesia 203583886 Brazil 160737489 Russia 149909089 Pakistan 131541920 Bangladesh 128094948 Japan 125506492 Nigeria 101232251 4.4 Qual'è la popolazione totale del mondo? popolazione 5729533973 4.5 Elenca tutte le regioni region Africa Antarctic Region Arctic Region Asia Central America and the Caribbean Commonwealth of Independent States-Central Asian States Commonwealth of Independent States - European States Europe Middle East North America Oceania South America Southeast Asia World 4.6 Elenca tutte le nazioni che hanno il PIL maggiore dell'intera Africa China Germany

India Japan United States 5 Uso di GROUP BY e HAVING La clausola GROUP BY impone che le funzioni aggregate come SUM o COUNT siano applicate a gruppi di tuple che condividono dei valori. La clausola HAVING permette di filtrare i gruppi definiti dalla GROUP BY. 5.1 Elencare le regioni con la loro popolazione ed area totali ordinate per popolazione region popolazione chilometri Asia 2809426876 32405756 Africa 715369983 26558788 Southeast Asia 522458680 4532682 Europe 393708823 3776586 North America 386302811 21321592 South America 319152866 17818505 Middle East 227395296 6062418 123057096 1166168 Commonwealth of Independent States - European States 78142073 961400 Central America and the Caribbean 67810131 758888 Commonwealth of Independent States-Central Asian States 55466543 3994400 Oceania 28687154 8509527 World 2229118 8787 Arctic Region 326523 2341036 Antarctic Region 0 12331 5.2 Come sopra includendo solamente le regioni il cui nome contiene 'America' region popolazione chilometri North America 386302811 21321592 South America 319152866 17818505 Central America and the Caribben 67810131 758888 5.3 Per ogni regione mostrare il numero di paesi con almeno 10 milioni di abitanti region Expr1001 Africa 19 Asia 11 Central America and the Caribbean 2 Commonwealth of Independent States-Central Asian States 2 Commonwealth of Independent States - European States 2 5 Europe 9 Middle East 6 North America 3

Oceania 1 South America 7 Southeast Asia 8 5.4 Elencare le regioni con almeno 100 milioni di abitanti region Africa Asia Europe Middle East North America South America Southeast Asia

6 Soluzioni Sistemi Informativi Esercitazione di Laboratorio: SQL e Access (1) 2.1 La densità di popolazione in Francia SELECT population/area AS densita WHERE = 'France' 2.2 Il nome e le densità di popolazione dei paesi molto grandi SELECT, population/area AS densita WHERE area > 5000000; 2.3 In quali regioni si trovano paesi piccoli ma ricchi? SELECT, region WHERE (area < 2000) AND (gdp > 5000000000); 2.4 Quale di questi è il nome corretto della nazione? Sri Lanka o Ceylon? Persia o Iran? SELECT WHERE = 'Sri Lanka' or = 'Ceylon' OR = 'Persia' OR = 'Iran'; Sarebbe stato equivalente scrivere: SELECT WHERE IN ('Sri Lanka', 'Ceylon', 'Persia', 'Iran'); 2.5 Quali sono i paesi il cui nome comincia per D? SELECT WHERE LIKE 'D*' (In SQL standard sarebbe stato "WHERE LIKE 'D%'") 2.6 Trovare i nomi e i PIL delle Nazioni molto popolose SELECT, gdp WHERE population > 200000000; 2.7 Trovare i nomi e il PIL pro capite per le nazioni molto popolose SELECT, gdp/population as [pil pro capite] WHERE population>200000000; 2.8 Mostrare i nomi e le popolazioni (in milioni) per le nazioni sudamericane

SELECT, population/1000000 AS [popolazione (milioni)] WHERE region = 'Europe'; 2.9 Mostrare le nazioni in cui nome è formato da almeno cinque parole SELECT WHERE LIKE '* * * * *'; 2.10 Mostrare il PIL pro capite di Francia, Germania e Italia SELECT, gdp/population AS [pil pro capite] WHERE in ('France', 'Germany', 'Italy'); 2.11 Quali paesi hanno la parola 'United' nel nome? SELECT WHERE LIKE '*United*'; In SQL standard sarebbe stato: SELECT WHERE LIKE 'United%'; 3.1 Quali paesi hanno popolazioni maggiori degli Stati Uniti? SELECT WHERE population > ANY ( SELECT population WHERE = 'United States' ); 3.2 Trovare le nazioni delle regioni in cui sono Ucraina e Ungheria SELECT region, WHERE region = ANY ( SELECT region WHERE = 'Ukraine' OR = 'Hungary' ); 3.3 Trovare le nazioni europee con il PIL maggiore del Regno Unito SELECT WHERE region = 'Europe' AND gdp > ANY ( SELECT gdp WHERE = 'United Kingdom' ); 4.1 La popolazione totale e il PIL dell'europa SELECT SUM(population)/1000000 AS [pop tot], SUM(gdp)/1000000 AS [pil tot]

WHERE region = 'Europe'; 4.2 Quante sono le regioni? In SQL standard sarebbe stato: SELECT COUNT(DISTINCT region) In Access non è legittima la costruzione COUNT(DISTINCT region) ma esiste la possibilità di lanciare una query sul risultato di un'altra query. Il problema si può dunque risolevere come segue: query1: SELECT DISTINCT region ; query2: SELECT count(*) FROM query1; 4.3 Mostra i paesi popolosissimi ordinati per popolazione SELECT, population WHERE population > 100000000 ORDER BY population DESC; 4.4 Qual'è la popolazione totale del mondo? SELECT sum(population) AS popolazione ; 4.5 Elenca tutte le regioni SELECT DISTINCT region ; 4.6 Elenca tutte le nazioni che hanno il PIL maggiore dell'intera Africa SELECT WHERE gdp > ANY ( SELECT sum(gdp) WHERE region = 'Africa' ); 5.1 Elencare le regioni con la loro popolazione ed area totali ordinate per popolazione SELECT region, SUM(population) AS popolazione, SUM(area) AS chilometri GROUP BY region ORDER BY SUM(population) DESC; L'interrogazione seguente è analoga: SELECT region, SUM(population) AS popolazione, SUM(area) AS chilometri GROUP BY region ORDER BY 2 DESC; 5.2 Come sopra includendo solamente le regioni il cui nome contiene 'America'

SELECT region, SUM(population) AS popolazione, SUM(area) AS chilometri WHERE region LIKE '*America*' GROUP BY region ORDER BY SUM(population) DESC; La versione seguente è scoraggiata perché usa il costrutto HAVING con una condizione semplice (non aggregata) SELECT region, SUM(population) AS popolazione, SUM(area) AS chilometri GROUP BY region HAVING region LIKE '*America*' ORDER BY SUM(population) DESC; 5.3 Per ogni regione mostrare il numero di paesi con almeno 10 milioni di abitanti SELECT region, COUNT(*) WHERE population >= 10000000 GROUP BY region; 5.4 Elencare le regioni con almeno 100 milioni di abitanti SELECT region GROUP BY region HAVING SUM(population) > 100000000;