Sistemi Informativi Insieme di “strutture” in grado di acquisire, elaborare, trasmettere ed archiviare informazioni in genere ad uso di un’organizzazione.

Slides:



Advertisements
Presentazioni simili
Interrogazioni Semplici Le operazioni di interrogazione vengono specificate per mezzo dellistruzione select select ListaAttributi from ListaTabelle [where.
Advertisements

Modulo 5 DataBase ACCESS.
Structured Query Language
DBMS (DataBase Management System)
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità C1 Il linguaggio SQL.
Structured Query Language (SQL) Presentazione 13.1 Informatica Generale (Prof. Luca A. Ludovico)
Algebra relazionale Presentazione 12.1
Biglietti e Ritardi: schema E/R
1 Misura Derivata: esempio dei biglietti CostoMedioBiglietto (CMB) calcolato come INCASSO/NUM_BIG. SUM AVG Implementazione in Analysis Services 1. Si definisce.
Esercitazioni del Corso di Sistemi Informativi Marina Mongiello
Esercitazioni del Corso di Sistemi Informativi Marina Mongiello
ESEMPI DI ARCHIVI DI DATI
19/01/2014 Viste. 19/01/2014 Viste Le Viste Logiche o Viste o View possono essere definite come delle tabelle virtuali, i cui dati sono riaggregazioni.
Archivio Cé necessità di immagazzinare in modo permanente grandi quantità di dati. Esempio: anagrafe dei cittadini di un comune.
1 Corso di Laurea in Biotecnologie Informatica (Basi di Dati) SQL: Data Manipulation Language (DML) Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi,
Laboratorio di Basi di Dati Introduzione ad Access 2ª Parte.
Basi di dati. Vantaggi degli archivi digitali Risparmio di spazio: sono facilmente trasferibili e duplicabili Risparmio di tempo: si può accedere ai dati.
Basi di dati Università Degli Studi Parthenope di Napoli
SQL: Lezione 7 Nataliya Rassadko
SQL Per la modifica di basi di dati
SQL Per la definizione di basi di dati SQL per definire ed amministrare Ogni utente puo definire una base di dati di cui diventa lamministratore potendo.
Esercitazione.
Duplicati Lalgebra relazionale non ammette duplicati, SQL li ammette. Quindi select Città from Persona where Cognome= Rossi estrae una lista di città in.
Relazioni Relazione : concetto mutuato dalla definizione di relazione matematica della teoria degli insiemi, come sottoinsieme del prodotto cartesiano.
Informazione incompleta Le tuple che compongono la base di dati devono essere omogenee. Quindi ad ogni attributo deve essere associato un valore in ogni.
SELECT STATEMENT Clausola WHERE permette di limitare il numero di record da estrarre SELECT */ [DISTINCT] colonna/ espressione [alias],… FROM table [WHERE.
Viste. Cosè una vista? è possibile creare un subset logico di dati o una combinazione di dati una vista è una tabella logica basata su una tabella o su.
Basi di dati Claudia Raibulet
Introduzione alle Basi di Dati. Overview Informazione = contenuto + struttura Informazione non strutturata Molto contenuto, poca struttura Un romanzo.
SQL: Structured Query Language
Corso di INFORMATICA anno scolastico 2009/10 Linguaggio SQL OPERATORI INSIEMISTICI IN SQL Siano due tabelle: GiochiSolitari(CodiceGioco, NomeGioco, PrezzoGioco)
Corso di INFORMATICA anno scolastico 2009/10 Linguaggio SQL IDENTIFICATORI di tabelle e attributi: stringhe di lunghezza max 18 caratteri, composte da.
MODELLO LOGICO DEI DATI
Progettare un database
Basi di Dati e Sistemi Informativi
EIPASS MODULO 5 Access 2007.
DATABASE Introduzione
Informatica II – Basi di Dati (07/08) – Parte 2 Gianluca Torta Dipartimento di Informatica dell’Università di Torino
DB- Sistemi Informativi
SQL Interrogazioni. 2 Interrogazioni in SQL Non esiste un SQL standard (vari dialetti) Formulazione di interrogazioni (query) è parte del Data Manipulation.
Microsoft Access (parte 5) Introduzione alle basi di dati Scienze e tecniche psicologiche dello sviluppo e dell'educazione, laurea magistrale Anno accademico:
1 Data warehousing con SQL Server SQL Server è un RDBMS (Relational DataBase Management System) Analysis Services è un componente di SQL Server che offre.
SEFOC – SETTORE FORMAZIONE CONTINUA DEL PERSONALE CORSO MYSQL AVANZATO ROBERTO PENNOLINO – CARMELO MASSIMO PRIOLO PALERMO – 07 | 06 | 2011.
Microsoft Access Query (II), filtri.
Modulo 5 DataBase ACCESS. Informazioni e Dati INFORMAZIONI vengono scambiate con linguaggio scritto o parlato DATI rappresentazione di informazioni in.
I DBMS BASI DI DATI (DATABASE) Insieme organizzato di dati utilizzati
Il Linguaggio SQL. Le interrogazioni in SQL (continua…) La parte di SQL dedicata alla formulazione di interrogazioni fa parte del DML. SQL esprime le.
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.
Algebra relazionale (III). Esempi di Interrogazioni: 3 Trovare matricola e nome dei capi i cui impiegati guadagnano tutti più di Tutti gli impiegati?
Il modello relazionale. Modello logico dei dati basato su concetti relazione e tabella Relazione: da teoria degli insiemi Tabella: rappresentazione grafica.
Interrogazioni (parte 2)
Interrogazioni Le interrogazioni in SQL sono formulate in modo dichiarativo specificando cioè cosa si vuole ottenere e non come lo si vuole ottenere. L’interrogazione.
Basi di dati e Relazioni Uno schema di relazione R(X) è costituito da un simbolo (nome della relazione) R e da una serie di attributi X={A 1, A 2, …, A.
Query languages per Basi di Dati Relazionali  Algebra Relazionale:  basato sulla teoria degli insiemi  procedurale  usato per l’implementazione di.
Vincoli Interrelazionali Per i vincoli visti l’inserimento di un valore che li viola viene semplicemente impedito. In caso di vincoli di integrità referenziale,
Raggruppamenti e target list scorretta select padre, avg(f.reddito), p.reddito from persone f join paternita on figlio = nome join persone p on padre =
Lezione 6 - SQL. Linguaggi per DB Per interagire con le basi di dati occorre un linguaggio Linguaggio SQL (Structured Query Language), linguaggio standardizzato.
Corso integrato di Matematica, Informatica e Statistica Informatica di base Linea 1 Daniela Besozzi Dipartimento di Informatica e Comunicazione Università.
Interrogazioni Le interrogazioni in SQL sono formulate in modo dichiarativo specificando cioè cosa si vuole ottenere e non come lo si vuole ottenere. L’interrogazione.
Funzionalità del DBMS relazionale l Funzioni per –definizione della base di dati –inserimento / rimozione /aggiornamento di informazioni deve soddisfare.
Approfondimenti SQL.
NORMALIZZAZIONE ESERCIZI. INTRODUZIONE La modellazione E-R ci ha consentito di descrivere schemi relazionali Lo strumento base per la modellizzazione.
Microsoft Access Filtri, query. Filtri Un filtro è una funzione che provoca la visualizzazione dei soli record contenenti dati che rispondono a un certo.
DB- Sistemi Informativi Insieme di programmi in grado di acquisire, elaborare, trasmettere ed archiviare informazioni in genere ad uso di un’organizzazione.
Linguaggi per basi di dati Linguaggi di definizione dei dati Utilizzati per definire gli schemi e le autorizzazioni per l’accesso Linguaggi di manipolazione.
Linguaggio SQL prima parte Linguaggio SQL prima parte A. Lorenzi, E. Cavalli INFORMATICA PER SISTEMI INFORMATIVI AZIENDALI Copyright © Istituto Italiano.
Normalizzazione. Introduzione Nell’organizzazione tradizionale degli archivi, si verificano alcuni problemi, quali: Ridondanza dei dati (gli stessi dati.
Linguaggio SQL. Linguaggi per database La diffusione del modello relazionale ha favorito l’uso prevalente di linguaggi non procedurali: in questo modo.
Il linguaggio SQL (Structured Query Language) è il linguaggio standard per creare, manipolare e interrogare database relazionali. SQL non è case-sensitive:
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.
Transcript della presentazione:

Sistemi Informativi Insieme di “strutture” in grado di acquisire, elaborare, trasmettere ed archiviare informazioni in genere ad uso di un’organizzazione (azienda o istituzione).

Dato <> Informazione l I dati sono registrazioni della descrizione di una qualsiasi caratteristica della realtà, su un supporto che ne garantisca la conservazione, la comprensibilità e la reperibilità. l L’ informazione produce variazioni nel patrimonio conoscitivo di un soggetto. Proviene dai dati, ma devono essere inseriti in un contesto interpretativo

DBMS (Database Management System) l Obiettivo: gestione strutturata di dati, organizzati in modo omogeneo. l Base di dati: –Collezione di dati organizzati in modo coerente (un insieme casuale di dati non è una base di dati !) –Modella alcuni aspetti del mondo reale –Costruito con funzionalità ben precise, note fin dall’inizio della progettazione.

Esempi di basi dati: l Rubrica telefonica personale l anagrafe l segreteria studenti dell’università l banca dati centrale del ministero delle finanze l archivio di una biblioteca, di un laboratorio d’analisi mediche, di un museo l banca dati di una carta di credito l banca dati delle prenotazioni dei voli di una compagnia aerea

Basi di dati: operazioni l Definizione della base di dati –quali informazioni rappresentare –quali relazioni tra le informazioni l Manipolazione –inserimento di dati –cancellazione di dati –aggiornamento (update) –interrogazione l Gestione di operazioni da parte di utenti multipli l Protezione e sicurezza dei dati

Livelli di rappresentazione l Livello fisico: come i dati sono memorizzati e organizzati su uno o più supporti di memoria secondaria l Livello logico: come i dati sono organizzati secondo il modello logico adottato (relazionale, gerarchico, ad oggetti etc.) l Livello concettuale: come i dati sono organizzati secondo uno schema concettuale l Livello esterno: come i dati appaiono o vengono presentati all’utente

Livelli di rappresentazione Vista 1Vista 2Vista n Livello logico Livello fisico Livello concettuale

Figure professionali (1) l DB designer –schema concettuale (astratto) della base di dati –mapping su un modello dei dati gerarchico relazionale object oriented...

Figure professionali (2) l DB programmer (realizzazione della base di dati) l DB administrator (gestione della base dati) l Users utenti esperti (usando un linguaggio di interrogazione) naive users (interazioni predeterminate, forms) programmi

Modello relazionale l I dati sono organizzati in relazioni l le relazioni possono essere interpretate/visualizzate come tabelle l un database è un insieme di relazioni

Rappresentazione tabellare dei dati: esempio Libro N.Inv Autore Titolo Anno_ed. Casa ed. Colloc.

Esempio rubrica COGNOMENOMETEL. TanziRosario FedericiSusanna De BernardiSilvio

Modello relazionale l Relazione su due insiemi A e B è un sottoinsieme del prodotto cartesiano A x B Esempio sposato_con  Persone x Persone figlio_di  Persone x Persone vive_a  Persone x Città l Analogamente si possono considerare relazioni tra molti insiemi: A1 x ….xAn

Esempio di relazione l Persone= {Paolo, Luca,Mario} Città={Torino,Roma} l Persone x CittàVive_a Mario PersoneCittà Paolo Luca Torino Roma Città Persone Paolo Luca MarioRoma Torino

Figlio di (Persone x Persone) Persone Paolo Carla MarioFlavio Luca Anna Persone Anna Luca FlavioMario Carla Paolo Sono relazioni diverse!

Relazioni e Attributi Attributi: nomi che specificano un ruolo in una relazione, esempi: l sposato_con(Marito, Moglie) l figlio_di(Figlio, Genitore) l vive_a(Nome,Citta,Provincia) libro( N.Inv, Autore, Titolo, Anno_edizione, Casa_editrice, Collocazione) l Gli attributi devono avere nomi differenti

ESEMPIO DATABASE ESAMI l Prima idea: un’unica tabella: ESAME(Nome,Cognome,Matricola,Titolo, Docente,Voto,Lode) Contiene informazione ridondante: l per ogni esame sostenuto si ripetono tutti i dati dello stuedente l per ogni corso si ripetono titolo e docente

Organizzazione migliore: l STUDENTE(Nome,Cognome,Matricola,Data di Nascita) l CORSI(Titolo,Docente,Codice Corso) l ESAMI(Codice Corso,Voto,Lode,Matricola)

Terminologia l DOMINIO: insieme di valori degli attributi –es. Nomi di persona, Nomi di città, Numeri interi, stringhe di al più 80 caratteri l FORMATO: rappresentazione degli elementi di un dominio –es. tre cifre decimali per i reali

l SCHEMA DI RELAZIONE R(A 1, …, A_ n ) R relazione A i attributi l ISTANZA DI RELAZIONE (o semplicemente relazione) r(R) = { } t= : n-tupla l I singoli valori v i appartengono al dominio dell’attributo A i

l Istanza di relazione = insieme non ordinato di tuple – Non ci possono essere tuple ripetuti –l’ordine delle tuple non conta Database = insieme di istanze di relazioni Terminologia alternativa: – tuple: records – attributi: campi

La tabella rubrica Rubrica(Cognome,Nome,Tel) COGNOMENOMETEL. TanziRosario FedericiSusanna De BernardiSilvio schema nomi degli attributi tuple

Informazione incompleta: Valori Nulli Il valore speciale “null” aggiunto a tutti i domini, per indicare assenza di valore indica: l valore mancante, oppure l valore sconosciuto

Vincoli sulle Relazioni l I valori contenuti nelle tabelle possono essere soggetti a vari tipi di vincoli che dipendono dalla ‘realtà’ che si vuole rappresantare: l vincoli di dominio: valori dei singoli attributi l vincoli di tupla: valori di attributi correlati in una tupla l vincoli di integrità valori di attributi in tuple diverse (anche in relazioni diverse)

Vincoli di dominio vincoli sui valori dei singoli attributi (vincoli di dominio), es: l dato ESAMI(Studente,Voto, Lode,Corso) deve essere Voto >=18 AND Voto <=30 l Vincoli sul valore di un attributo data

Vincoli di tupla vincoli sui valori di attributi correlati, es: l Data la relazione ESAMI come prima deve essere not (Lode = Yes) OR Voto = 30 equivalente a Lode= No OR Voto = 30 l Data la relazione PAGAMENTI(Data,Importo,Ritenute,Netto) deve essere Netto = Importo - Ritenute

Connettivi booleani: tavole di verità Negazione Congiunzione Disgiunzione

Esempio Vincolo (complesso) Supponiamo che STUDENTE contenga anche gli attributi l Borsa di Studio: valori {Yes, No} l Reddito (della famiglia): euro l Residente (nella città sede univ.): {Yes, No} Uno studente ha diritto ad una borsa se –ha una media >= 27 e un reddito <= 20000, oppure – non è residente e ha una media >= 25 e un reddito <=25000

Vincoli di chiave l superchiave: sottoinsieme SK di attributi di una relazione per cui se i  j allora t i [SK]  t j [SK] Una superchiave identifica un’entità in modo univoco in una relazione l CHIAVE PRIMARIA = superchiave minimale non ci possono essere righe diverse con la stessa chiave primaria (Indichiamo in modo sottolineato gli attributi che formano la chiave primaria)

VINCOLI DI INTEGRITA’ sull’entità : chiave primaria  null l integrità referenziale: consistenza tra tuple di due relazioni l integrità semantica: vincoli che dipendono dalla realtà rappresentata (es. numero di libri in prestito a ciascun utente < 5)

Vincoli di Integrità referenziali l In un database relazionale le tabelle sono collegate tra loro tramite i valori di attributi correlati (o comuni) l Esempio –Il collegamento tra la relazione ESAMI e STUDENTI puo’ essere espresso dall’attributo comune Matricola –Il collegamento tra la relazione CORSI e ESAMI puo’ essere espresso dall’attributo comune Codice Corso

l Esempio: Il collegamento tra la relazione LIBRI e la relazione PRESTITI può essere espresso mediante l’ attributo Numero di inventario. l Un vincolo di integrità referenziale tra un insieme di attributi X di una relazione R1 e una relazione R2 è soddisfatto se: i valori di ciascuna tupla di R1 per gli attributi X esistono come valori della chiave primaria di R2 l In questo caso si dice anche che X è una chiave esterna di R1

Funzionalità del DBMS relazionale l Funzioni per –definizione della base di dati –inserimento / rimozione /aggiornamento di informazioni deve soddisfare i vincoli! –Interrogazione

Interrogazione l Linguaggio SQL (Structured Query Language) l Produce come risultato una tabella l Clausola Base –SELECT “Lista di attributi” FROM “Elenco relazioni” WHERE “Condizione”

SQL (Structured Query Language) l SQL: Linguaggio standard per creazione e interrogazione di DB l Vediamo solamente come formulare interrogazioni con SQL l un’interrogazione produce come risultato una tabella l Clausola Base –SELECT “Lista di attributi” FROM “Elenco relazioni” WHERE “Condizione”

Esempi –SELECT Autore, Titolo FROM Libri WHERE Casa_Editrice = ‘Feltrinelli’ –SELECT Autore, Titolo FROM Libri WHERE (Casa_Editrice = ‘Feltrinelli’) and (Anno_edizione = 1990) –SELECT * FROM Libri WHERE (Casa_Editrice = ‘Feltrinelli’) or (Casa_Editrice = ‘Einaudi’)

Provare l Trova i libri editi da Einaudi o Bompiani, pubblicati dopo 1980 (Autore,Titolo,Casa_ed,Anno_ed) l Trova i libri editi da Einaudi o editi da Bompiani dopo 1980 l Trova i libri editi da Garzanti ma non da Bompiani

Matching approssimato l L’operatore like permette di confrontare il valore di un attributo con un valore specificato in modo incompleto l Si usa con gli operatori _e %, l in ACCESS ? e * l ? indica un carattere qualsiasi l *una sequenza di caratteri qualunque

Esempio –SELECT Autore, Titolo FROM Libri WHERE Autore like “*Man*” l Seleziona tutti i libri in cui il nome dell’autore contiene “Man”

Esempi: query parametriche –Trova tutti i libri presenti in biblioteca, dato il nome dell’autore, Il nome dell’autore viene introdotto dall’utente – SELECT * FROM Libri WHERE Autore = [dimmi il nome dell’autore] –In esecuzione: > dimmi il nome dell’ autore Alessandro Manzoni –Risultato:….

Esempio con like e parametri –SELECT libri.* FROM libri WHERE Autore like "*"&[dimmi l'autore] & "*" l Seleziona tutti i libri in cui il nome dell’autore contiene la stringa introdotta dall’utente l & e’ l’operatore di concatenazione tra stringhe

Operatori insiemistici l UNION, INTERSECT, DIFFERENCE l ESEMPIO –SELECT Autore, Titolo FROM Libri WHERE Casa_Editrice = ‘Feltrinelli’ INTERSECT SELECT Autore, Titolo FROM Libri WHERE Casa_Editrice = ‘Einaudi’

Funzioni aggregate (i cui valori dipendono da più righe) l COUNT, SUM, MAX, MIN, AVG l ESEMPI: –Contare i libri presenti in biblioteca editi da Feltrinelli. SELECT Count(*) FROM Libri WHERE Casa_Editrice = ‘Feltrinelli’

Funzioni aggregate (2) –Calcolare il costo totale dei libri presenti in biblioteca, scritti da Umberto Eco SELECT Sum (Prezzo) FROM Libri WHERE Autore = ‘Umberto Eco’ –Qual è il prezzo del più costoso libro presente in biblioteca? SELECT Max(Prezzo) FROM Libri

Raggruppamento e operatori aggregati l Raggruppare le tuple in base a qualche attributo l applicare le funzioni aggregate a ciascun raggruppamento

Raggruppamento l GROUP BY l ESEMPI Per ogni editore, indicare il costo totale dei libri presenti in biblioteca SELECT Casa_ed, Sum (Prezzo) as Valori FROM Libri GROUP BY Casa_ed

Raggruppamento (2) l ESEMPI –Per ogni autore, contare i libri presenti in biblioteca editi da Einaudi, ed indicarne il costo totale SELECT Autore, Count(*) as Numero, Sum (Prezzo) as Valori FROM Libri WHERE Casa_Ed = “Einaudi” GROUP BY Autore

Raggruppamento (3) l La clausola HAVING consente di imporre una condizione sul risultato di una funzione aggregata –Per ogni autore di almeno 3 libri editi da Einaudi presenti in biblioteca, indicarne il costo totale SELECT Autore, Sum (Prezzo) as Valori FROM Libri WHERE Casa_Ed = “Einaudi” GROUP BY Autore HAVING Count(*) >=3

Ordinamento dei risultati l Si può chiedere che le tuple del risultato siano ordinate in base ai valori dei campi: ORDER BY l Es. Restituire l’elenco dei libri in catalogo, secondo l’ordine alfabetico degli autori, per anno di edizione decrescente –SELECT (*) FROM LIBRI ORDER BY Autore ASC, Anno_ed DESC

Valori Unici l SQL restituisce una tabella che contiene tutte le righe che soddisfano una certa condizione, puo’ contenere duplicati l Per eliminare i duplicati si premette la parola chiave distinct l Esempio elenca i libri per autore e titolo senza ripetizioni (ignorando copie multiple e differenti edizioni) SELECT DISTINCT libri.Autore, libri.Titolo FROM libri ORDER BY Autore DESC;

Query con piu’ tabelle - join l Join: combinare le tuple di più tabelle i cui valori per attributi correlati soddisfano una condizione di confronto (caso più semplice: sono uguali) l Il join di due relazioni è il sottoinsieme del loro prodotto cartesiano specificato dalla condizione di selezione

Relazioni tra tabelle e Join l Le relazioni tra tabelle sono espresse da valori comuni di attributi correlati l Esempio Seleziona gli studenti e gli esami che hanno sostenuto con i rispettivi titoli SELECT Studenti.Nome, Studenti.Cognome, Corsi.Titolo, Corsi.Codice, Studenti.Matricola FROM Corsi, Studenti, Esami WHERE Corsi.Codice =Esami.Codice_Corso AND Studenti.Matricola = Esami.Matricola ORDER BY Studenti.Cognome;

Formulazione Alternativa (1) SELECT Studenti.Nome, Studenti.Cognome, Corsi.Titolo, Corsi.Codice, Studenti.Matricola FROM Corsi, Studenti INNER JOIN Esami ON Studenti.Matricola = Esami.Matricola WHERE Corsi.Codice=Esami.Codice_Corso

Formulazione Alternativa (2) SELECT Studenti.Nome, Studenti.Cognome, Corsi.Titolo, Corsi.Codice, Studenti.Matricola FROM Studenti INNER JOIN (Corsi INNER JOIN Esami ON Corsi.Codice = Esami.Codice_Corso) ON Studenti.Matricola = Esami.Matricola

Join e Aggregati esempi: l Per ogni studente determina quanti esami ha sostenuto l Per ogni corso (titolo) determina il numero di studenti che ne hanno sostenuto l’esame l Per ogni studente determina la media dei voti l Elenca gli studenti che hanno una media >= 27 l Elenca gli studenti che hanno sostenuto più di un esame

Per ogni studente determina quanti esami ha sostenuto (elenca nome,cognome matricola) SELECT Studenti.Nome, Studenti.Cognome, Studenti.Matricola, Count(*) AS Esami_sostenuti FROM Studenti INNER JOIN Esami ON Studenti.Matricola = Esami.Matricola GROUP BY Studenti.Nome, Studenti.Cognome, Studenti.Matricola ORDER BY Studenti.Cognome;

Select annidate l E’possibile utilizzare la tabella risultante da una query come condizione di selezione per un’altra query Esempi: l seleziona il libro con il prezzo massimo l seleziona gli autori i cui autori di libri compaiono in una tabella ma non in un’altra l Seleziona i libri (autore, titolo pubblicati da una casa editrice ma non da un’altra)

Select annidate l SELECT INTERNA produce tabella l SELECT ESTERNA usa tale tabella come condizione l RISULTATO è solo la tabella prodotta dalla select esterna

Libri pubblicati da Garzanti e Bompiani SELECT Autore FROM libri WHERE Casa_ed = ”Bompiani"; Produce una tabella, chiamiamola LibriBompiani SELECT Autore, Titolo FROM libri WHERE Casa_ed = "Garzanti" and Autore In (select Autore from LibriBompiani);

Esempio differenza Seleziona Autore e Titolo, pubblicati da [Casa che pubblica], ma non da [Casa che non pubblica] SELECT Autore, Titolo FROM libri WHERE Casa_ed = [Casa che pubblica] and Autore not in (select Autore from libri where Casa_ed = [Casa che non pubblica]);

Esempio intersezione Seleziona Autore e Titolo dei libri pubblicati sia da [casa1] e da [casa2] SELECT Autore, Titolo FROM libri WHERE Casa_ed = [casa1] and Autore in (select Autore from libri where Casa_ed = [casa2]);