COME SI CREA UNA TABELLA CON UNA CHIAVE ESTERNA

Slides:



Advertisements
Presentazioni simili
SQL applicato a SQL Server
Advertisements

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à)
1 Misura Derivata: esempio dei biglietti CostoMedioBiglietto (CMB) calcolato come INCASSO/NUM_BIG. SUM AVG Implementazione in Analysis Services 1. Si definisce.
SCUOLA INTERUNIVERSITARIA SICILIANA DI SPECIALIZZAZIONE PER LINSEGNAMENTO SECONDARIO Classe di Concorso: 42A Massimo Mancino MODULO DIDATTICO - Ambienti.
Progettazione ER Un database universitario contiene informazioni riguardanti i professori (identificati dal codice fiscale) e informazioni relative ai.
SQL Dati i seguenti schemi relazionali:
Corso di Informatica (Basi di Dati)
Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, 1999
Basi di dati Università Degli Studi Parthenope di Napoli
SQL: Lezione 7 Nataliya Rassadko
Memento Chi seguirà il modulo di e-learning?
Esercitazione.
SELECT STATEMENT Clausola WHERE permette di limitare il numero di record da estrarre SELECT */ [DISTINCT] colonna/ espressione [alias],… FROM table [WHERE.
Corso di INFORMATICA anno scolastico 2009/10 Linguaggio SQL IDENTIFICATORI di tabelle e attributi: stringhe di lunghezza max 18 caratteri, composte da.
Esercitazione di Basi di Dati
sql: esempi di linguaggio sql nell'implementazione mysql
Basi di Dati e Sistemi Informativi
SQL.
BIOINFO3 - Lezione 51 INSERIMENTO DEI DATI Visto come si creano le tabelle (sinora tristemente vuote), cominciamo ad occuparci di come riempirle con dei.
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.
Database: Personal Library 2°Compito Abilità Informatiche Av. Docente: Prof. A.Marengo Studente: Leonardo Ciriello Matr Università Degli Studi.
© 2015 Giorgio Porcu - Aggiornamennto 28/03/2015 UdA 1A Database Progettazione Fisica G IORGIO P ORCU
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.
Linguaggio SQL. Linguaggi per database La diffusione del modello relazionale ha favorito l’uso prevalente di linguaggi non procedurali: in questo modo.
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.
Basi di dati - Fondamenti
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Progettazione di una base di dati relazionale
Database Accesso Utenti diversi Programmi diversi Modelli di database
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
Secondo Compito: PROGETTAZIONE DI UN DATABASE Claudia Angione
PROGETTAZIONE DATABASE SECONDO COMPITO CAROLINA CASIELLO
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Interrogazione di una base di dati relazionale
Universita’ di Milano Bicocca Corso di Basi di Dati 1 in eLearning C
Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
PROGETTAZIONE CONCETTUALE
Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 3
Progettazione di una base di dati relazionale
Creare tabelle in sql Ripasso!.
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
Corso di Basi di Dati Il Linguaggio SQL
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Progettazione di una base di dati relazionale
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Corso di Basi di Dati Il Linguaggio SQL
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Corso di Basi di Dati Il Linguaggio SQL
Corso di Basi di Dati Il Linguaggio SQL
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Corso di Basi di Dati Il Linguaggio SQL
Progettazione logica: Il modello relazionale
IMPIEGATI IN AZIENDA.
Le QUERY in ACCESS Con QBE
Basi di dati - Fondamenti
Dino Pedreschi Dipartimento di Informatica a.a. 2011– 2012
SQL per la modifica di basi di dati
Structured Query Language
APPUNTI SUL LINGUAGGIO C Esercizi su File e Alberi Binari
Docente: Sabato Bufano
Vincoli di Integrità Non tutte le combinazioni possibili di valori dei domini su cui è definita una relazione sono accettabili. Alcuni attributi possono.
Transcript della presentazione:

COME SI CREA UNA TABELLA CON UNA CHIAVE ESTERNA Esercizi Access COME SI CREA UNA TABELLA CON UNA CHIAVE ESTERNA LEZIONI DI ACCESS - I.T.C.G.T. "G. FALCONE" - ACRI - PROF. GRISOLIA

LEZIONI DI ACCESS - I.T.C.G.T. "G. FALCONE" - ACRI - PROF. GRISOLIA Come operare quando una tabelle deve contenere una chiave esterna? Ad esempio la tabella delle ASSENZE ALUNNI ID_ALUNNI (PK) COGNOME NOME CLASSE SEZIONE N ASSENZE ID_ASSENZE (FK) DATA MOTIVO GIUSTIFICATA (S, N) 1 LEGENDA PK = PRIMARY KEY FK = FOREIGN KEY LEZIONI DI ACCESS - I.T.C.G.T. "G. FALCONE" - ACRI - PROF. GRISOLIA

LEZIONI DI ACCESS - I.T.C.G.T. "G. FALCONE" - ACRI - PROF. GRISOLIA RIASSUMENDO CREATE TABLE ALUNNI (ID_ALUNNI INTEGER NOT NULL, COGNOME CHAR (20), NOME CHAR (20), CLASSE INTEGER, SEZIONE CHAR (3), PRIMARY KEY (ID_ALUNNI)) I campi ID_ALUNNI della tabella ALUNNI e ID_ASSENZEdella tabella ASSENZE devono essere uguali: Stessa natura e stessa lunghezza CREATE TABLE ASSENZE (ID_ASSENZE INTEGER, DATA DATE, MOTIVO CHAR (20), GIUSTIFICATA CHAR (2), FOREIGN KEY (ID_ASSENZE) REFERENCES ALUNNI (ID_ALUNNI)) LEZIONI DI ACCESS - I.T.C.G.T. "G. FALCONE" - ACRI - PROF. GRISOLIA

LEZIONI DI ACCESS - I.T.C.G.T. "G. FALCONE" - ACRI - PROF. GRISOLIA Esercizi Access COME SI "POPOLANO" LE TABELLE LEZIONI DI ACCESS - I.T.C.G.T. "G. FALCONE" - ACRI - PROF. GRISOLIA

LEZIONI DI ACCESS - I.T.C.G.T. "G. FALCONE" - ACRI - PROF. GRISOLIA … la tabella ALUNNI ID_ALUNNI COGNOME NOME CLASSE SEZIONE 1 BIANCHI MARIO AR 2 ROSSI ALDO 3 VERDI FRANCA 4 GIALLI ROSA 5 NERI ROMINA e… la tabella ASSENZE ID_ALUNNI DATA MOTIVO GIUSTIFICATA 1 25/12/2012 MALATTIA SI 28/12/2012 FAMILIARI NO 3 22/12/2012 2 05/01/2013 08/01/2012 SCOLASTICI LEZIONI DI ACCESS - I.T.C.G.T. "G. FALCONE" - ACRI - PROF. GRISOLIA

ALUNNI, DOCENTI e VERIFICHE Esercizi Access "POPOLIAMO" LE TABELLE: ALUNNI, DOCENTI e VERIFICHE LEZIONI DI ACCESS - I.T.C.G.T. "G. FALCONE" - ACRI - PROF. GRISOLIA

LEZIONI DI ACCESS - I.T.C.G.T. "G. FALCONE" - ACRI - PROF. GRISOLIA ID_ALUNNO COGNOME NOME CLASSE SEZIONE 1 BIANCHI MARIO AR 2 ROSSI ALDO 3 VERDI FRANCA 4 GIALLI ROSA 5 NERI ROMINA tabella ALUNNI ID_DOCENTE COGNOME NOME MATERIA 1 CATTEDRA FRANCO ITALIANO 2 DOCENTE SARA STORIA 3 MAESTRO DARIO tabella DOCENTI ID_ALUNNO ID_DOCENTE DATA VOTO TIPO_VERIFICA 1 01/01/2013 6 S 2 5 3 06/01/2013 9 O 10/01/2013 4 07/01/2013 P tabella VERIFICHE LEZIONI DI ACCESS - I.T.C.G.T. "G. FALCONE" - ACRI - PROF. GRISOLIA

Esercizi con una sola TABELLA ACCESS Esercizi con una sola TABELLA 1) segnalare i dati anagrafici degli alunni 2) segnalare gli alunni di una specifica classe 3) segnalare gli alunni raggruppandoli per classe 4) ordinare alfabeticamente i dati degli alunni LEZIONI DI ACCESS - I.T.C.G.T. "G. FALCONE" - ACRI - PROF. GRISOLIA

Segnalare i dati anagrafici degli alunni Primo esercizio … OPERIAMO NEL SEGUENTE MODO: APRIAMO UNA QUERY VUOTA (COME DESCRITTO IN PRECEDENZA) SCRIVIAMO I COMANDI (o clausole) SQL NECESSARI/E (AD ESEMPIO) SELECT ALUNNI.COGNOME, ALUNNI.NOME FROM ALUNNI E SALVIAMO CON UN NOME APPROPRIATO (AD ESEMPIO Cognome e Nome) Segnalare i dati anagrafici degli alunni Clicca per vedere la soluzione SELECT ALUNNI.COGNOME, ALUNNI.NOME FROM ALUNNI Secondo esercizio APRIAMO UNA QUERY VUOTA (COME DESCRITTO IN PRECEDENZA) SCRIVIAMO I COMANDI (o clausole) SQL NECESSARI/E (AD ESEMPIO) SELECT ALUNNI.COGNOME, ALUNNI.NOME FROM ALUNNI WHERE ALUNNI.CLASSE = [INSERISCI CLASSE] AND ALUNNI.SEZIONE = [INSERISCI SEZIONE] E SALVIAMO CON UN NOME APPROPRIATO (AD ESEMPIO Cognome e Nome per classe) Segnalare gli alunni di una specifica classe Clicca per vedere la soluzione SELECT ALUNNI.COGNOME, ALUNNI.NOME FROM ALUNNI WHERE ALUNNI.CLASSE = [INSERISCI CLASSE] AND ALUNNI.SEZIONE = [INSERISCI SEZIONE] LEZIONI DI ACCESS - I.T.C.G.T. "G. FALCONE" - ACRI - PROF. GRISOLIA

Segnalare gli alunni raggruppandoli per classe Terzo esercizio … OPERIAMO NEL SEGUENTE MODO: APRIAMO UNA QUERY VUOTA (COME DESCRITTO IN PRECEDENZA) SCRIVIAMO I COMANDI (o clausole) SQL NECESSARI/E (AD ESEMPIO) SELECT ALUNNI.CLASSE, ALUNNI.SEZIONE, ALUNNI.COGNOME, ALUNNI.NOME FROM ALUNNI GROUP BY ALUNNI.CLASSE, ALUNNI.SEZIONE, ALUNNI.COGNOME, ALUNNI.NOME E SALVIAMO CON UN NOME APPROPRIATO (AD ESEMPIO Raggruppati per Cognome e Nome) Segnalare gli alunni raggruppandoli per classe Clicca per vedere la soluzione SELECT ALUNNI.CLASSE, ALUNNI.SEZIONE, ALUNNI.COGNOME, ALUNNI.NOME FROM ALUNNI GROUP BY ALUNNI.CLASSE, ALUNNI.SEZIONE, ALUNNI.COGNOME, ALUNNI.NOME Quarto esercizio APRIAMO UNA QUERY VUOTA (COME DESCRITTO IN PRECEDENZA) - SCRIVIAMO I COMANDI (o clausole) SQL NECESSARI/E (AD ESEMPIO) SELECT ALUNNI.COGNOME, ALUNNI.NOME FROM ALUNNI ORDER BY ALUNNI.COGNOME, ALUNNI.NOME E SALVIAMO CON UN NOME APPROPRIATO (AD ESEMPIO Ordinati per Cognome e Nome) ordinare alfabeticamente i dati degli alunni Clicca per vedere la soluzione SELECT ALUNNI.COGNOME, ALUNNI.NOME FROM ALUNNI ORDER BY ALUNNI.COGNOME, ALUNNI.NOME LEZIONI DI ACCESS - I.T.C.G.T. "G. FALCONE" - ACRI - PROF. GRISOLIA

Esercizi con due TABELLE ACCESS Esercizi con due TABELLE 1) segnalare (1 sola volta) cognome e nome degli alunni che hanno fatto assenze 2) segnalare gli alunni che hanno giustificato 3) segnalare il cognome e numero delle assenze 4) segnalare gli alunni che hanno fatto assenze in un dato periodo [data inizio] e [data fine] LEZIONI DI ACCESS - I.T.C.G.T. "G. FALCONE" - ACRI - PROF. GRISOLIA

segnalare (1 sola volta) cognome e nome Primo esercizio … OPERIAMO NEL SEGUENTE MODO: APRIAMO UNA QUERY VUOTA SCRIVIAMO I COMANDI (o clausole) SQL NECESSARI/E (AD ESEMPIO) SELECT DISTINCT ALUNNI.COGNOME, ALUNNI.NOME FROM ALUNNI, ASSENZE WHERE ALUNNI.ID_ALUNNI = ASSENZE.ID_ALUNNI_ALUNN O e SALVIAMO CON UN NOME APPROPRIATO (AD ESEMPIO Alunni assenti) segnalare (1 sola volta) cognome e nome degli alunni che hanno fatto assenze Clicca per vedere la soluzione SELECT DISTINCT ALUNNI.COGNOME, ALUNNI.NOME FROM ALUNNI, ASSENZE WHERE ALUNNI.ID_ALUNNI = ASSENZE.ID_ALUNNI Secondo esercizio APRIAMO UNA QUERY VUOTA - SCRIVIAMO I COMANDI (o clausole) SQL NECESSARI/E (AD ESEMPIO) SELECT DISTINCT ALUNNI.COGNOME, ALUNNI.NOME FROM ALUNNI, ASSENZE WHERE ALUNNI.ID_ALUNNI = ASSENZE.ID_ASSENZE AND ASSENZE.GIUSTIFICATA = 'SI' E SALVIAMO CON UN NOME APPROPRIATO (AD ESEMPIO Assenze giustificate) segnalare gli alunni che hanno giustificato Clicca per vedere la soluzione SELECT DISTINCT ALUNNI.COGNOME, ALUNNI.NOME FROM ALUNNI, ASSENZE WHERE ALUNNI.ID_ALUNNI = ASSENZE.ID_ALUNNI AND ASSENZE.GIUSTIFICATA = 'SI' LEZIONI DI ACCESS - I.T.C.G.T. "G. FALCONE" - ACRI - PROF. GRISOLIA

segnalare gli alunni che hanno fatto assenze Terzo esercizio … OPERIAMO NEL SEGUENTE MODO: APRIAMO UNA QUERY VUOTA SCRIVIAMO I COMANDI (o clausole) SQL NECESSARI/E (AD ESEMPIO) SELECT ALUNNI.COGNOME, COUNT(*) AS 'NUMERO ASSENZE' FROM ALUNNI, ASSENZE WHERE ALUNNI.ID_ALUNNI = ASSENZE.ID_ASSENZE GROUP BY ALUNNI.COGNOME e SALVIAMO CON UN NOME APPROPRIATO (AD ESEMPIO Numero assenze) segnalare il cognome e numero delle assenze Clicca per vedere la soluzione SELECT ALUNNI.COGNOME, COUNT(*) AS 'NUMERO ASSENZE' FROM ALUNNI, ASSENZE WHERE ALUNNI.ID_ALUNNI = ASSENZE.ID_ALUNNI GROUP BY ALUNNI.COGNOME Quarto esercizio APRIAMO UNA QUERY VUOTA - SCRIVIAMO I COMANDI (o clausole) SQL NECESSARI/E (AD ESEMPIO) SELECT DISTINCT ALUNNI.COGNOME, ALUNNI.NOME FROM ALUNNI, ASSENZE WHERE ALUNNI.ID_ALUNNI = ASSENZE.ID_ASSENZE AND ASSENZE.DATA BETWEEN [DATA INIZIO] AND [DATA FINE] E SALVIAMO CON UN NOME APPROPRIATO (AD ESEMPIO Assenze del periodo) segnalare gli alunni che hanno fatto assenze in un dato periodo [data inizio] e [data fine] SELECT DISTINCT ALUNNI.COGNOME, ALUNNI.NOME FROM ALUNNI, ASSENZE WHERE ALUNNI.ID_ALUNNI = ASSENZE.ID_ALUNNI AND ASSENZE.DATA BETWEEN [DATA INIZIO] AND [DATA FINE] Clicca per vedere la soluzione LEZIONI DI ACCESS - I.T.C.G.T. "G. FALCONE" - ACRI - PROF. GRISOLIA

COME SI CREA UNA TABELLA CON PIù CHIAVI ESTERNE Esercizi Access COME SI CREA UNA TABELLA CON PIù CHIAVI ESTERNE LEZIONI DI ACCESS - I.T.C.G.T. "G. FALCONE" - ACRI - PROF. GRISOLIA

LEZIONI DI ACCESS - I.T.C.G.T. "G. FALCONE" - ACRI - PROF. GRISOLIA Come operare quando una tabelle deve contenere due o più chiavi esterne? Ad esempio la tabella delle VERIFICHE DOCENTI ID_DOCENTE (PK) COGNOME NOME MATERIA ALUNNI ID_ALUNNO (PK) COGNOME NOME CLASSE SEZIONE 1 1 VERIFICHE ID_ALUNNO (FK) ID_DOCENTE (FK) DATA VOTO TIPO_VERIFICA (S, O, P) N N LEGENDA PK = PRIMARY KEY FK = FOREIGN KEY LEZIONI DI ACCESS - I.T.C.G.T. "G. FALCONE" - ACRI - PROF. GRISOLIA

… innanzitutto creare le tabelle (ALUNNI e DOCENTI) contenenti le Chiavi Primarie (PK) … ID_ALUNNO (PK) COGNOME NOME CLASSE SEZIONE DOCENTI ID_DOCENTE (PK) COGNOME NOME MATERIA VERIFICHE ID_ALUNNO (FK) ID_DOCENTE (FK) DATA VOTO TIPO_VERIFICA (S, O, P) … e dopo creare la tabella (VERIFICHE) contenente le Chiavi Esterne (FK) LEGENDA: PK = PRIMARY KEY, FK = FOREIGN KEY Da ACCESS operare nel seguente modo: Selezionare l’oggetto QUERY – creare una query in visualizzazione Struttura – Chiudi - CREATE TABLE ALUNNI (ID_ALUNNO INTEGER, COGNOME CHAR (20), NOME CHAR(20), CLASSE INTEGER, SEZIONE CHAR (2), PRIMARY KEY (ID_ALUNNI)) CREATE TABLE DOCENTI (ID_DOCENTE INTEGER, COGNOME CHAR (20), NOME CHAR(20), MATERIA CHAR (30), PRIMARY KEY (CODICE)) ed infine questa col nome: crea tabella VERIFICHE questa col nome: crea tabella DOCENTI Salviamo questa tabella col nome: crea tabella ALUNNI CREATE TABLE VERIFICHE (ID_ALUNNO INTEGER, ID_DOCENTE INTEGER, DATA DATE, VOTO INTEGER, TIPO_VERIFICA CHAR (1), FOREIGN KEY (ID_ASSENZE) REFERENCES ALUNNI (ID_ALUNNI), FOREIGN KEY (ID_DOCENTE) REFERENCES DOCENTI (ID_DOCENTE)) LEZIONI DI ACCESS - I.T.C.G.T. "G. FALCONE" - ACRI - PROF. GRISOLIA

Esercizi con più TABELLE ACCESS Esercizi con più TABELLE Cognome e nome degli alunni con voto superiore a 5 in italiano 2) SEGNALARE, PER OGNI MATERIA, IL NUMERO DELLE VERIFICHE 3) Cognome, nome e voti nello scritto degli alunni in una specifica materia 4) Cognome e nome di alunni e docenti e della relativa materia per le prove di una specifica tipologia LEZIONI DI ACCESS - I.T.C.G.T. "G. FALCONE" - ACRI - PROF. GRISOLIA

dati degli alunni con voto superiore a 5 in italiano Primo esercizio … OPERIAMO NEL SEGUENTE MODO: APRIAMO UNA QUERY VUOTA SCRIVIAMO I COMANDI (o clausole) SQL NECESSARI/E (AD ESEMPIO) SELECT DISTINCT ALUNNI.COGNOME, ALUNNI.NOME FROM ALUNNI, ASSENZE WHERE ALUNNI.ID_ALUNNI = ASSENZE.ID_ALUNNI_ALUNN O e SALVIAMO CON UN NOME APPROPRIATO (AD ESEMPIO Italiano maggiore di 5) dati degli alunni con voto superiore a 5 in italiano Clicca per vedere la soluzione SELECT ALUNNI.COGNOME, ALUNNI.NOME FROM ALUNNI, VERIFICHE, DOCENTI WHERE ALUNNI.ID_ALUNNO = VERIFICHE.ID_ALUNNO AND DOCENTI.ID_DOCENTE = VERIFICHE.ID_DOCENTE AND DOCENTI.MATERIA = 'ITALIANO' AND VERIFICHE.VOTO > 5 Secondo esercizio APRIAMO UNA QUERY VUOTA - SCRIVIAMO … SELECT DISTINCT ALUNNI.COGNOME, ALUNNI.NOME FROM ALUNNI, ASSENZE WHERE ALUNNI.ID_ALUNNI = ASSENZE.ID_ASSENZE AND ASSENZE.GIUSTIFICATA = 'SI' E SALVIAMO CON UN NOME APPROPRIATO (AD ESEMPIO Materia e numero verifiche) SEGNALARE, PER OGNI MATERIA, IL NUMERO DELLE VERIFICHE Clicca per vedere la soluzione SELECT DOCENTI.MATERIA, COUNT(*) AS 'NUMERO VERIFICHE' FROM ALUNNI, VERIFICHE, DOCENTI WHERE ALUNNI.ID_ALUNNO = VERIFICHE.ID_ALUNNO AND DOCENTI.ID_DOCENTE = VERIFICHE.ID_DOCENTE AND GROUP BY DOCENTI.MATERIA LEZIONI DI ACCESS - I.T.C.G.T. "G. FALCONE" - ACRI - PROF. GRISOLIA

dati e voti degli alunni in una materia con verifica scritta Terzo esercizio … OPERIAMO NEL SEGUENTE MODO: APRIAMO UNA QUERY VUOTA SCRIVIAMO I COMANDI (o clausole) SQL NECESSARI/E (AD ESEMPIO) SELECT DISTINCT ALUNNI.COGNOME, ALUNNI.NOME FROM ALUNNI, ASSENZE WHERE ALUNNI.ID_ALUNNI = ASSENZE.ID_ALUNNI_ALUNN O e SALVIAMO CON UN NOME APPROPRIATO (AD ESEMPIO Alunni e voti in una materia) dati e voti degli alunni in una materia con verifica scritta Clicca per vedere la soluzione SELECT ALUNNI.COGNOME, ALUNNI.NOME, VERIFICHE.VOTO FROM ALUNNI, VERIFICHE, DOCENTI WHERE ALUNNI.ID_ALUNNO = VERIFICHE.ID_ALUNNO AND DOCENTI.ID_DOCENTE = VERIFICHE.ID_DOCENTE AND DOCENTI.MATERIA = [INSERISCI MATERIA] AND VERIFICHE.TIPO_VERIFICA = 'S' Quarto esercizio APRIAMO UNA QUERY VUOTA - SCRIVIAMO … SELECT DISTINCT ALUNNI.COGNOME, ALUNNI.NOME FROM ALUNNI, ASSENZE WHERE ALUNNI.ID_ALUNNI = ASSENZE.ID_ASSENZE AND ASSENZE.GIUSTIFICATA = 'SI' E SALVIAMO CON UN NOME APPROPRIATO (AD ESEMPIO Alunni docenti e materia per tipo verifica) dati degli alunni, dei docenti e della materia per le prove di cui si conosce il tipo Clicca per vedere la soluzione SELECT ALUNNI.COGNOME, ALUNNI.NOME, DOCENTI.COGNOME, DOCENTI.NOME, DOCENTI.MATERIA FROM ALUNNI, VERIFICHE, DOCENTI WHERE ALUNNI.ID_ALUNNO = VERIFICHE.ID_ALUNNO AND DOCENTI.ID_DOCENTE = VERIFICHE.ID_DOCENTE AND VERIFICHE.TIPO_VERIFICA = [INSERISCI TIPO VERIFICA: S, P o O] LEZIONI DI ACCESS - I.T.C.G.T. "G. FALCONE" - ACRI - PROF. GRISOLIA

Festival di Sanremo

Festival di Sanremo Schema relazionale: Canzone (Titolo, Testo, Primo_Autore, durata) Cantante (Nome_di_Arte, Numero_Dischi_venduti) Canta (Titolo, Nome_di_Arte, Edizione_Festival, Posizione, Punti, Ingaggio, Big)

Festival di Sanremo Schema relazionale: 1) livello concettuale

Schema relazionale: 2) livello logico e fisico TABELLA CANTANTE Nome campo Formato Dimensione Chiave Note Nome_di_arte Carattere 20 Primaria Numero_dischi_venduti Numerico 8 Schema relazionale: 2) livello logico e fisico TABELLA CANZONE Nome campo Formato Dimensione Chiave Note Titolo Carattere 20 Primaria Testo Memo Primo_autore Durata Numerico 4 In secondi TABELLA CANTA Nome campo Formato Dimensione Chiave Note Titolo Carattere 20 Esterna Nome_di_arte Edizione_festival Numerico 3 Posizione 2 Punti Ingaggio Valuta 7 Big Si oppure NO

NUMERO_DISCHI_VENDUTI Popoliamo le tabelle con i seguenti dati: CANTANTE NOME_DI_ARTE NUMERO_DISCHI_VENDUTI ARISA 100.000 LIGABUE 3.500.000 RANIERI 1.000.000 VASCO 4.000.000 CANZONE TITOLO TESTO PRIMO_AUTORE DURATA ALBA CHIARA MOGOL-VASCO 330 CERTE NOTTI LIGABUE 230 LA VITA FOSSATI 190 ROSE ROSSE MOGOL 220 CANTA TITOLO NOME_DI_ARTE EDIZIONE_FESTIVAL POSIZIONE PUNTI INGAGGIO BIG ALBA CHIARA VASCO 2 4 25.000 SI CERTE NOTTI LIGABUE 1 10 15.000 LA VITA ALISA 5.000 NO ROSE ROSSE RANIERI 8 40.000

Query 1 Si visualizzino tutte le canzoni che hanno una durata compresa tra 3'30'' e 4’ (espressi in secondi) Canzone (Titolo, Testo, Primo_Autore, durata) Cantante (Nome_di_Arte, Numero_Dischi_venduti) Canta (Titolo, Nome_di_Arte, Edizione_Festival, Posizione, Punti, Ingaggio, Big)

Query 1 Si visualizzino tutte le canzoni che hanno una durata compresa tra 3'30'' e 4’ SELECT canzone.Titolo FROM Canzone WHERE canzone.durata between 210 and 240;

Query 2 Si visualizzino ed inoltre si contino tutte le canzoni cantate dai big nella 2 edizione Canzone (Titolo, Testo, Primo_Autore, durata) Cantante (Nome_di_Arte, Numero_Dischi_venduti) Canta (Titolo, Nome_di_Arte, Edizione_Festival, Posizione, Punti, Ingaggio, Big)

Query 2 Si visualizzino tutte le canzoni cantate dai big nella 2 edizione SELECT canta.Titolo FROM canta WHERE canta.Edizione_Festival = 2 and canta.Big = “si”;

Query 2.1 Si contino tutte le canzoni cantate dai big nella 2 edizione SELECT count(*) as ‘numero canzoni dei big’ FROM canta WHERE canta.Edizione_Festival = 2 and canta.Big = “si”;

Query 3 Si contino tutte le canzoni cantate dai big per ogni edizione Canzone (Titolo, Testo, Primo_Autore, durata) Cantante (Nome_di_Arte, Numero_Dischi_venduti) Canta (Titolo, Nome_di_Arte, Edizione_Festival, Posizione, Punti, Ingaggio, Big)

Query 3 Si contino tutte le canzoni cantate dai big per ogni edizione SELECT Edizione_Festival, COUNT(*) AS “Canzoni dei BIG” FROM Canta WHERE canta.Big = ‘si’ GROUP BY canta.Edizione_Festival

Query 4 Si visualizzi la classifica delle nuove proposte della 2 edizione Canzone (Titolo, Testo, Primo_Autore, durata) Cantante (Nome_di_Arte, Numero_Dischi_venduti) Canta (Titolo, Nome_di_Arte, Edizione_Festival, Posizione, Punti, Ingaggio, Big)

Query 4 Si visualizzi la classifica dei big della 2 edizione SELECT canta.Titolo, canta.Nome_di_Arte, canta.Posizione FROM canta WHERE canta.Edizione_Festival = 2 and canta.Big = ‘si’ ORDER BY canta.Posizione;

Query 5 Si visualizzino i dischi venduti dai partecipanti alla 2 edizione del Festival come nuove proposte Canzone (Titolo, Testo, Primo_Autore, durata) Cantante (Nome_di_Arte, Numero_Dischi_venduti) Canta (Titolo, Nome_di_Arte, Edizione_Festival, Posizione, Punti, Ingaggio, Big)

Query 5 Si visualizzino i dischi venduti dai partecipanti alla 2 edizione del Festival come nuove proposte SELECT Cantante.Nome_di_Arte, cantante.Numero_Dischi_Venduti FROM Canta, Cantante WHERE canta.nome_di_arte = cantante.nome_di_arte AND canta.Big=‘no’ AND canta.Edizione_Festival=52

Query 6 Si visualizzino autori e titoli di tutte le canzone che hanno vinto un Festival Canzone (Titolo, Testo, Primo_Autore, durata) Cantante (Nome_di_Arte, Numero_Dischi_venduti) Canta (Titolo, Nome_di_Arte, Edizione_Festival, Posizione, Punti, Ingaggio, Big)

Query 6 Si visualizzino autori e titoli di tutte le canzone che hanno vinto un Festival SELECT Canzone.Titolo, Primo_Autore FROM Canzone, Canta WHERE Canzone.Titolo = Canta.Titolo AND canta.Posizione = 1 

IMPIEGATI IN AZIENDA

Schema relazionale Impiegato (Codice, Nome, Cognome, Salario, Qualifica) Progetto (ID, Nome, Descrizione, Budget) Partecipa (Codice_Impiegato, ID_Progetto, Data_Inizio, Data_Fine)

Query 1 Si visualizzino tutti gli Impiegati che guadagnano al massimo 40000 euro annui Impiegato (Codice, Nome, Cognome, Salario, Qualifica) Progetto (ID, Nome, Descrizione, Budget) Partecipa (Codice_Impiegato, ID_Progetto, Data_Inizio, Data_Fine)

Query 1 Si visualizzino tutti gli Impiegati che guadagnano al massimo 40000 euro annui SELECT Codice, Nome, Cognome FROM Impiegato WHERE Salario<=40000;

Query 2 Si visualizzino tutti i progetti con budget compreso tra 20000 e 30000 euro Impiegato (Codice, Nome, Cognome, Salario, Qualifica) Progetto (ID, Nome, Descrizione, Budget) Partecipa (Codice_Impiegato, ID_Progetto, Data_Inizio, Data_Fine)

Query 2 Si visualizzino tutti i progetti con budget compreso tra 20000 e 30000 euro SELECT ID, Nome FROM Progetto WHERE budget >= 20000 and budget <= 30000;

Query 2.1 Si contino tutti i progetti con budget compreso tra 20000 e 30000 euro Impiegato (Codice, Nome, Cognome, Salario, Qualifica) Progetto (ID, Nome, Descrizione, Budget) Partecipa (Codice_Impiegato, ID_Progetto, Data_Inizio, Data_Fine)

Query 2 Si visualizzino ed inoltre si contino tutte i progetti con budget compreso tra 20000 e 30000 euro SELECT COUNT(*) FROM Progetto WHERE budget >= 20000 and budget <= 30000;

Query 3 Si visualizzi in ordine rispetto alla data di inizio ed a parità di data di inizio rispetto alla data di fine tutti i progetti che sono finiti Impiegato (Codice, Nome, Cognome, Salario, Qualifica) Progetto (ID, Nome, Descrizione, Budget) Partecipa (Codice_Impiegato, ID_Progetto, Data_Inizio, Data_Fine)

Query 3 Si visualizzi in ordine rispetto alla data di inizio ed a parità di data di inizio rispetto alla data di fine tutti i progetti che sono finiti SELECT ID, Nome, Data_Inizio, Data_Fine FROM Progetto WHERE Data_Fine is not NULL ORDER BY Data_Inizio, Data_Fine;

Fine 1ª parte Unità svolte nel modulo LEZIONI DI ACCESS - I.T.C.G.T. "G. FALCONE" - ACRI - PROF. GRISOLIA