Anteprima
Vedrai una selezione di 6 pagine su 24
Algebra relazionale e linguaggio SQL Pag. 1 Algebra relazionale e linguaggio SQL Pag. 2
Anteprima di 6 pagg. su 24.
Scarica il documento per vederlo tutto.
Algebra relazionale e linguaggio SQL Pag. 6
Anteprima di 6 pagg. su 24.
Scarica il documento per vederlo tutto.
Algebra relazionale e linguaggio SQL Pag. 11
Anteprima di 6 pagg. su 24.
Scarica il documento per vederlo tutto.
Algebra relazionale e linguaggio SQL Pag. 16
Anteprima di 6 pagg. su 24.
Scarica il documento per vederlo tutto.
Algebra relazionale e linguaggio SQL Pag. 21
1 su 24
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

INTERROGAZIONI CON USO DI PIÙ OPERATORI

Esercizio 1: Facoltà (CodFac, Descrizione, Città)
Studenti (Matricola, Cognome, Nome, Indirizzo, CodFac)

Mostrare il Cognome, Nome e Descrizione della facoltà per gli studenti che risiedono a Milano.

Le domande che ci si deve porre sono:

  • Quali campi devo mostrare? = Cognome, Nome, Descrizione
  • Dove devo prendere questi campi?
    • Cognome in Studenti
    • Nome in Studenti
    • Descrizione in Facoltà
  • Ci sono delle condizioni? Se SI, devo porre delle condizioni.
    • Studenti che risiedono a Milano -> Studenti.Indirizzo = Milano
  • I campi su cui faccio la proiezione sono tutti in un'unica tabella? Se NO, devo collegare le tabelle.
    • Si prende la chiave esterna di una tabella e si collega alla chiave primaria dell'altra tabella. Studenti.CodFac = Facoltà.CodFac

Esercizio 2:

Ogni rivista può essere oggetto di uno o più abbonamenti.

Ogni abbonamento deve avere come oggetto una sola rivista.

Ogni abbonamento deve essere sottoscritto da un solo abbonato.

Ogni abbonato deve sottoscrivere uno o più abbonamenti.

Modello relazionale:

Avrò 3 tabelle (Rivista, Abbonamento, Abbonato).

I campi delle tabelle sono gli attributi (CodRiv, Titolo, Periodicità, Prezzo...).

Bisogna creare la relazione:

Tra Rivista e Abbonamento: l'associazione è 1:N, quindi la chiave primaria di Rivista diventerà chiave esterna di Abbonamento.

Tra Abbonamento e Abbonato: l'associazione è N:1, quindi la chiave primaria di Abbonamento diventerà chiave esterna di Abbonato.

Infine:

Riviste (CodRiv, Titolo, Periodicità, Prezzo)

Abbonamenti (ID, Data, CodRiv, CodAbb)

Abbonati (CodAbb, Cognome, Indirizzo, Città)

Lezione 12 - (09/11/2021)

LINGUAGGIO SQL (Structured Query Language)

COMANDO SELECT:

Il comando obbligatorio è: ```html

Attiva le interrogazioni sulle tabelle: implementa le operazioni relazionali per ottenere nuove tabelle.

``` La sintassi di SELECT è: ```html

SINTASSI DI SELECT

  • SELECT nomi delle colonne da elencare separati da virgola (tutti gli attributi / campi= *) (cosa devo mostrare?).
  • FROM il nome o i nomi delle tabelle utilizzate nell'interrogazione (quelle che ci servono) (ci sono più tabelle?).
  • WHERE condizione da controllare sui valori delle righe (anche più condizioni con AND OR e NOT) (ci sono condizioni?) (ci sono più tabelle?).
``` Il comando SELECT DISTINCT è: ```html

SELECT DISTINCT… le righe duplicate nella tabella risultante vengono tradotte a una.

``` Esempio di SELEZIONE: ```html

SELEZIONE

Esempio: Ogni movimento deve essere correlato ad una sola anagrafica.

Ogni anagrafica può correlarsi a più movimenti.

Modello relazionale:

Movimenti (CodMovimenti, Descrizione, Data, Importo, CodAnagrafiche)

Anagrafiche (CodAnagrafiche, Nome, Indirizzo)

Elenco delle anagrafiche con Indirizzo = "Milano"

SELECT Anagrafiche.*

FROM Anagrafiche

WHERE

```

Indirizzo=‘Milano’;

Elenco delle anagrafiche con Indirizzo variabile

SELECT Anagrafiche.*

FROM Anagrafiche

WHERE Indirizzo=[Quale Indirizzo];

PROIEZIONE

Elenco dei codici e dei nomi delle anagrafiche

SELECT DISTINCT CodAnagrafiche, Nome

FROM Anagrafiche;

Elenco dei movimenti con data e importo

SELECT DISTINCT Data, Importo

FROM Movimenti;

CONGIUNZIONE

Elenco dei movimenti con i dati anagrafici a essi relativi

SELECT Nome, Indirizzo, Movimenti.*

FROM Anagrafiche, Movimenti

WHERE Anagrafiche.CodAnagrafiche=Movimenti.CodAnagrafiche;

USO DI PIÙ OPERATORI

Elenco dei movimenti con Nome e Importo riferiti alle Anagrafiche aventi un indirizzo prefissato.

SELECT Nome, Importo

FROM Anagrafiche, Movimenti

WHERE Anagrafiche.CodAnagrafiche=Movimenti.CodAnagrafiche

AND Indirizzo=[Quale Indirizzo];

SELECT… FROM… WHERE

• SELECT = Proiezioni, Ridenominazioni, Calcoli

• FROM = Prodotti cartesiani, Join

• WHERE = Selezioni, Condizioni di join

Congiunzione SQL in Access

In questo caso,

prefissata.SELECT Sum(Importo)FROM MovimentiWHERE Importo>[Quale importo minimo];FUNZIONE MEDIACalcola la media degli importi per i movimenti superiori a una cifra prefissata.SELECT Avg(Importo)FROM MovimentiWHERE Importo>[Quale importo minimo];FUNZIONE MASSIMORestituisce il valore massimo degli importi per i movimenti superiori a una cifra prefissata.SELECT Max(Importo)FROM MovimentiWHERE Importo>[Quale importo minimo];FUNZIONE MINIMORestituisce il valore minimo degli importi per i movimenti superiori a una cifra prefissata.SELECT Min(Importo)FROM MovimentiWHERE Importo>[Quale importo minimo];
SELECT Sum(Importo)
FROM Movimenti
WHERE Importo>[Cifra prefissata];
SELECT Sum(Importo)
FROM Movimenti AS M, Anagrafiche AS A
WHERE M.Codice=A.Codice AND Indirizzo=[Quale indirizzo];
FUNZIONE MEDIA
Media degli importi per i movimenti aventi una descrizione prefissata
SELECT AVG(Importo)
FROM Movimenti
WHERE Descrizione=[Quale descrizione];
FUNZIONE MINIMO, MASSIMO
Restituiscono rispettivamente il valore minimo e il valore massimo tra i valori della colonna
specificata come argomento della funzione (anche per campi di tipo Testo e Data).
Valore massimo per gli importi dei movimenti di un'anagrafica avente un nome prefissato
SELECT MAX(Importo)
FROM Movimenti, Anagrafiche
WHERE Movimenti.Codice=Anagrafiche.Codice AND Nome=[Quale nome];
Valore minimo e numero degli importi dei movimenti di un'anagrafica avente un nome prefissato
SELECT MIN(Importo), COUNT(Importo)
FROM Movimenti, Anagrafiche,
Anagrafiche WHERE Movimenti.Codice=Anagrafiche.Codice AND Nome=[Quale nome]; Lezione 13 - (10/11/2021) Esercizi svolti in laboratorio su Access. Lezione 14 - (11/11/2021) GLI ORDINAMENTI ORDER BY Ø GROUP BY Ø HAVING La clausola ORDER BY consente di ottenere i risultati di un'interrogazione ordinati secondo i valori contenuti in una o più colonne, tra quelle elencate accanto alla parola Select. Esempio: Elenco alfabetico delle anagrafiche. SELECT Codice, Cognome, Nome, Indirizzo FROM Anagrafiche ORDER BY Cognome, Nome; ORDINAMENTO: CRESCENTE/DECRESCENTE - Ordinamento crescente: ASC (di default) Stringhe dalla A alla Z, numeri dal minore al maggiore. - Ordinamento decrescente: DESC Stringhe dalla Z alla A, numeri dal maggiore al minore. Anagrafiche (Codice, Cognome, Nome, Indirizzo) Movimenti (ID, Descrizione, Data, Importo, Codice) Esempio ordinamento decrescente: Codice delle anagrafiche e importo dei movimenti in ordine decrescente di valore. SELECT Codice, Importo FROM Anagrafiche ORDER BY Codice DESC, Importo DESC;Nome, Count(*) FROM Anagrafiche GROUP BY Indirizzo, Cognome SELECT Count(*) FROM Anagrafiche WHERE Città = 'Milano'; Conta quante persone hanno più di 30 anni SELECT Count(*) FROM Anagrafiche WHERE Età > 30; Conta quante persone hanno lo stesso cognome SELECT Cognome, Count(*) FROM Anagrafiche GROUP BY Cognome HAVING Count(*) > 1; Conta quante persone hanno lo stesso cognome e vivono a Milano SELECT Cognome, Count(*) FROM Anagrafiche WHERE Città = 'Milano' GROUP BY Cognome HAVING Count(*) > 1;
  1. Anagrafiche
  2. WHERE Indirizzo='Milano'
  3. Elenco delle città con più di 10 persone
  4. SELECT Indirizzo
  5. FROM Anagrafiche
  6. GROUP BY Indirizzo
  7. HAVING Count(*) > 10
  8. CLAUSOLE DI SELECT
  9. Select (indispensabile) (tabelle oggetto)
  10. From (seleziona le righe indicate nel where)
  11. Where
  12. Group by (forma gruppi di righe)
  13. Having (controlla le condizioni sui gruppi di righe)
  14. Order by (riordina le righe)
  15. LE CONDIZIONI DI RICERCA all'interno di WHERE
  16. Utilizzate insieme a where per determinare i criteri di selezione delle righe
  17. Segni del confronto =, <, >, <>, >=, <=
  18. Più condizioni legate tra loro con gli operatori AND e OR, precedute eventualmente dall'operazione NOT.
  19. Predicati: BETWEEN, LIKE, IN Condizione BETWEEN
  20. Controlla se un valore è compreso all'interno di un intervallo di valori, inclusi estremi.
  21. Elenco dei movimenti con importo compreso tra 1000 e 2000.
  22. SELECT *
  23. FROM Movimenti
  24. WHERE Importo Between

1000 and 2000; Condizione IN

Controlla le righe che hanno i valori di un attributo compresi in una lista di valori indicati dopo la parola In. Controlla se il valore che assume quel campo è all'interno di quell'insieme di valori.

Elenco delle anagrafiche con indirizzo Milano, Torino o Venezia.

SELECT * FROM Anagrafiche WHERE Indirizzo IN ('Milano', 'Torino', 'Venezia')

Dettagli
Publisher
A.A. 2021-2022
24 pagine
SSD Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher MurielGinevra di informazioni apprese con la frequenza delle lezioni di Idoneità di informatica e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Bergamo o del prof Leporini Roberto.