Interrogazioni$e$il$valore$NULL$
|
|
- Ottaviana Barbieri
- 6 anni fa
- Visualizzazioni
Transcript
1 SQL$Avanzato$ Interrogazioni+complesse,+trigger,+viste+e+modifiche+dello+schema+! 2 Interrogazioni$e$il$valore$NULL$!
2 Il valore NULL Logica a tre valori 3! Significato del valore NULL! Valore sconosciuto! Valore non disponibile! Attributo non applicabile! Ciascun valore NULL è quindi considerato diverso dagli altri valori NULL!! SQL usa una logica a tre valori:! TRUE, FALSE, and UNKNOWN! 4 La logica a tre valori
3 Interrogazioni e logica a tre valori 5! SQL consente di verificare se il valore di un attributo è NULL!! IS or IS NOT NULL!! Di+solito+le+interrogazioni+res7tuiscono+solo+le+tuple+la+ cui+condizione+di+selezione+è+true+! Le+tuple+per+le+quali+il+valore+è+FALSE+o+UNKNOWN+ vengono+scartate+ 6 Interrogazioni$complesse$!
4 7 Interrogazioni annidate! Blocchi completi select-from-where usati all interno della clausola WHERE di un altra interrogazione! chiamata interrogazione esterna! Operatore di confronto IN!! Confronta un valore v con un insieme (o multinsieme) di valori V! Restituisce TRUE se v è uno degli elementi di V 8 Interrogazione 4$rivista! Creare+un+elenco+di+tuH+i+numeri+di+progeIo+rela7vi+a+progeH+ che+coinvolgono+dipenden7+di+cognome+ Smith +come+ partecipante+o+come+direiore+di+dipar7mento+che+controlla+il+ progeio+ + +SELECT&&&&&DISTINCT&Pnumber+ +FROM&&&&&&Project+ +WHERE&&&&dnum+IN& & & &(SELECT&&Dnumber FROM &Department,+Employee WHERE+mgrssn+=+ssn+AND+lname+=+ Smith )+ &OR&Pnumber+IN& & & &(SELECT &&pno FROM ++Works_on,+Employee WHERE&&essn+=+ssn+AND+lname+=+ Smith )+
5 9 Confronto di tuple! La clausola WHERE di interrogazioni annidate può contenere confronti su tuple 10 Altri operatori di confronto! = ANY (or = SOME) operator! Restituisce TRUE se il valore di v iè uguale ad almeno uno dei valori nell insieme V! equivalente all operatore IN!! ANY (or SOME) può essere combinato anche ad altri operatori: >, >=, <, <=, e <>!
6 Alias per le relazioni nel FROM 11! Una stessa tabella può comparire più volte in interrogazioni annidate! Per evitare ambiguità fra i nomi degli attributi è bene! creare alias (variabili di tupla) per ogni relazione! e qualificare tutti gli attributi con l alias della relazione cui si riferiscono! In assenza di alias gli attributi ambigui vengono associati alla relazione dichiarata nella interrogazione nidificata più interna 12 Interrogazione 16$! Si+trovi+il+nome+di+ciascun+dipendente+che+ha+una+ persona+a+carico+con+il+medesimo+nome+di+ baiesimo+e+lo+stesso+sesso+del+dipendente+
7 13 Interrogazioni nidificate correlate! Le condizioni in una interrogazione interna fa riferimento ad attributi di relazioni esterne! A livello concettuale possono essere pensate come cicli for annidati! L interrogazione più interna viene valutata per ogni tupla della interrogazione più esterna! Una interrogazione annidata con operatori di confronto = o IN è sempre formulabile senza annidamento. 14 Funzioni EXISTS e UNIQUE!! EXISTS! Verifica se il risultato di una interrogazione annidata è vuoto oppure no! EXISTS e NOT EXISTS!! Di solito usati con interrogazioni annidate correlate! UNIQUE(Q)!! Restituisce TRUE se non ci sono tuple duplicate nel risultato dell interrogazione Q
8 Interrogazione 16 rivista $ 15! Riformulazione+con+EXISTS!!SELECT E.fname, E.lname!!FROM employee E!!WHERE EXISTS (SELECT *!!!! FROM dependent D!!!! WHERE E.ssn = D.essn AND!!!!! E.sex = D.sex AND!!!!!!E.fname = D.dependent_name)! 16 Interrogazione$6$! Mostrare+i+nomi+dei+dipenden7+che+non+hanno+ persone+a+carico+ +SELECT!FROM!fname, lname!!employee!!where!not EXISTS!(SELECT *!!!!!!FROM!dependent!!!!!!WHERE ssn = essn)!
9 17 Interrogazione$7$! Elencare+i+nomi+dei+dipenden7,+dirigen7+di+dipar7mento,+ che+hanno+almeno+una+persona+a+carico.+ +SELECT!fname, lname!!from!employee!!where!exists (SELECT *!!!!! FROM dependant!!!!! WHERE ssn = essn)!!!!and!!!!exists (SELECT *!!!!! FROM department!!!!! WHERE ssn = mgrssn)! 18 Interrogazione$3$! Mostrare+il+nome+di+ogni+dipendente+che+lavora+su+tu#+i+ progeh+controlla7+dal+dipar7mento+1+ +SELECT fname, lname!!from employee!!where NOT EXISTS!!!!((SELECT pnumber!!!! FROM project!!!! WHERE dnum = 1)!! EXCEPT (SELECT pno!!!!! FROM works_on!!!!! WHERE essn = ssn))!
10 Interrogazione$3 formulazione$alternativa$ SELECT fname, lname! FROM employee! WHERE NOT EXISTS!!! (SELECT *!!! FROM project!!! WHERE dnum = 1!!!! AND NOT EXISTS!!!!!(SELECT *!!!!! FROM works_on!!!!! WHERE essn = ssn!!!!!!and pno = pnumber))! 19 Insiemi espliciti di valori nella clausola WHERE! Mostrare+i+numeri+di+SSN+di+tuH+i+dipenden7+che+ lavorano+sui+progeh+1,+2+o+3+ +SELECT!DISTINCT essn!!from!works_on!!where!pno IN (1,2,3)! 20
11 Ridenominazione$degli$attributi$ 21! Si possono ridenominare gli attributi nel risultato usando la parola chiave AS! Trovare il cognome di ciascun impiegato e del suo supervisore 22 Join$in$SQL$!
12 23 Join! Nella clausola FROM è possibile specificare una tabella risultante dal collegamento (join) di due tabelle! Nella clausola WHERE compaiono solo le condizioni di selezione e non quelle di join! Mostrare nome, cognome e indirizzo degli impiegati che lavorano nel dipartimento Ricerca 24 Join naturali! NATURAL JOIN su due relazioni R e S! Non vengono specificate condizioni di join! Condizione implicita di EQUIJOIN per ciascuna coppia di attributi con lo stesso nome in R e S SELECT!fname, lname, address!!from!(employee NATURAL JOIN!!!(department AS dept(dname,dno,mgrssn,mgrstartdate)))!!where dname = Ricerca!
13 25 Join esterni! Join interno! È la modalità predefinita di join! Una tupla compare nel risultato solo se esiste una tupla collegata nell altra relazione! Join esterni! Nel risultato compaiono tutte le tuple di una o di entrambe le relazioni! Nel caso di assenza di tuple corrispondenti, gli attributi con valori non definiti sono riempiti con NULL Left Join, Right Join, Full Join 26! LEFT OUTER JOIN! Nel risultato compaiono tutte le tuple della tabella a sinistra dell operatore di join! RIGHT OUTER JOIN! Nel risultato compaiono tutte le tuple della tabella a destra dell operatore di join! FULL OUTER JOIN! Nel risultato compaiono tutte le tuple delle relazioni coinvolte nel join
14 Interrogazione$8$con$join$esterno$$ 27! Mostrare+il+cognome+di+tuH+gli+impiega7+e+dei+loro+ supervisori,+se+esistono+ +SELECT!e.lname AS employee,!!!!s.lname AS supervisor!!from!employee e LEFT OUTER JOIN!!!employee S!!!!ON e.superssn = s.ssn! 28 Funzioni$di$aggregazione$!
15 29 Funzioni di aggregazione! Funzioni di Aggregazione! Forniscono in unica tupla di sintesi le informazioni provenienti da tuple multiple! Possono essere usate nella clausola SELECT o nella clausola HAVING!! Esempio: COUNT, SUM, MAX, MIN, and AVG!! I valori NULL sono scartati! Raggruppamento! Crea sottogruppi di tuple prima di creare la sintesi 30 Interrogazione$20! Calcolare la somma degli stipendi percepiti dagli impiegati che lavorano nel dipartimento Ricerca. Mostrare anche lo stipendio massimo, lo stipendio minimo e il valore medio degli stipendi per quel dipartimento.
16 Interrogazioni$21$e$22$ 31! Calcolare+il+numero+totale+di+impiega7+della+società+! Calcolare+il+numero+di+dipenden7+del+dipar7mento+ Ricerca + 32 Interrogazione$23$! Calcolare+il+numero+dei+valori+dis7n7+degli+s7pendi+ presen7+nella+base+di+da7+ +SELECT!COUNT(DISTINCT salary)!!from employee;!
17 33 Interrogazione$5$! Trovare+i+nomi+di+tuH+gli+impiega7+che+hanno+due+o+ più+persone+a+carico+ +SELECT fname,lname!!from!employee!!where!(select!count(*)!!!!from!dependant!!!!where!ssn = essn) >= 2;! Raggruppamento 34! Partiziona le relazioni in sottoinsiemi di tuple! Raggruppamento in base ai valori di uno o più attributi (attributi di raggruppamento)! Si applica una funzione di aggregazione su ogni partizione separatamente! Clausola GROUP BY! seguito dagli attributi di raggruppamento! Se negli attributi di raggruppamento è presente NULL! Si crea un gruppo separato per il valore NULL
18 35 Interrogazione$24$! Per+ciascun+dipar7mento+si+mostrino+il+numero+del+ dipar7mento,+il+numero+degli+impiega7+nel+ dipar7mento+e+il+loro+s7pendio+medio+ SELECT!dno, COUNT(*),AVG(salary)! FROM GROUP BY!dno!!employee! 36 Risultato$Interrogazione$24$$
19 Interrogazione$25$ 37! Per+ciascun+progeIo+si+mostrino+il+numero+del+ progeio+,+il+nome+del+progeio+e+il+numero+di+ impiega7+che+vi+lavorano+ SELECT!pnumber,pname,COUNT(*)! FROM!project,works_on! WHERE!pnumber = pno! GROUP BY!pnumber,pname!!! Nella+clausola+GROUP+BY+devono+comparire+tuH+gli+ airibu7+presen7+nella+clausola+select! 38 Clausola HAVING!! Consente+di+specificare+una+condizione+su+un+ gruppo+ I26+Per+ciascun+progeIo+in+cui+lavorano+più+di+due+ impiega7,+mostrare+il+numero+del+progeio+,+il+nome+ del+progeio+e+il+numero+di+impiega7+che+vi+lavorano+ SELECT!pnumber,pname,COUNT(*)! FROM WHERE!project,works_on!!pnumber = pno! GROUP BY!pnumber,pname! HAVING!COUNT(*) > 2+
20 39 Risultato$Interrogazione$26$ 40 Interrogazione$27$! Per+ciascun+progeIo+si+mostri+il+numero+del+ progeio,+il+nome+dl+progeio+e+il+numero+degli+ impiega7+del+dipar7mento+5+che+vi+prendono+parte+ SELECT!pnumber,pname,COUNT(*)! FROM WHERE!project,works_on,employee!!pnumber = pno AND essn = ssn!!!and dno = 5! GROUP BY!pnumber,pname! +
21 Interrogazione$28$ 41! Per+ogni+dipar7mento+che+ha+più+di+5+impiega7+si+ mostrino+il+numero+del+dipar7mento+e+il+numero+di+ dipenden7+che+guadagnano+più+di dollari+ SELECT!dnumber, COUNT(*)! FROM!department,employee! WHERE!dnumber = dno AND!!!salary > 40000! GROUP BY!dnumber! HAVING!COUNT(*) > 5!! formulazione+errata+! Il+dipar7mento+deve+avere+almeno+5+dipenden7+ indipendentemente+dallo+s7pendio Interrogazione$28$! Per+ogni+dipar7mento+che+ha+più+di+5+impiega7+si+ mostrino+il+numero+del+dipar7mento+e+il+numero+di+ dipenden7+che+guadagnano+più+di dollari+ SELECT!dnumber, COUNT(*)! FROM!department,employee! WHERE!dnumber = dno AND!!!salary > AND dno IN!!!!(SELECT!dno!!!! FROM!!employee!!!! GROUP BY!dno!!!! HAVING!COUNT(*) > 5)! GROUP BY!dnumber!
22 43 Riepilogando $ 44 Asserzioni$e$trigger$!
23 Definzione di: Vincoli come Asserzioni Azioni come Trigger 45! CREATE ASSERTION!! Permette di definire vincoli non esprimibili tramite I vincoli del modello relazionale! CREATE TRIGGER!! Permette di definire azioni eseguite in automatico dal DBMS al verificarsi di determinati eventi o condizioni 46 Asserzioni per definire vincoli generici! CREATE ASSERTION!! Clausola CHECK!! Condizione spesso espressa con! EXISTS o NOT EXISTS!! una interrogazione che individua le tuple che violano il vincolo! Le operazioni che violano il vincolo sono rifiutate! Utilizzato solo se il vincolo non si può esprimere nella definizione di attributi e domini
24 47 Esempio$di$asserzione$! Lo+s7pendio+di+un+impiegato+non+deve+essere+ superiore+a+quello+del+direiore+del+dipar7mento+ dove+lavora+ 48 Trigger! CREATE TRIGGER!! Utilizzato per tenere sotto controllo i dati nella base di dati! Ad es., un direttore può essere avvisato per spese superiori ad una certa soglia! Definizione di un trigger! Evento(i)! Condizione! Azione
25 49 Esempio$di$trigger$! No7ficare+se+lo+s7pendio+di+un+impiegato+è+superiore+a+quello+ del+suo+direio+supervisore+ CREATE TRIGGER!violazione_stipendio! BEFORE INSERT OR UPDATE OF stipendio,super_ssn! ON!!!impiegato! FOR EACH ROW! WHEN (NEW.stipendio >!!!!(SELECT stipendio!!!! FROM impiegato!!!! WHERE ssn = NEW.super_ssn))! INFORMA_SUPERVISORE(NEW.super_ssn,ssn)! 50 Viste$!
26 51 Vista! È una tabella virtuale! derivata da altre tabelle (di definizione)! risultato di una interrogazione! su tabelle memorizzate o viste! sempre aggiornata dal DBMS! CREATE VIEW!! Crea una vista sulla base di una interrogazione! DROP VIEW! Elimina la definizione di una vista! 52 Esempi
27 53 Implementazione delle viste! Strategie del DBMS per eseguire le interrogazioni che coinvolgono viste! Approccio basato sulla modifica al momento della interrogazione! Si trasforma l interrogazione sulla vista in una interrogazione sulle tabelle di base! Inefficiente in caso di viste definite con interrogazioni onerose computazionalmente 54 Implementazione delle viste! Approccio basato sulla materializzazione delle viste! Il DBMS memorizza la vista come tabella temporanea la prima volta che viene usata in una interrogazione! ipotesi: altre interrogazioni useranno la vista! Aggiornamenti efficienti della vista in conseguenza di aggiornamenti nelle tabelle di base! strategie di aggiornamento incrementale
28 Aggiornamento delle viste 55! È possibile aggiornare solo viste definite su una sola tabella di base senza funzioni di aggregazione! L aggiornamento si ripercuote in modo definito sulle tabelle si base! L aggiornamento di viste che prevedono il join fra più tabelle non sempre possibile! Il DBMS ha difficoltà a stabilire l effetto sulle tabelle di base! Clausola WITH CHECK OPTION! Da inserire alla fine delle definizione di una vista per poter effettuare aggiornamenti Definizione di viste in-linea 56! Definite nella clausola FROM di una interrogazione
29 57 Modifiche$dello$schema$! 58 Comandi per modifcare lo schema! Permettono l evoluzione dello schema! Modifiche effettuate durante il normale esercizio del DBMS! Non richiede la ricompilazione dello schema
30 59 Comando DROP!! Comando DROP! Usato per eliminare qualunque elemento dello schema identificato da un nome come tabelle, domini, vincoli! Opzioni! CASCADE e RESTRICT!! Esempio! DROP SCHEMA COMPANY CASCADE;! 60 Comando ALTER!! Aggiunta e eliminazione di colonne (attributi)! Modifiche nella definizione delle colonne! Aggiunta e eliminazione di vincoli di tabella! Esempio! ALTER TABLE COMPANY.EMPLOYEE ADD COLUMN Job VARCHAR(12);!! Eliminazione di colonne! CASCADE o RESTRICT!
SQL Avanzato. Interrogazioni e il valore NULL. Interrogazioni complesse, trigger, viste e modifiche dello schema. Giorgio Giacinto 2015
SQL Avanzato Interrogazioni complesse, trigger, viste e modifiche dello schema 2 Interrogazioni e il valore NULL Il valore NULL Logica a tre valori 3 Significato del valore NULL Valore sconosciuto Valore
DettagliSQL [2] Concetti avanzati di SQL. Esempi di interrogazioni
SQL [2] Concetti avanzati di SQL 2 Esempi di interrogazioni 3 Esempi di interrogazioni 4 Esempi di interrogazioni 5 Confronti che coinvolgono NULL NULL può voler dire: valore sconosciuto (esiste ma non
DettagliLezione 6. Algebra e Calcolo Relazionale
Lezione 6 Algebra e Calcolo Relazionale 1 Sommario Esempio di Applicazione con Database (AZIENDA) Algebra Relazionale Operazioni Relazionali Unarie Operazioni dell Algebra Relazionale dalla teoria degli
DettagliSQL: Structured Query Language. T. Catarci, M. Scannapieco, Corso di Basi di Dati, A.A. 2008/2009, Sapienza Università di Roma
SQL: Structured Query Language 1 SQL:Componenti Principali Data Manipulation Language (DML): interrogazioni, inserimenti, cancellazioni, modifiche Data Definition Language (DDL): creazione, cancellazione
DettagliBasi di Dati: Corso di laboratorio
Basi di Dati: Corso di laboratorio Lezione 6 Raffaella Gentilini 1 / 40 Sommario 1 Viste 2 3 2 / 40 Viste Viste le viste sono tabelle virtuali corrispondono al risultato di una query (SELECT) valutata
DettagliSQL aspetti essenziali
SQL aspetti essenziali Sommario 2 Definizioni di dati e tipi di dato in SQL Specifica di vincoli in SQL Interrogazioni di base in SQL Istruzioni INSERT, DELETE, e UPDATE Funzionalità aggiuntive SQL 3 SQL
DettagliStructured Query Language
IL LINGUAGGIO SQL Structured Query Language Contiene sia il DDL sia il DML, quindi consente di: Definire e creare il database Effettuare l inserimento, la cancellazione, l aggiornamento dei record di un
DettagliInterrogazioni nidificate
Interrogazioni nidificate Nella clausola where si possono utilizzare valori prodotti da altre istruzioni select utilizzando any (qualsiasi) o all (tutti) insieme agli operatori di confronto Trovare nome,
DettagliInterrogazioni nidificate
Interrogazioni nidificate Trovare nome, cognome e matricola degli studenti che non hanno fatto esami select Matricola,Nome,Cognome from studenti where matricola all (select studente group by studente)
DettagliSQL: DDL, VI, Aggiornamenti e Viste
SQL: DDL, VI, Aggiornamenti e Viste 1 SQL è più di un semplice linguaggio di interrogazione v Linguaggio di definizione dati (Data-definition language, DDL): Crea/distrugge/modifica relazioni e viste Definisce
DettagliLezione 7 SQL (II) Basi di dati bis Docente Mauro Minenna Pag.1
Lezione 7 SQL (II) Pag.1 Ancora sugli operatori di confronto tra insiemi Abbiamo già visto IN, EXISTS e UNIQUE. Possiamo anche usare NOT IN, NOT EXISTS e NOT UNIQUE Disponibili anche: op ANY, op ALL Trovare
DettagliSQL quick reference. piccolo manuale di riferimento dei principali comandi SQL (prof. Claudio Maccherani, Perugia, 2013)
SQL quick reference piccolo manuale di riferimento dei principali comandi SQL (prof. Claudio Maccherani, Perugia, 2013) I tipi dei dati di SQL sono: delimitatori delle costanti: TEXT(n) stringa di caratteri
DettagliBasi di Dati: Corso di laboratorio
Basi di Dati: Corso di laboratorio Lezioni 6 7 Raffaella Gentilini 1 / 46 Sommario 1 Subquery (o Interrogazioni Nidificate) Interrogazioni Annidate con Predicati di Confronto Interrogazioni Annidate con
Dettagli<Nome Tabella>.<attributo>
Informatica Generale (AA 07/08) Corso di laurea in Scienze della Comunicazione Facoltà di Lettere e Filosofia Università degli Studi di Salerno : SQL (2) Tabelle mult., variabili, aggreg, group Prof. Alberto
DettagliTrigger. Basi di dati attive. Trigger: regole che specificano azioni attivate automaticamente dal DBMS al verificarsi di determinati eventi
Basi di dati attive : regole che specificano azioni attivate automaticamente dal DBMS al verificarsi di determinati eventi Oggi fanno parte dello standard SLQ-99 In passato ogni DBMS li implementava seguendo
DettagliSQL e algebra relazionale
SQL e algebra relazionale Il linguaggio SQL consente una maggiore espressività dell algebra relazionale grazie a costrutti che permettono: di definire join più sofisticati di ordinare le righe dei risultati
DettagliData Management Software. Il linguaggio SQL. Query Innestate. Paolo Avallone Sr Consulting IT Specialist DB2, Data Management 10 Settembre 2003
DB2 Data Management Software Il linguaggio SQL Query Innestate Paolo Avallone Sr Consulting IT Specialist DB2, Data Management 10 Settembre 2003 LEGGERE LE SEGUENTI ATTENZIONI Le informazioni contenute
DettagliIl linguaggio SQL: le viste
Il linguaggio SQL: le viste Basi di dati 1 Il linguaggio SQL: le viste Angelo Montanari Dipartimento di Matematica e Informatica Università di Udine Il linguaggio SQL: le viste Basi di dati 2 Introduzione
DettagliLinguaggio SQL seconda parte
Linguaggio SQL seconda parte A. Lorenzi, E. Cavalli INFORMATICA PER SISTEMI INFORMATIVI AZIENDALI Copyright Istituto Italiano Edizioni Atlas Le condizioni di ricerca 2 Le condizioni di ricerca Usate nelle
DettagliCaratteristiche dei linguaggi per Database
IL LINGUAGGIO Caratteristiche dei linguaggi per Database I linguaggi per basi di dati relazionali possiedono i comandi per: definizione del data base; manipolazione dei dati; associazione tra tabelle diverse;
DettagliUno dei principali motivi del successo delle basi di dati: è diventato uno standard
SQL [1] Concetti essenziali di SQL 2 Il linguaggio SQL Uno dei principali motivi del successo delle basi di dati: è diventato uno standard Fornisce un interfaccia dichiarativa di alto livello, permettendo
DettagliSQL. SQL: "storia. Sviluppato nella metà degli anni settanta (1974) presso il laboratorio di ricerca IBM di S.Josè. Dal 1983 ca. "standard di fatto"
SQL SQL: "storia Sviluppato nella metà degli anni settanta (194) presso il laboratorio di ricerca IBM di S.Josè Dal 1983 ca. "standard di fatto" E il linguaggio di riferimento per l interrogazione di DBMS
DettagliCorso di Basi di Dati
Corso di Laurea in Ingegneria Gestionale Sapienza - Università di Roma Corso di Basi di Dati A.A. 2016/2017 7 SQL : Check, Asserzioni,Viste Tiziana Catarci Ultimo aggiornamento : 22/02/2017 Costrutti Avanzati
DettagliIl linguaggio SQL: query innestate
Il linguaggio SQL: query innestate Sistemi Informativi L-A Home Page del corso: http://www-db.deis.unibo.it/courses/sil-a/ Versione elettronica: SQLc-subquery.pdf Sistemi Informativi L-A DB di riferimento
DettagliSQL. Argomenti della lezione. Join esplicito. Interrogazioni complesse in SQL join esplicito outer join operatori aggregati interrogazioni nidificate
Argomenti della lezione SQL Interrogazioni complesse in SQL join esplicito outer join operatori aggregati interrogazioni nidificate Maternità Paternità Madre Figlio Olga Filippo Sergio Olga Filippo Persone
DettagliInterrogazioni in SQL
Interrogazioni in SQL Corso di Basi di Dati 4 dicembre 2013 1 Interrogazioni sullo schema aziendale 1. Ottenere i nomi dei dipartimenti dislocati in piú sedi. 2. Ottenere il numero di supervisori. 3. Produrre
DettagliTabelle esempio: Impiegato/Dipartimento
Informatica Generale (AA 07/08) Corso di laurea in Scienze della Comunicazione Facoltà di Lettere e Filosofia Università degli Studi di Salerno : SQL (3) Insiemistiche e Nidificate Prof. Alberto Postiglione
DettagliSQL. Il nome sta per Structured Query Language Le interrogazioni SQL sono dichiarative
SQL SQL Il nome sta per Structured Query Language Le interrogazioni SQL sono dichiarative l utente specifica quale informazione è di suo interesse, ma non come estrarla dai dati Le interrogazioni vengono
DettagliLaboratorio di Basi di Dati
Laboratorio di Basi di Dati Docente: Alberto Belussi Lezione 2 Vincoli di integrità Proprietà che devono essere soddisfatte da ogni istanza della base di dati. Il soddisfacimento è definito rispetto al
DettagliStructured. Language. Basi di Dati. Introduzione. DDL: Data Definition Language. Tipi di dato. Query. Modifica dei Dati
Basi di Dati Matteo Longhi Structured Query Language Introduzione Standard creato nel 1976 da IBM Aggiornato (versione 2 nel 1992 (ANSI X3.135 e ISO 9075 Consente di: DDL: definire la struttura del DB
DettagliAlessandra Raffaetà. Esercizio: Cinema
Lezione 8 S.I.T. PER LA VALUTAZIONE E GESTIONE DEL TERRITORIO Corso di Laurea Magistrale in Scienze Ambientali Alessandra Raffaetà Dipartimento di Informatica Università Ca Foscari Venezia Esercizio: Cinema
DettagliS.I.T. PER LA VALUTAZIONE E GESTIONE DEL TERRITORIO Corso di Laurea Magistrale in Scienze Ambientali. Alessandra Raffaetà
Lezione 8 S.I.T. PER LA VALUTAZIONE E GESTIONE DEL TERRITORIO Corso di Laurea Magistrale in Scienze Ambientali Alessandra Raffaetà Dipartimento di Informatica Università Ca Foscari Venezia Esercizio: Cinema
DettagliSQL - Structured Query Language
SQL - Structured Query Language Lab 05 Alessandro Lori Università di Pisa 27 Aprile 2012 Riepilogo esercitazione precedente Operatori insiemistici (UNION, INTERSECT, EXCEPT) Riepilogo esercitazione precedente
DettagliInterrogare una base di dati: algebra relazionale e SQL. Savino Castagnozzi Giorgio Macauda Michele Meomartino Salvatore Picerno Massimiliano Sartor
Interrogare una base di dati: algebra relazionale e SQL Savino Castagnozzi Giorgio Macauda Michele Meomartino Salvatore Picerno Massimiliano Sartor Contesto didattico Il seguente materiale didattico è
DettagliESERCIZI SQL. Esercizio 1
ESERCIZI SQL 2 Esercizio 1 3 Esercizio 1 4 Esercizio 1 Si specifichino le seguenti interrogazioni SQL sulla base di dati relazionale AZIENDA. Si mostri il risultato di ciascuna interrogazione. 1. Si restituisca
DettagliSQL. Laboratorio di Progettazione di Basi di Dati (CdS in Informatica e TPS)
1 SQL Laboratorio di Progettazione di Basi di Dati (CdS in Informatica e TPS) a.a. 2015/2016 http://www.di.uniba.it/~lisi/courses/basi-dati/bd2015-16.htm dott.ssa Francesca A. Lisi francesca.lisi@uniba.it
DettagliUniversita di Milano Bicocca Corso di Basi di dati 1 in elearning C. Batini 6. SQL DDL 6.2 Data Description Language - 2
Universita di Milano Bicocca Corso di Basi di dati 1 in elearning C. Batini 6. SQL DDL 6.2 Data Description Language - 2 Vincoli di integrita 2 Cosa e un vincolo di integrita E una proprieta sempre valida
DettagliBasi di dati 8 settembre 2015 Esame Compito A Tempo a disposizione: due ore. Libri chiusi.
Basi di dati 8 settembre 2015 Esame Compito A Tempo a disposizione: due ore. Libri chiusi. Cognome: Nome: Matricola: Domanda 1 (15%) Considerare la base di dati relazionale contenente le seguenti relazioni:
DettagliManuale SQL. Manuale SQL - 1 -
Manuale SQL - 1 - Istruzioni DDL Creazione di una tabella : CREATE TABLE Il comando CREATE TABLE consente di definire una tabella del database specificandone le colonne, con il tipo di dati ad esse associate,
DettagliSQL - Sottointerrogazioni
una delle ragioni che rendono SQL un linguaggio potente è la possibilità di esprimere interrogazioni più complesse in termini di interrogazioni più semplici, tramite il meccanismo delle subqueries (sottointerrogazioni)
DettagliAlgebra relazionale. Algebra relazionale. Operatori dell algebra relazionale. Operatori dell algebra relazionale. Algebra relazionale.
Algebra relazionale Algebra relazionale Introduzione Selezione e proiezione Prodotto cartesiano e join Natural join, theta-join e semi-join Outer join Unione e intersezione Differenza e antijoin Divisione
DettagliAtzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, SQL
Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, 1996-2002 : SQL Operazioni di aggiornamento operazioni di inserimento: insert eliminazione: delete modifica: update di una o più ennuple di una
DettagliOperatori aggregati: COUNT
Operatori aggregati: COUNT Il numero di figli di select count(*) as NumFigliDi where Padre = '' Paternità Padre Sergio Figlio Olga Filippo Andrea Aldo l operatore aggregato (count) viene applicato al risultato
DettagliLaboratorio di Basi di Dati
Laboratorio di Basi di Dati Esercitazione PostgreSQL Dopo aver lanciato il client grafico pgadmin III di PostgreSQL svolgere le operazioni descritte nel seguito, tenendo presenti i suggerimenti forniti
DettagliEsempi SQL con Access. Orazio Battaglia
con Access Orazio Battaglia Consideriamo la base di dati in figura. 2 Interrogazione 1: Selezioniamo tutti gli impiegati, vogliamo Cognome, Nome e Posizione SELECT Impiegati.Cognome, Impiegati.Nome, Impiegati.Posizione
DettagliBasi di Dati: Corso di laboratorio
Basi di Dati: Corso di laboratorio Lezione 9 Raffaella Gentilini 1 / 41 Sommario 1 DBMS Attivi e Triggers 2 2 / 41 DBMS Attivi DBMS Attivi I DBMS tradizionale sono passivi: Eseguono delle operazioni solo
DettagliLABORATORIO di INFORMATICA
Università degli Studi di Cagliari Corso di Laurea Magistrale in Ingegneria per l Ambiente ed il Territorio LABORATORIO di INFORMATICA A.A. 2010/2011 Prof. Giorgio Giacinto IL MODELLO RELAZIONALE http://www.diee.unica.it/giacinto/lab
DettagliSELECT s.nome, e.data Studenti s, Esami e WHERE e.materia = 'BD' AND e.voto = 30 AND e.matricola = s.matricola
SQL SELECT s.nome, e.data FROM Studenti s, Esami e WHERE e.materia = 'BD' AND e.voto = 30 AND e.matricola = s.matricola SELECT s.nome As Nome, 2002 - s.annonascita As Eta, 0 As NumeroEsami FROM Studenti
DettagliSELECT s.nome, e.data FROM Studenti s, Esami e WHERE e.materia = 'BD' AND e.voto = 30 AND e.matricola = s.matricola
SQL, e.data, Esami e WHERE e.materia = 'BD' AND e.voto = 30 AND e.matricola = s.matricola As Nome, 2002 - s.annonascita As Eta, 0 As NumeroEsami WHERE NOT EXISTS (SELECT * WHERE e.matricola = s.matricola
DettagliTrasparenze rielaborate da Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, 1999 Capitolo 4: SQL-2, seconda parte.
Trasparenze rielaborate da Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, 1999 Capitolo 4: SQL-2, seconda parte 11/03/2005 Maternità Legami logici Paternità Madre Luisa Luisa Anna Anna Padre
DettagliData warehouse in Oracle
Data warehouse in Oracle Viste materializzate e estensioni al linguaggio SQL per l analisi dei dati presenti nei data warehouse Viste materializzate Paolo Garza 1 Viste materializzate Viste materializzate
DettagliTipi di sottoquery SQL
Tipi di sottoquery SQL È possibile specificare subquery in numerose posizioni: Con le parole chiave IN e NOT IN. Con operatori di confronto. Con le parole chiave ANY, SOME e ALL. Con le parole chiave EXISTS
DettagliProva Scritta di Basi di Dati
Prova Scritta di Basi di Dati 4 Giugno 2007 COGNOME: NOME: MATRICOLA: Si prega di risolvere gli esercizi direttamente sui fogli del testo, negli spazi indicati. Usare il foglio protocollo solo per la brutta
DettagliCapitolo 4. SQL: il linguaggio di interrogazione. Originato da SEQUEL-XRM e System-R ( ) dell IBM
Capitolo 4 SQL: il linguaggio di interrogazione SQL Originato da SEQUEL-XRM e System-R (1974-1977) dell IBM Significato originario Structured Query Language Standard de facto Attuale standard ANSI/ISO
DettagliALGEBRA RELAZIONALE. L algebra relazionale
ALGEBRA RELAZIONALE 2 L algebra relazionale L insieme principale di operazioni per il modello relazionale è l algebra relazionale. Le operazioni dell algebra relazionale consentono all utente di specificare
DettagliDDL, VINCOLI D INTEGRITÁ, AGGIORNAMENTI E VISTE. SQL è più di un semplice linguaggio di interrogazione
SQL DDL, VINCOLI D INTEGRITÁ, AGGIORNAMENTI E VISTE SQL è più di un semplice linguaggio di interrogazione! Linguaggio di definizione dati (Data-definition language, DDL):! Crea/distrugge/modifica relazioni
DettagliBasi di Dati e Sistemi Informativi. Asserzioni, Viste e Trigger Basi di dati Attive
Basi di Dati e Sistemi Informativi Basi di dati Attive Corso di Laurea in Ing. Informatica Ing. Gestionale Magistrale Asserzioni Introdotte in SQL-2 rappresentano dei vincoli che non sono però associati
DettagliIl linguaggio SQL: raggruppamenti. Versione elettronica: SQLb-gruppi.pdf
Il linguaggio SQL: raggruppamenti Versione elettronica: SQLb-gruppi.pdf Informazioni di sintesi Quanto sinora visto permette di estrarre dal DB informazioni che si riferiscono a singole tuple (eventualmente
DettagliAPPUNTI DELLA LEZIONE DI DATABASE DEL 26/10/2016 Studenti: Marco D'Amato, Adriano Luigi Piscopello Professore: Mario Bochicchio
APPUNTI DELLA LEZIONE DI DATABASE DEL 26/10/2016 Studenti: Marco D'Amato, Adriano Luigi Piscopello Professore: Mario Bochicchio INTRODUZIONE L algebra relazionale è l algebra su cui si basa il linguaggio
DettagliD B M G. Linguaggio SQL: fondamenti. Istruzione SELECT: fondamenti. Elena Baralis 2007 Politecnico di Torino 1. Struttura di base
Linguaggio SQL: fondamenti Struttura di base Clausola WHERE Ordinamento del risultato Join Funzioni aggregate Operatore GROUP BY 2007 Politecnico di Torino 1 Istruzione SELECT: esempio Trovare il codice
DettagliIl linguaggio SQL: viste e tabelle derivate. DB di riferimento per gli esempi
Il linguaggio SQL: viste e tabelle derivate Dario Maio http://bias.csr.unibo.it/maio/ dmaio@deis.unibo.it 1 DB di riferimento per gli esempi Imp Sedi CodImp Nome Sede Ruolo Stipendio Sede Responsabile
DettagliEsercitazione 3 SQL 2
Esercitazione 3 SQL 2 Basi di dati - prof. Silvio Salza - a.a. 2014-2015 E3-1 Schema della base di dati Persone (Nome, Sesso, Anno, Città) Discendenza (Genitore, Figlio) Stato (Città, Inizio, Fine, Stato)
DettagliSQL. Structured Query Language 1974: SEQUEL by IBM 1981: SQL by IBM 1986 1992: SQL ISO 9075:1992 SQL:1999 SQL:2003
SQL Structured Query Language 1974: SEQUEL by IBM 1981: SQL by IBM 1986 1992: SQL ISO 9075:1992 SQL:1999 SQL:2003 SQL Il linguaggio SQL è stato originariamente dichiarativo, diventando nel tempo sempre
DettagliSQL (STRUCTURED QUERY LANGUAGE)
SQL (STRUCTURED QUERY LANGUAGE) Prof. Nicoletta D Alpaos & Prof. Andrea Borghesan SQL DDL Data Definition Language DML Data Manipulation Language DCL Data Control Language DDL Obiettivo: Definire la struttura
DettagliOperazioni sui database
Operazioni sui database Le operazioni nel modello relazionale sono essenzialmente di due tipi: Operazioni di modifica della base di dati (update) Interrogazioni della base di dati per il recupero delle
DettagliMicrosoft Access (parte 5) Query. Query. Query. Query. Creare una query
Microsoft Access (parte 5) Anno accademico: 2008-2009 Per estrarre informazioni da un database si utilizzano delle query : procedure di interrogazione Si può creare più query per ogni tabella Occorre avere
DettagliStoria. Corso di Basi di Dati Spaziali. Componente DDL. Funzionalità. Esempio. Creazione di schema. Linguaggi: SQL. Storia:
Corso di Basi di Dati Spaziali Linguaggi: SQL Angelo Montanari Donatella Gubiani Storia Storia: 1974: prima proposta SEQUEL 1981: prime implementazioni 1983: standard di fatto 1986, 1989, 1992 e 1999:
DettagliSQL. Laboratorio di Progettazione di Basi di Dati (CdS in Informatica e TPS)
1 SQL Laboratorio di Progettazione di Basi di Dati (CdS in Informatica e TPS) a.a. 2015/2016 http://www.di.uniba.it/~lisi/courses/basi-dati/bd2015-16.htm dott.ssa Francesca A. Lisi francesca.lisi@uniba.it
DettagliLe Basi di Dati Attive
Le Basi di Dati Attive Basi di dati: Architetture e linee di evoluzione - Seconda edizione Capitolo 5 Appunti dalle lezioni SQL in Linguaggi di programmazione L uso diretto dell interprete SQL è tipicamente
DettagliViste materializzate in Oracle e SQL esteso. Sistemi di gestione di basi di dati. Tania Cerquitelli e Paolo Garza 1.
Tabella d esempio Data warehouse in Oracle Schema tabella VENDITE(Città, Data, Importo) Viste materializzate ed estensioni al linguaggio SQL per l analisi dei dati presenti nei data warehouse Estensioni
DettagliBasi di dati I 8 luglio 2016 Esame Compito A Tempo a disposizione: un ora e trenta minuti.
Basi di dati I 8 luglio 2016 Esame Compito A Tempo a disposizione: un ora e trenta minuti. Cognome: Nome: Matricola: Domanda 1 (20%) Considerare la base di dati relazionale contenente le seguenti relazioni:
DettagliElena Baralis 2007 Politecnico di Torino 1
Linguaggio SQL: fondamenti Struttura di base Clausola WHEE Ordinamento del risultato Join unzioni aggregate Operatore GOU BY Istruzione SELECT: esempio di BD forniture prodotti Istruzione SELECT: esempio
DettagliElena Baralis 2007 Politecnico di Torino 1
Introduzione Istruzione INSERT Istruzione DELETE Istruzione UPDATE Linguaggio SQL: fondamenti 2 (1/3) Inserimento di tuple Cancellazione di tuple Modifica di tuple 4 (2/3) INSERT inserimento di nuove tuple
DettagliInterrogazioni con ANY e ALL. Operatori ANY e ALL. Interrogazioni con ANY e ALL. Interrogazioni con ANY e ALL. Interrogazioni con ANY e ALL
Interrogazioni con ANY e ALL Operatori ANY e ALL Sintassi: WHERE Attributo OperatoreConfronto [ANY ALL] (SelectAttributoSingolo) ANY: la riga soddisfa la condizione se risulta vero il confronto con almeno
DettagliMODULO 2. Query normali e parametriche Query di:
MODULO 2 TITOLO DBMS e SQL In questo Modulo si affronta lo studio dei DBMS Access e MySQL. In particolare per Access, si descrive come progettare, impostare e modificare gli strumenti di lavoro (tabelle,
DettagliDatabase Lezione 2. Sommario. - Progettazione di un database - Join - Valore NULL - Operatori aggregati
Sommario - Progettazione di un database - Join - Valore NULL - Operatori aggregati Progettazione di un database - In un database c'è una marcata distinzione tra i valori in esso contenuti e le operazioni
DettagliSQL non è solo un linguaggio di interrogazione (Query Language), ma. Un linguaggio per la definizione di basi di dati (Data-definition language (DDL))
SQL PER LA DEFINIZIONE DI BASI DI DATI 1 SQL non è solo un linguaggio di interrogazione (Query Language), ma Un linguaggio per la definizione di basi di dati (Data-definition language (DDL)) CREATE SCHEMA
DettagliSQL PER LA DEFINIZIONE DI BASI DI DATI
SQL PER LA DEFINIZIONE DI BASI DI DATI SQL non è solo un linguaggio di interrogazione (Query Language), ma Un linguaggio per la definizione di basi di dati (Data-definition language (DDL)) CREATE SCHEMA
DettagliSQL. SQL: una visione panoramica. SQL: "storia" Definizione dei dati
SQL SQL: una visione panoramica I lucidi presentati sono liberamente ispirati al contenuto del Capitolo 4 del libro Atzeni, Ceri, Paraboschi, Torlone Basi di dati - McGraw-Hill, 1999 Structured Query Language
DettagliBasi di dati attive. Paolo Atzeni Stefano Ceri. Basi di dati attive
Basi di dati attive Paolo Atzeni Stefano Ceri Basi di dati attive BD con componente per la gestione di regole Evento- Condizione-Azione (regole di produzione): eventi: normalmente modifiche della base
DettagliEstensioni del linguaggio SQL per interrogazioni OLAP
Sistemi Informativi Avanzati Anno Accademico 2012/2013 Prof. Domenico Beneventano Estensioni del linguaggio SQL per interrogazioni OLAP Esempio! Esempio delle vendite con scontrino (nella tabella, per
DettagliSchema Del DB Operazionale TELEFONATE
Schema Del DB Operazionale TELEFONATE Costruire lo Schema di Fatto per analizzare le chiamate considerando come dimensioni TelefonoDA e TelefonoA, Data e Fascia, intesa come FasciaOraria della chiamata
DettagliDocumentazione SQL. Argomento Sintassi Note Definizione schema create schema [NomeSchema] [[authorization] Autorizzazione] {DefElementoSchema}
Documentazione SQL Argomento Sintassi Note Definizione schema create schema [NomeSchema] [[authorization] Autorizzazione] {DefElementoSchema} Definizione tabella Definizione dominio Specifica di valori
DettagliBasi di Dati. Esercitazione 1: Interrogazioni in SQL. K. Donno - Interrogazioni in SQL
Basi di Dati Esercitazione 1: Interrogazioni in SQL DB di riferimento per esempi Consideriamo i seguenti schemi di una base di dati relazionale: PremioProduzione, DataAssunzione) Viene data la seguente
DettagliBasi di dati attive. Una base di dati è ATTIVA quando consente la definizione e la gestione di regole di produzione (regole attive o trigger).
Basi di dati attive Una base di dati è ATTIVA quando consente la definizione e la gestione di regole di produzione (regole attive o trigger). Tali regole vengono attivate in modo automatico al verificarsi
Dettagliσ data 15/12/2013 data 20/12/2014
Dato lo schema: Basi di Dati Prof. Alfredo Pulvirenti A.A. 2014-2015 Prova in itinere 18 dicembre 2014 (A) EVENTO(id, titolo, data, categoria, costo_partecipazione, idcatering) ORGANIZZATORE(id,idevento)
DettagliSQL e linguaggi di programmazione. Cursori. Cursori. L interazione con l ambiente SQL può avvenire in 3 modi:
SQL e linguaggi di programmazione L interazione con l ambiente SQL può avvenire in 3 modi: in modo interattivo col server attraverso interfacce o linguaggi ad hoc legati a particolari DBMS attraverso i
DettagliSilvia Chiusano, Paolo Garza 1
Creazione di un trigger Sviluppo ed utilizzo dei trigger in Oracle Silvia Chiusano Paolo Garza CREATE TRIGGER nome_trigger modo evento [OR evento] ON tabella [REFERENCING referenza] [] [WHEN (predicato
DettagliBasi di Dati: Corso di laboratorio
Basi di Dati: Corso di laboratorio Lezione 3 Raffaella Gentilini 1 / 52 Sommario 1 Il DML di SQL: Interrogazione di una BD 2 / 52 Data Manipulation Language (DML) Istruzioni del DML Le istruzioni del DML
DettagliBasi di dati (4) Docente: Andrea Bulgarelli. Università di Modena e Reggio Emilia. Argomento: select (1.
Università di Modena e Reggio Emilia Basi di dati (4) Docente: andrea.bulgarelli@gmail.com Argomento: select (1.0) 1 Panoramica Select Joins Subquery Wildcard Esempi 2 SELECT SELECT [DISTINCT] [TOP n]
DettagliBasi di dati: appello 14/07/06
Basi di dati: appello 14/07/06 Si consideri il seguente schema di base di dati che vuole tenere traccia dell attività di un agenzia che affitta appartamenti per vacanze nella città di Varazze. CLIENTE
DettagliSQL Laboratorio di Basi di Dati a.a. 2002/2003
1 SQL Laboratorio di Basi di Dati a.a. 2002/2003 dott.ssa Francesca A. Lisi lisi@di.uniba.it Orario di ricevimento: mercoledì ore 10-12 2 Sommario (V parte) Aspetti avanzati della definizione dei dati
DettagliSQL terza 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 2010/11
SQL terza 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 2010/11 Operatori aggregati Costituiscono una estensione delle normali interrogazioni SQL (non hanno corrispondenza in
DettagliPROGETTAZIONE DI BASI DI DATI RELAZIONALI ATTRAVERSO LA TRADUZIONE DI SCHEMI ER ED EER A SCHEMI RELAZIONALI
LEZIONE DEL 11/11/2008 di BASI DI DATI Prof. Bochicchio PROGETTAZIONE DI BASI DI DATI RELAZIONALI ATTRAVERSO LA TRADUZIONE DI SCHEMI ER ED EER A SCHEMI RELAZIONALI Nelle lezioni precedenti abbiamo accennato
DettagliAlgebra Relazionale. T. Catarci, M. Scannapieco, Corso di Basi di Dati, A.A. 2008/2009, Sapienza Università di Roma
Algebra Relazionale 1 Linguaggi di interrogazione relazionale Linguaggi di interrogazione: permettono la manipolazione e il reperimento di dati da una base di dati Il modello relazionale supporta LI semplici
DettagliPROGETTAZIONE DI DATABASE Linguaggio SQL
PROGETTAZIONE DI DATABASE Linguaggio SQL Modello Concettuale (Modellazione del mondo reale) Modello Logico (Definizione del tipo e del formato dei dati) Modello Fisico (Implementazione fisica su supporti
DettagliQuery. Query (Interrogazioni) SQL SQL. Significato dell interrogazione. Sintassi
Informatica della Facoltà di Lingue e Letterature dell Università degli Studi di Torino. Qualsiasi altro Query (Interrogazioni) SQL Materiale aggiuntivo per il corso di laurea in Lingue e Culture per il
DettagliInterrogazioni semplici
Interrogazioni semplici Lorenzo Sarti 2009 Basi di Dati 1 select Campi considerati Matricola Cognome Nome Data di nascita A80198760 Bianchi Anna 22/03/1967 A80293450 Rossi Andrea 13/04/1968 A80198330 Neri
DettagliDr. C. d'amat. SQL: cenni storici
SQL Dr. C. d'amat SQL: cenni storici 1973: presso il laboratorio di ricerca IBM di San Josè (California) viene sviluppato il sistema relazionale System/R. Si decide di utilizzare un linguaggio dichiarativo
DettagliBasi di Dati. Il Linguaggio SQL. K. Donno - Il Linguaggio SQL
Basi di Dati Il Linguaggio SQL Il Linguaggio SQL SQL (Structured Query Language) è di fatto lo standard tra i linguaggi per la gestione di basi di dati relazionali è un linguaggio dichiarativo (non-procedurale),
Dettagli