Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, 1999

Slides:



Advertisements
Presentazioni simili
Soluzione Esercitazione 4 Blocco slides cap04-III.
Advertisements

Algebra e calcolo relazionale (parte 2)
SQL applicato a SQL Server
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità C1 Il linguaggio SQL.
Structured Query Language (SQL) Presentazione 13.1 Informatica Generale (Prof. Luca A. Ludovico)
Sistemi per il recupero delle informazioni
1 SQL come linguaggio di definizione di dati Eugenio Di Sciascio.
SQL.
Operazioni Relazionali
SQL Structured Query Language
Istruzione SELECT (versione base)
Corso di Informatica (Basi di Dati)
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.
Maurizio Lenzerini Domenico Lembo Laurea in Ingegneria Informatica - Università di Roma "La Sapienza" Corso di Basi di Dati - A.A. 2003/2004 Prima Esercitazione.
11/10/2001Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 3 1 Viste (relazioni derivate) Rappresentazioni diverse per gli stessi dati (schema esterno)schema.
Basi di dati Università Degli Studi Parthenope di Napoli
SQL: Lezione 7 Nataliya Rassadko
Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, 1999
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.
SQL :Structured Query Language: SELECT (II)
Esercitazione.
Trovare le matricole dei capi degli impiegati che guadagnano più di 40 milioni PROJCapo (SELStipendio>40 (Supervisione JOIN Impiegato=Matricola Impiegati))
Algebra Relazionale Linguaggio procedurale, cioè le operazioni vengono descritte attraverso la descrizione della sequenza di azioni da compiere per ottenere.
Equivalenza di espressioni
Duplicati Lalgebra relazionale non ammette duplicati, SQL li ammette. Quindi select Città from Persona where Cognome= Rossi estrae una lista di città in.
Proiezione Dati una relazione r(X) e un sottoinsieme Y di X, la proiezione di r su Y si indica con Y ( r ) o PROJ Y ( r ) ed è linsieme di tuple su Y ottenute.
SQL SQL (pronunciato anche come l’inglese sequel) è l’acronimo di Structured Query Language (linguaggio di interrogazione strutturato) E’ un linguaggio.
SELECT STATEMENT Clausola WHERE permette di limitare il numero di record da estrarre SELECT */ [DISTINCT] colonna/ espressione [alias],… FROM table [WHERE.
SQL basato su ANSI (American National Standards Institute) – standard SQL SQL – Structured Query Language è un linguaggio dichiarativo e permette di comunicare.
Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, Capitolo 4:SQL 16/10/2002.
Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, Capitolo 3: ALGEBRA E CALCOLO RELAZIONALE 10/10/2002.
Basi di dati Claudia Raibulet
E. Giunchiglia Basi di dati 1 (trasparenze basate su Atzeni, Ceri, Paraboschi, Torlone: Basi di dati, Capitolo 4) SQL 05/10/2004.
Corso di INFORMATICA anno scolastico 2009/10 Linguaggio SQL IDENTIFICATORI di tabelle e attributi: stringhe di lunghezza max 18 caratteri, composte da.
Corso di Basi di Dati Il Linguaggio SQL Home page del corso:
1 Il Linguaggio SQL Il Linguaggio SQL Prof. Lorenzo Vita, Ing. Luigi Testa.
Basi di Dati e Sistemi Informativi
Basi di Dati e Sistemi Informativi Il Linguaggio SQL Home page del corso:
SQL.
Basi di dati - Modelli e linguaggi di interrogazione- Paolo Atzeni, Stefano Ceri, Stefano Paraboschi, Riccardo Torlone Copyright © The McGraw-Hill.
Basi di dati - Modelli e linguaggi di interrogazione- Paolo Atzeni, Stefano Ceri, Stefano Paraboschi, Riccardo Torlone Copyright © The McGraw-Hill.
Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill,
SQL Interrogazioni. 2 Interrogazioni in SQL Non esiste un SQL standard (vari dialetti) Formulazione di interrogazioni (query) è parte del Data Manipulation.
Informatica Introduzione alle basi di dati Lezione 8 Scienze e tecniche psicologiche dello sviluppo e dell'educazione, laurea magistrale Anno accademico:
Una convenzione e notazione alternativa per i join Nota: è sostanzialmente l'approccio usato in SQL Ignoriamo il join naturale (cioè non consideriamo implicitamente.
Basi di dati Esercizi su ALGEBRA RELAZIONALE 17/10/2013 Paolo Atzeni 1.
Esercizi su ALGEBRA RELAZIONALE
Basi di dati I Prof.ssa Rosalba Giugno Prof. Alfredo Pulvirenti SQL :Structured Query Language: SELECT (IV) SQL (Slide tratte in parte da da Atzeni, Ceri,
SQL (IV) Data Definition Language/ Data Manipulation Language.
ALGEBRA RELAZIONALE. Algebra Relazionale2  Le basi di dati rappresentano le informazioni di interesse per applicazioni che gestiscono i dati  E’ importante.
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?
1 Basi di Dati S tructured Q uery L anguage Appunti Matteo Longhi.
SQL (III) Data Definition Language/ Data Manipulation Language.
1 Vincoli Ci sono i vincoli predefiniti ( unique, primary key, not null, foreign key … ) In SQL2 si ha anche check check Condizione Serve per dare condizioni.
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 I Prof.ssa Rosalba Giugno Prof. Alfredo Pulvirenti SQL :Structured Query Language: SELECT (III) SQL (Slide tratte in parte da da Atzeni, Ceri,
Vincoli Interrelazionali Per i vincoli visti l’inserimento di un valore che li viola viene semplicemente impedito. In caso di vincoli di integrità referenziale,
Vincoli interrelazionali
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 =
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 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.
SQL Linguaggio per l’interrogazione di una base 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:
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
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Transcript della presentazione:

Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, 1999 Capitolo 4: SQL 11/10/2001

Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 4 SQL Structured Query Language è un linguaggio con varie funzionalità: contiene sia il DDL sia il DML ne esistono varie versioni vediamo gli aspetti essenziali, non i dettagli 11/10/2001 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 4

Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 4 SQL: "storia" prima proposta SEQUEL (1974); prime implementazioni in SQL/DS e Oracle (1981) dal 1983 ca. "standard di fatto" standard (1986, poi 1989 e infine 1992, 1999) recepito in parte 11/10/2001 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 4

Definizione dei dati in SQL Istruzione CREATE TABLE: definisce uno schema di relazione e ne crea un’istanza vuota specifica attributi, domini e vincoli 11/10/2001 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 4

Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 4 CREATE TABLE, esempio CREATE TABLE Impiegato( Matricola CHAR(6) PRIMARY KEY, Nome CHAR(20) NOT NULL, Cognome CHAR(20) NOT NULL, Dipart CHAR(15), Stipendio NUMERIC(9) DEFAULT 0, FOREIGN KEY(Dipart) REFERENCES Dipartimento(NomeDip), UNIQUE (Cognome,Nome) ) 11/10/2001 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 4

Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 4 Domini Domini elementari (predefiniti) Domini definiti dall'utente (semplici, ma riutilizzabili) 11/10/2001 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 4

Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 4 Domini elementari Carattere: singoli caratteri o stringhe, anche di lunghezza variabile Bit: singoli booleani o stringhe Numerici, esatti e approssimati Data, ora, intervalli di tempo 11/10/2001 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 4

Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 4 Definizione di domini Istruzione CREATE DOMAIN: definisce un dominio (semplice), utilizzabile in definizioni di relazioni, anche con vincoli e valori di default 11/10/2001 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 4

Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 4 CREATE DOMAIN, esempio CREATE DOMAIN Voto AS SMALLINT DEFAULT NULL CHECK ( value >=18 AND value <= 30 ) 11/10/2001 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 4

Vincoli intrarelazionali NOT NULL UNIQUE definisce chiavi PRIMARY KEY: chiave primaria (una sola, implica NOT NULL) CHECK, vedremo più avanti 11/10/2001 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 4

Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 4 UNIQUE e PRIMARY KEY due forme: nella definzione di un attributo, se forma da solo la chiave come elemento separato 11/10/2001 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 4

Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 4 CREATE TABLE, esempio CREATE TABLE Impiegato( Matricola CHAR(6) PRIMARY KEY, Nome CHAR(20) NOT NULL, Cognome CHAR(20) NOT NULL, Dipart CHAR(15), Stipendio NUMERIC(9) DEFAULT 0, FOREIGN KEY(Dipart) REFERENCES Dipartimento(NomeDip), UNIQUE (Cognome,Nome) ) 11/10/2001 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 4

PRIMARY KEY, alternative Matricola CHAR(6) PRIMARY KEY Matricola CHAR(6), …, PRIMARY KEY (Matricola) 11/10/2001 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 4

Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 4 CREATE TABLE, esempio CREATE TABLE Impiegato( Matricola CHAR(6) PRIMARY KEY, Nome CHAR(20) NOT NULL, Cognome CHAR(20) NOT NULL, Dipart CHAR(15), Stipendio NUMERIC(9) DEFAULT 0, FOREIGN KEY(Dipart) REFERENCES Dipartimento(NomeDip), UNIQUE (Cognome,Nome) ) 11/10/2001 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 4

Chiavi su più attributi, attenzione Nome CHAR(20) NOT NULL, Cognome CHAR(20) NOT NULL, UNIQUE (Cognome,Nome), Nome CHAR(20) NOT NULL UNIQUE, Cognome CHAR(20) NOT NULL UNIQUE, Non è la stessa cosa! 11/10/2001 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 4

Vincoli interrelazionali CHECK, vedremo più avanti REFERENCES e FOREIGN KEY permettono di definire vincoli di integrità referenziale di nuovo due sintassi per singoli attributi su più attributi E' possibile definire politiche di reazione alla violazione 11/10/2001 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 4

Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 4 Infrazioni Codice 34321 73321 64521 53524 Data 1/2/95 4/3/95 5/4/96 5/2/98 Vigile 3987 3295 9345 Prov Numero MI TO PR 39548K E39548 839548 Matricola 3987 3295 9345 Vigili Cognome Rossi Neri Nome Luca Piero Mario Mori Gino 7543 11/10/2001 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 4

Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 4 Infrazioni Codice 34321 73321 64521 53524 Data 1/2/95 4/3/95 5/4/96 5/2/98 Vigile 3987 3295 9345 Prov Numero MI TO PR 39548K E39548 839548 Auto Prov Numero MI TO PR 39548K E39548 839548 Cognome Rossi Neri Nome Mario Luca 11/10/2001 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 4

Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 4 CREATE TABLE, esempio CREATE TABLE Infrazioni( Codice CHAR(6) NOT NULL PRIMARY KEY, Data DATE NOT NULL, Vigile INTEGER NOT NULL REFERENCES Vigili(Matricola), Provincia CHAR(2), Numero CHAR(6) , FOREIGN KEY(Provincia, Numero) REFERENCES Auto(Provincia, Numero) ) 11/10/2001 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 4

Modifiche degli schemi ALTER DOMAIN ALTER TABLE DROP DOMAIN DROP TABLE ... 11/10/2001 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 4

Definzione degli indici è rilevante dal punto di vista delle prestazioni ma è a livello fisico e non logico in passato era importante perché in alcuni sistemi era l'unico mezzo per definire chiavi CREATE INDEX 11/10/2001 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 4

Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 4 In pratica In molti sistemi si utilizzano strumenti diversi dal codice SQL per definire lo schema della base di dati 11/10/2001 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 4

SQL, operazioni sui dati interrogazione: SELECT modifica: INSERT, DELETE, UPDATE 11/10/2001 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 4

Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 4 Istruzione SELECT SELECT ListaAttributi FROM ListaTabelle [ WHERE Condizione ] "target list" clausola FROM clausola WHERE 11/10/2001 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 4

Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 4 Nome Età Persone Reddito Madre Maternità Figlio Luisa Anna Maria Olga Filippo Andrea Aldo Luigi Andrea 27 Maria 55 Anna 50 Filippo 26 Luigi Franco 60 Olga 30 Sergio 85 Luisa 75 Aldo 25 21 42 35 40 20 41 87 15 Padre Paternità Figlio Luigi Franco Sergio Olga Filippo Andrea Aldo 11/10/2001 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 4

Selezione e proiezione Nome e reddito delle persone con meno di trenta anni PROJNome, Reddito(SELEta<30(Persone)) select nome, reddito from persone where eta < 30 11/10/2001 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 4

Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 4 Nome Età Persone Reddito 21 15 30 Reddito Andrea 27 21 Aldo 25 15 Filippo 26 30 Andrea 27 21 Aldo 25 15 Filippo 26 30 Andrea 27 21 Maria 55 42 Anna 50 35 Filippo 26 30 Luigi 40 Franco 60 20 Olga 41 Sergio 85 Luisa 75 87 Aldo 25 15 11/10/2001 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 4

Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 4 SELECT, abbreviazioni select nome, reddito from persone where eta < 30 select p.nome as nome, p.reddito as reddito from persone p where p.eta < 30 11/10/2001 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 4

Selezione, senza proiezione Nome, età e reddito delle persone con meno di trenta anni SELEta<30(Persone) select * from persone where eta < 30 11/10/2001 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 4

Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 4 SELECT, abbreviazioni select * from persone where eta < 30 select nome, età, reddito from persone where eta < 30 11/10/2001 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 4

Proiezione, senza selezione Nome e reddito di tutte le persone PROJNome, Reddito(Persone) select nome, reddito from persone 11/10/2001 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 4

Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 4 SELECT, abbreviazioni R(A,B) select * from R equivale (intutivamente) a select X.A as A, X.B as B from R X where true 11/10/2001 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 4

Espressioni nella target list select Reddito/2 as redditoSemestrale from Persone where Nome = 'Luigi' 11/10/2001 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 4

Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 4 Condizione complessa select * from persone where reddito > 25 and (eta < 30 or eta > 60) 11/10/2001 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 4

Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 4 Condizione “LIKE” Le persone che hanno un nome che inizia per 'A' e ha una 'd' come terza lettera select * from persone where nome like 'A_d%' 11/10/2001 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 4

Gestione dei valori nulli Impiegati Cognome Filiale Età Matricola Neri Milano 45 5998 Bruni NULL 9553 Neri Milano 45 5998 Rossi Roma 32 7309 Bruni NULL 9553 Neri Milano 45 5998 Bruni Milano NULL 9553 SEL Età > 40 OR Età IS NULL (Impiegati) 11/10/2001 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 4

Gli impiegati la cui età è o potrebbe essere maggiore di 40 SEL Età > 40 OR Età IS NULL (Impiegati) select * from impiegati where eta > 40 or eta is null 11/10/2001 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 4

SQL e algebra relazionale R1(A1,A2) R2(A3,A4) select R1.A1, R2.A4 from R1, R2 where R1.A2 = R2.A3 prodotto cartesiano (FROM) selezione (WHERE) proiezione (SELECT) 11/10/2001 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 4

SQL e algebra relazionale R1(A1,A2) R2(A3,A4) select R1.A1, R2.A4 from R1, R2 where R1.A2 = R2.A3 PROJ A1,A4 (SELA2=A3 (R1 JOIN R2)) 11/10/2001 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 4

Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 4 possono essere necessarie ridenominazioni nel prodotto cartesiano nella target list select X.A1 AS B1, ... from R1 X, R2 Y, R1 Z where X.A2 = Y.A3 AND ... 11/10/2001 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 4

Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 4 select X.A1 AS B1, Y.A4 AS B2 from R1 X, R2 Y, R1 Z where X.A2 = Y.A3 AND Y.A4 = Z.A1 REN B1,B2A1,A4 ( PROJ A1,A4 (SEL A2 = A3 AND A4 = C1( R1 JOIN R2 JOIN REN C1,C2  A1,A2 (R1)))) 11/10/2001 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 4

Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 4 cognome e filiale di tutti gli impiegati Cognome Filiale Stipendio Matricola Neri Milano 64 5998 Napoli 55 7309 Rossi Roma 5698 44 9553 PROJ Cognome, Filiale (Impiegati) 11/10/2001 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 4

Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 4 select cognome, filiale from impiegati select distinct cognome, filiale from impiegati Cognome Filiale Neri Milano Napoli Rossi Roma Cognome Filiale Neri Milano Napoli Rossi Roma 11/10/2001 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 4

Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 4 Nome Età Persone Reddito Madre Maternità Figlio Luisa Anna Maria Olga Filippo Andrea Aldo Luigi Andrea 27 Maria 55 Anna 50 Filippo 26 Luigi Franco 60 Olga 30 Sergio 85 Luisa 75 Aldo 25 21 42 35 40 20 41 87 15 Padre Paternità Figlio Luigi Franco Sergio Olga Filippo Andrea Aldo 11/10/2001 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 4

Selezione, proiezione e join I padri di persone che guadagnano più di venti milioni PROJPadre(paternita JOIN Figlio =Nome SELReddito>20 (persone)) select distinct padre from persone, paternita where figlio = nome and reddito > 20 11/10/2001 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 4

Join naturale Padre e madre di ogni persona paternita JOIN maternita select paternita.figlio,padre, madre from maternita, paternita where paternita.figlio = maternita.figlio 11/10/2001 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 4

Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 4 Le persone che guadagnano più dei rispettivi padri; mostrare nome, reddito e reddito del padre PROJNome, Reddito, RP (SELReddito>RP (RENNP,EP,RP  Nome,Eta,Reddito(persone) JOINNP=Padre (paternita JOIN Figlio =Nome persone))) select f.nome, f.reddito, p.reddito from persone p, paternita, persone f where p.nome = padre and figlio = f.nome and f.reddito > p.reddito 11/10/2001 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 4

SELECT, con ridenominazione del risultato select figlio, f.reddito as reddito, p.reddito as redditoPadre from persone p, paternita, persone f where p.nome = padre and figlio = f.nome and .reddito > p.reddito 11/10/2001 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 4