Oracle PL/SQL. Motivazioni

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Oracle PL/SQL. Motivazioni"

Transcript

1 Oracle PLSQL Motivazioni Supponiamo che nella gestione del database Azienda ci venga chiesto di apportare le modifiche necessarie a far sì che ad ogni impiegato possa essere assegnato, alla fine di ogni anno, un bonus da calcolarsi così: Per ciascun progetto a cui un impiegato partecipa, l impiegato riceve un bonus pari all 1% del budget di progetto Gli impiegati che partecipano a più progetti hanno un bonus pari alla somma dei bonus relativi a ciascun progetto Ogni volta che vengono portate a termine le operazioni per il calcolo del bonus, si vuole anche conoscere la somma totale dei bonus assegnati agli impiegati 2 1

2 Motivazioni Le operazioni richieste, difficilmente possono essere eseguite attraverso un unico comando SQL Inizializzare a zero il valore del bonus di ciascun impiegato Conoscere il numero di progetti a cui partecipa ciascun impiegato Incrementare il valore del bonus sulla base del budget di progetto Tenere traccia di tutti gli incrementi effettuati per calcolare la somma di tutti I bonus È dunque conveniente il ricorso a più comandi SQL per elaborare in cascata i dati dell archivio, possibilmente facendo uso di opportune variabili di appoggio Tutto questo richiede una estensione delle funzionalità base di SQL!!! 3 PLSQL Senza PLSQL, le istruzioni SQL vengono trasmesse e processate una alla volta Programmi che prevedono molte istruzioni SQL devono effettuare molteplici chiamate al DBMS, con ricadute su traffico di rete e tempi complessivi di elaborazione Con PLSQL, un intero blocco di istruzioni può essere inviato al DBMS L elaborazione dei risultati intermedi non deve essere trasmessa all applicazione che riceve solo il risultato finale dell elaborazione Con PLSQL si possono anche definire stored procedures che sono compilate e memorizzate in forma eseguibile per ridurre i tempi di esecuzione Con le stored procedures il traffico di rete è ulteriorimente ridotto dato che si passano solo i parametri, non l intero codice. Inoltre le stored procedures possono essere condivise tra utenti diversi riducendo i requisiti complessivi di memoria 4 2

3 Struttura Ogni programma PLSQL è costituito da blocchi logici (in cascata o nidificati) ciascuno dei quali raggruppa tre sezioni: dichiarativa (DECLARE) istruzioni d esecuzione (END) gestione eccezioni (EXCEPTION) In un blocco, possono essere dichiarate costanti e variabili. Le variabili possono essere utilizzate per memorizzare i risultati di una query Un blocco PLSQL può contenere istruzioni SQL, strutture di controllo del flusso d esecuzione (for-loop, while-loop, if-then-else, casewhen), manipolazione delle eccezioni (controllo errori), e chiamate ad altri blocchi PLSQL I blocchi PLSQL che specificano procedure e funzioni possono essere raggruppati in packages 5 Struttura Un altra importante caratteristica di PLSQL è che offre un meccanismo per processare i risultati delle query in un modo orientato alle tuple una tupla alla volta A questo scopo, vengono utilizzati i cursori Un cursore è fondamentalmente un puntatore al risultato di una query ed è impiegato per leggere i valori degli attributi delle tuple selezionate, inserendoli in variabili Un cursore è tipicamente usato in combinazione con un costrutto loop per elaborare, riga per riga, i risultati di una query 6 3

4 Dichiarazioni Costanti, variabili, cursori ed eccezioni usate in un blocco PLSQL devono essere dichiarati nella sezione di dichiarazione di quel blocco La dichiarazione di variabili e costanti ha la seguente sintassi: <nome variabile> [costant] <tipo di dati> [not null] [:= <espressione>]; DECLARE wages NUMBER; --Inizializzazione con null hours_worked CONSTANT NUMBER := 40; hourly_salary NUMBER := 22.50; bonus NUMBER := 150; country VARCHAR2(128); --Inizializzazione con null 7 Dichiarazioni PLSQL supporta la dichiarazione ancorata del tipo di dato di una variabile Si può richiedere che la variabile abbia lo stesso tipo di una particolare colonna di una tabella IMPIEGATO.Matricola%TYPE Oppure abbia un tipo in grado di memorizzare una tupla completa di una determinata tabella (o risultato di query) DIPARTIMENTO%ROWTYPE 8 4

5 Dichiarazioni La dichiarazione di un cursore specifica un insieme di tuple (come risultato di una query) in modo che le tuple possano essere processate individualmente, una alla volta, usando l istruzione fetch La dichiarazione di un cursore ha la seguente sintassi: cursor <nome cursore> [(<lista parametri>)] is <istruzione select>; Se le tuple selezionate dal cursore devono essere modificate all interno del blocco PLSQL, deve essere aggiunta la clausola for update [(<colonna(e)>)] alla fine della dichiarazione del cursore In questo caso le tuple vengono bloccate e gli altri utenti non vi possono accedere finché non è stato eseguito un comando commit 9 Dichiarazioni Le eccezioni vengono usate per processare errori e avvisi che si incontrano durante l esecuzione delle istruzioni PLSQL Alcune eccezioni sono definite internamente: ZERO_DIVIDE (divisione per 0) Altre eccezioni possono essere specificate dall utente alla fine di un blocco PLSQL Le eccezioni definite dall utente devono essere dichiarate usando la sintassi <nome eccezione> exception 10 5

6 Variabili Ci sono tre modi per assegnare un valore ad una variabile: Attraverso l operatore := seguito dal valore DECLARE wages NUMBER; --Inizializzazione con null hours_worked CONSTANT NUMBER := 40; hourly_salary NUMBER := 22.50; bonus NUMBER := 150; country VARCHAR2(128); --Inizializzazione con null wages := (hours_worked * hourly_salary) + bonus; country := 'France'; country := UPPER('Canada'); 11 Variabili Ci sono tre modi per assegnare un valore ad una variabile: Attraverso l operatore := seguito dal valore Attraverso il costrutto SELECT INTO In questo caso bisogna che l istruzione select recuperi almeno una tupla, altrimenti verrà notificato un errore! Se l istruzione recupera più di una tupla, allora deve essere utilizzato un cursore. DECLARE employee_rec EMP%ROWTYPE; max_sal EMP.SAL%TYPE; select EMPNO, ENAME, JOB, MGR, SAL, COMM, HIREDATE, DEPTNO into employee_rec from EMP where EMPNO = 5698; select max(sal) into max_sal from EMP; 12 6

7 Variabili Ci sono tre modi per assegnare un valore ad una variabile: Attraverso l operatore := seguito dal valore Attraverso il costrutto SELECT INTO Attraverso passaggio di parametri ad una subroutine con i costrutti IN, OUT ed IN OUT DECLARE new_sal NUMBER(8,2); emp_id NUMBER(6) := 126; PROCEDURE adjust_salary(emp_id NUMBER, sal IN OUT NUMBER) IS emp_job VARCHAR2(10); avg_sal NUMBER(8,2); SELECT AVG(salary) INTO new_sal FROM employees; adjust_salary(emp_id, new_sal); -- assigns a new value to new_sal 13 Costrutti per il controllo di flusso Costrutti per il controllo condizionale: IF-THEN-ELSE CASE-WHEN Costrutti per il controllo di iterazione: LOOP FOR-LOOP WHILE-LOOP Costrutti per l interruzione di flusso: GOTO 14 7

8 Costrutti per il controllo di flusso Per il controllo condizionale, PLSQL offre costrutti if-then-else nella forma: if <condizione> then <sequenza di istruzioni> [elsif] <condizione> then <sequenza di istruzioni> [else] <sequenza di istruzioni> end if; 15 Cursori I cursori sono necessari per gestire i dati recuperati da istruzioni di select Fanno eccezione le query che restituiscono un solo dato o una singola tupla Prima che un cursore (già dichiarato nella sezione DECLARE) possa essere usato, deve essere aperto utilizzando l istruzione open: open <nome cursore> [(<lista di parametri>)]; L istruzione select associata viene quindi processata e il cursore punta alla prima tupla restituita dalla select 16 8

9 Cursori Le tuple selezionate possono essere processate una alla volta utilizzando il comando fetch fetch <nome cursore> [(<lista di parametri>)]; Tipicamente la lista di parametri specifica alcune variabili dove memorizzare i valori dalla tupla corrente del cursore le variabili devono avere lo stesso tipo di dati dei risultati della select Dopo un comando fetch, il cursore avanza alla successiva tupla nell insieme del risultato dell istruzione select Dopo che tutte le tuple sono state processate, si utilizza il comando close per chiudere e disabilitare il cursore close <nome cursore>; 17 Cursori L avanzamento del cursore all interno del risultato può essere gestito attraverso un loop semplice: DECLARE cursor emp_cur is select * from EMP; emp_rec EMP%ROWTYPE; emp_sal EMP.SAL%TYPE; open emp_cur; loop fetch emp_cur into emp_rec; exit when emp_cur%notfound; emp_sal := emp_rec.sal; close emp_cur; 18 9

10 Cursori L avanzamento del cursore all interno del risultato può essere semplificato con un loop for: [<< <nome etichetta> >>] for <nome record> in <nome cursore> [(lista di parametri>)] loop <sequenza di istruzioni> Un record utilizzabile per memorizzare una tupla recuperata da un cursore viene implicitamente dichiarato Inoltre, questo loop esegue implicitamente una fetch ad ogni iterazione, una open prima dell ingresso nel loop e una close dopo che il loop è terminato Se ad un iterazione nessuna tupla viene recuperata, il loop viene automaticamente terminato senza un exit 19 Cursori [<< <nome etichetta> >>] for <nome record> in <nome cursore> [(lista di parametri>)] loop <sequenza di istruzioni> In un loop for è anche possibile specificare una query al posto di <nome cursore> : for <nome record> in (<istruzione select>) loop <sequenza di istruzioni> DECLARE sal_rec EMP.SAL%TYPE; for sal_rec in (select SAL + COMM total from EMP) loop ; 20 10

11 Esempio Il seguente codice aumenta del 5% lo stipendio degli impiegati che hanno KING come loro responsabile Si usa il costrutto cursor-for-update che integra la funzione di update all interno del cursore DECLARE manager EMP.MGR%TYPE; cursor emp_cur (mgr_no number) is select SAL from EMP where MGR = mgr_no for update of SAL; select EMPNO into manager from EMP where ENAME = 'KING'; for emp_rec in emp_cur(manager) loop update EMP set SAL = emp_rec.sal*1.05 where current of emp_cur; commit; 21 Esercizio Dopo aver abilitato l output sul terminale SQLPLUS (set serveroutput on) definire ed eseguire una procedura che stampi matricola, cognome e stipendio di ciascun impiegato DECLARE emp_mat IMPIEGATO.MATRICOLA%TYPE; emp_cog IMPIEGATO.COGNOME%TYPE; emp_sti IMPIEGATO.STIPENDIO%TYPE; for emp_rec in (select * from IMPIEGATO) loop DBMS_OUTPUT.PUT_LINE('Matricola: ' emp_rec.matricola ' Cognome: ' emp_rec.cognome ' Stipendio: ' TO_CHAR(emp_rec.stipendio)); for emp_rec in (select * from IMPIEGATO) loop emp_mat := emp_rec.matricola; emp_cog := emp_rec.cognome; emp_sti := emp_rec.stipendio; DBMS_OUTPUT.PUT_LINE ('Matricola: ' emp_mat ' Cognome: ' emp_cog ' Stipendio: ' TO_CHAR(emp_sti)); 22 11

12 DECLARE cursor emp_cur is select * from IMPIEGATO; emp_rec IMPIEGATO%ROWTYPE; Esercizio emp_mat IMPIEGATO.MATRICOLA%TYPE; emp_cog IMPIEGATO.COGNOME%TYPE; emp_sti IMPIEGATO.STIPENDIO%TYPE; open emp_cur; loop fetch emp_cur into emp_rec; exit when emp_cur%notfound; emp_mat := emp_rec.matricola; emp_cog := emp_rec.cognome; emp_sti := emp_rec.stipendio; DBMS_OUTPUT.PUT_LINE ('Matricola: ' emp_mat ' Cognome: ' emp_cog ' Stipendio: ' TO_CHAR(emp_sti)); close emp_cur; DECLARE cursor emp_cur is select * from IMPIEGATO; emp_mat IMPIEGATO.MATRICOLA%TYPE; emp_cog IMPIEGATO.COGNOME%TYPE; emp_sti IMPIEGATO.STIPENDIO%TYPE; for emp_rec in emp_cur loop emp_mat := emp_rec.matricola; emp_cog := emp_rec.cognome; emp_sti := emp_rec.stipendio; DBMS_OUTPUT.PUT_LINE ('Matricola: ' emp_mat ' Cognome: ' emp_cog ' Stipendio: ' TO_CHAR(emp_sti)); 23 Esercizio Con riferimento alla base dati impiegatodipartimento-progetto-pp, definire una procedura che individui i responsabili di progetto che guadagnano meno degli impiegati che supervisionano ed aumentarne lo stipendio in modo che guadagnino almeno quanto gli impiegati che supervisionano: Per ogni supervisore calcolare lo stipendio massimo dei suoi supervisionati Se maggiore del proprio stipendio aggiornare il proprio stipendio a tale valore 24 12

13 Esercizio Per ogni supervisore calcolare lo stipendio massimo dei suoi supervisionati: select s.matricola, s.stipendio, max(i.stipendio) from impiegato s, progetto p, pp, impiegato i where s.matricola=p.responsabile AND p.codice=pp.progetto AND pp.impiegato=i.matricola group by s.matricola, s.stipendio 25 Esercizio Nota la matricola del supervisore aggiornarne il valore di stipendio: update impiegato set stipendio = new_stipendio where matricola=mat_leader 26 13

14 Esercizio DECLARE cursor emp_cur is select s.matricola, s.stipendio, max(i.stipendio) as max_stip from impiegato s, progetto p, pp, impiegato i where s.matricola=p.responsabile AND p.codice=pp.progetto AND pp.impiegato=i.matricola group by s.matricola, s.stipendio; emp_mat IMPIEGATO.MATRICOLA%TYPE; emp_sti_s IMPIEGATO.STIPENDIO%TYPE; emp_sti_i IMPIEGATO.STIPENDIO%TYPE; for emp_rec in emp_cur loop emp_mat := emp_rec.matricola; emp_sti_s := emp_rec.stipendio; emp_sti_i := emp_rec.max_stip; if emp_sti_s < emp_sti_i then update impiegato set stipendio = emp_sti_i where matricola=emp_mat; commit; end if; 27 Stored procedures Il comando CREATE PROCEDURE (o CREATE FUNCTION) consente di definire procedure (o funzioni) che vengono memorizzate nel server e richiamate attraverso il comando EXECUTE Procedure e funzioni possono ricevere parametri di ingresso che vengono passati alla loro chiamata Le funzioni possono anche restituire dei valori al termine della loro esecuzione 28 14

15 Stored procedures Sintassi per la definizione di una procedura create [or replace] procedure <nome procedura> [(<lista di parametri>)] is <dichiarazione> begin <sequenza di istruzioni> [exception <routine di gestione dell eccezione>] end [<nome procedura>]; e di una funzione: create [or replace] function <nome funzione> [(<lista di parametri>)] return <tipo di dati> is <dichiarazione> begin 29 Stored procedures Una volta create, procedure e funzioni possono essere cancellate attraverso i comandi drop procedure <nome procedura> drop function <nome funzione> 30 15

16 Stored procedures La specifica dei parametri prevede la seguente sintassi: <nome parametro> [IN OUT IN OUT] <tipo di dato> [{:= DEFAULT} <espressione>] La clausola opzionale IN, OUT, e IN OUT specifica il modo nel quale il parametro è utilizzato (se omessa il parametro è considerato IN) IN significa che il parametro è accessibile in lettura ma non in scrittura OUT significa che il parametro è accessibile in scrittura ma non in lettura IN OUT permette di accedere al parametro sia in lettura che scrittura 31 Stored procedures Procedura che aumenta lo stipendio degli affiliati ad un dipartimento di una percentuale variabile Una volta creata, la procedura può essere chiamata con execute raise_salary('d002', 0.3) dal terminale sqlplus Se la procedura viene chiamata dall interno di un blocco PLSQL, la parola chiave execute viene omessa create procedure raise_salary(dno dipartimento.codice%type, percentage number DEFAULT 0.5) is cursor emp_cur (dept_no dipartimento.codice%type) is select STIPENDIO from IMPIEGATO where DIPARTIMENTO = dept_no for update of STIPENDIO; empsal number(8); begin for emp_rec in emp_cur(dno) loop update IMPIEGATO set STIPENDIO = emp_rec.stipendio*((100+percentage)100) where current of emp_cur; commit; 32 end raise_salary; 16

17 Stored procedures oppure con begin raise_salary('d002', 0.3); end; dall interno di un blocco PLSQL Questa è la modalità da adottare per eseguire la procedura dal pannello SQL commands dell interfaccia web create procedure raise_salary(dno dipartimento.codice%type, percentage number DEFAULT 0.5) is cursor emp_cur (dept_no dipartimento.codice%type) is select STIPENDIO from IMPIEGATO where DIPARTIMENTO = dept_no for update of STIPENDIO; empsal number(8); begin for emp_rec in emp_cur(dno) loop update IMPIEGATO set STIPENDIO = emp_rec.stipendio*((100+percentage)100) where current of emp_cur; commit; end raise_salary; 33 Stored procedures Da notare che la procedura poteva essere scritta molto più semplicemente senza ricorrere al costrutto del cursor for update create procedure quick_raise_salary(dno dipartimento.codice%type, percentage number DEFAULT 0.5) is begin update IMPIEGATO set STIPENDIO = STIPENDIO*((100+percentage)100) where DIPARTIMENTO=dno; end quick_raise_salary; Il costrutto del cursor for update è tuttavia necessario quando l elaborazione richiede di operare su una riga alla volta di una tabella 34 17

18 Stored procedures Per poter richiamare una funzione da una shell di SQL*Plus, è necessario prima definire una variabile alla quale assegnare il risultato della funzione In SQL*Plus, una variabile può essere definita utilizzando il comando variable <nome variabile> <tipo di dati>; variable salary number. La funziona sopra può quindi essere chiamata usando il comando execute :salary := get_dept_salary(20); Da notare i due punti che devono essere messi davanti alla variabile salary 35 Stored procedures La seguente funzione incrementa gli stipendi e restituisce la somma degli incrementi effettuati create or replace function raise_salary(dno varchar2, percentage number DEFAULT 0.5) return number is delta_sal number; cursor emp_cur (dept_no varchar2) is select STIPENDIO from IMPIEGATO where DIPARTIMENTO = dept_no for update of STIPENDIO; empsal IMPIEGATO.STIPENDIO%TYPE; begin delta_sal := 0.0; open emp_cur(dno); loop fetch emp_cur into empsal; exit when emp_cur%notfound; if empsal IS NOT NULL then delta_sal := delta_sal + empsal*(percentage100); update IMPIEGATO set STIPENDIO = empsal*((100+percentage)100) where current of emp_cur; end if; close emp_cur; commit; return delta_sal; 36 end raise_salary; 18

19 Stored procedures Il funzionamento della funzione può essere verificato eseguendo dalla shell SQLPLUS i seguenti comandi: declare dato number(12,2); begin dato := raise_salary('d001'); dbms_output.put_line(to_char(dato)); end; 37 Esercizio Aggiungere alla tabella impiegato un campo bonus (number) Definire una funzione che imposti il valore di bonus in base al seguente criterio: Per ciascun progetto a cui un impiegato partecipa, l impiegato riceve un bonus pari all 1% del budget di progetto Gli impiegati che partecipano a più progetti hanno un bonus pari alla somma dei bonus relativi a ciascun progetto Ogni volta che viene chiamata la funzione restituisce la somma dei bonus assegnati agli impiegati 38 19

20 Soluzione alter table IMPIEGATO add BONUS number default 0.0; create or replace function calcola_bonus return IMPIEGATO.BONUS%TYPE is total_bonus IMPIEGATO.BONUS%TYPE; current_bonus IMPIEGATO.BONUS%TYPE; cursor emp_cur is select * from IMPIEGATO for update of BONUS; cursor proj_budget (emp_mat IMPIEGATO.MATRICOLA%TYPE) is select p.budget from progetto p, pp where IMPIEGATO=emp_mat AND PROGETTO=CODICE; begin total_bonus := 0.0; for emp_rec in emp_cur loop current_bonus := 0.0; for cur_bud in proj_budget(emp_rec.matricola) loop current_bonus := current_bonus + cur_bud.budget*0.01; update IMPIEGATO set BONUS = current_bonus where current of emp_cur; total_bonus := total_bonus + current_bonus; commit; return total_bonus; end calcola_bonus; 39 Soluzione declare bingo impiegato.bonus%type; begin bingo := calcola_bonus; DBMS_OUTPUT.PUT_LINE(to_char(bingo)); end; 40 20

PL/SQL PL/SQL. Ordine degli elementi dei triggers di Oracle. Differenze nei triggers. Versione dei trigger e PSM di Oracle

PL/SQL PL/SQL. Ordine degli elementi dei triggers di Oracle. Differenze nei triggers. Versione dei trigger e PSM di Oracle Versione dei trigger e PSM di Oracle Lucidi derivati da quelli di Jeffrey D Ullman Oracle usa una variante di SQL/PSM che si chiama non consente solo di creare e memorizzare procedure e funzioni, ma puo

Dettagli

APPENDICE. Procedure in SQL (1)

APPENDICE. Procedure in SQL (1) APPENDICE Procedure in SQL Transazioni in SQL Embedded SQL Remote Procedure Call Appendice 1 Procedure in SQL (1) Standard SQL2 permette di definire procedure, associate a singoli comandi SQL, memorizzate

Dettagli

Il DBMS Oracle. Express Edition. Donatella Gubiani e Angelo Montanari

Il DBMS Oracle. Express Edition. Donatella Gubiani e Angelo Montanari Gubiani & Montanari Il DBMS Oracle 1 Il DBMS Oracle Express Edition Donatella Gubiani e Angelo Montanari Il DBMS Oracle Il DBMS Oracle Oracle 10g Express Edition Il DBMS Oracle (nelle sue versioni più

Dettagli

Triggers. Basi dati attive. Trigger. Indipendenza della conoscenza

Triggers. Basi dati attive. Trigger. Indipendenza della conoscenza Basi dati attive Triggers Antonella Poggi Domenico Lembo Dipartimento di informatica e Sistemistica SAPIENZA Università di Roma Progetto di Applicazioni Software Anno accademico 2009-2010 Una base di dati

Dettagli

PL/SQL Uso di un linguaggio procedurale per un database

PL/SQL Uso di un linguaggio procedurale per un database PL/SQL Uso di un linguaggio procedurale per un database Roberto Basili Corso di Basi Di Dati 1 a.a. 2000-2001 Abstract Questa breve dispensa descrive piu etesamente i contenuti della esercitazione del

Dettagli

LA REALIZZAZIONE DI APPLICAZIONI ALCUNE ARCHITETTURE

LA REALIZZAZIONE DI APPLICAZIONI ALCUNE ARCHITETTURE LA REALIZZAZIONE DI APPLICAZIONI ALCUNE ARCHITETTURE Quattro parti: Gestione dati Client-Server Logica + interfaccia Logica + interfaccia Business rules Sistema di comunicazione Logica applicativa DBMS:

Dettagli

LA REALIZZAZIONE DI APPLICAZIONI. Quattro parti: Gestione dati. Business rules. Logica applicativa. Interfaccia utente. Molte possibili architetture

LA REALIZZAZIONE DI APPLICAZIONI. Quattro parti: Gestione dati. Business rules. Logica applicativa. Interfaccia utente. Molte possibili architetture LA REALIZZAZIONE DI APPLICAZIONI Quattro parti: Gestione dati Business rules Logica applicativa Interfaccia utente Molte possibili architetture L approccio tradizionale: uso di un linguaggio PLSQL 1.1

Dettagli

Suggerimenti per lo Sviluppo delle Applicazioni con PL/SQL. Simona Rotolo

Suggerimenti per lo Sviluppo delle Applicazioni con PL/SQL. Simona Rotolo Suggerimenti per lo Sviluppo delle Applicazioni con PL/SQL Simona Rotolo 2 Questo documento, rivolto a chi sviluppa codice in PL/Sql, è stato redatto al fine di fornire degli standard di sviluppo che aiuteranno

Dettagli

Sistema di Gestione di Basi di Dati DataBase Management System DBMS

Sistema di Gestione di Basi di Dati DataBase Management System DBMS Base di dati (accezione generica) collezione di dati, utilizzati per rappresentare le informazioni di interesse per una o più applicazioni di una organizzazione (accezione specifica) collezione di dati

Dettagli

Procedure memorizzate SQL-2003/PSM. Forma base di PSM. Parametri in PSM

Procedure memorizzate SQL-2003/PSM. Forma base di PSM. Parametri in PSM Procedure memorizzate SQL-2003/PSM Procedure memorizzate nel database Programmazione general-purpose Leggere sezione 8.2 di Garcia-Molina et al. Lucidi derivati da quelli di Jeffrey D. Ullman 1 Una estensione

Dettagli

Lezione 8. Metadati, Viste e Trigger

Lezione 8. Metadati, Viste e Trigger Lezione 8 Metadati, Viste e Trigger Pag.1 Metadati e catalogo di sistema I metadati sono dati a proposito dei dati (quali tabelle esistono?, quali campi contengono?, quante tuple contengono?, ci sono vincoli

Dettagli

Stored Procedures. Antonella Poggi, Claudio Corona. Dipartimento di informatica e Sistemistica SAPIENZA Università di Roma

Stored Procedures. Antonella Poggi, Claudio Corona. Dipartimento di informatica e Sistemistica SAPIENZA Università di Roma Stored Procedures Antonella Poggi, Claudio Corona Dipartimento di informatica e Sistemistica SAPIENZA Università di Roma Progetto di Applicazioni Software Anno accademico 2008-2009 Questi lucidi sono stati

Dettagli

Capitoli 8 e 9. SQL embedded. Applicazioni tradizionali Applicazioni Internet. Sistemi di basi di dati Raghu Ramakrishnan, Johannes Gehrke

Capitoli 8 e 9. SQL embedded. Applicazioni tradizionali Applicazioni Internet. Sistemi di basi di dati Raghu Ramakrishnan, Johannes Gehrke Capitoli 8 e 9 Applicazioni tradizionali Applicazioni Internet SQL embedded SQL nel codice applicativo I comandi SQL possono essere chiamati dall interno di un programma in un linguaggio ospite (ad esempio

Dettagli

DBMS ed Applicazioni Motivazioni

DBMS ed Applicazioni Motivazioni DBMS ed Applicazioni Motivazioni Sin ora abbiamo visto SQL come linguaggio per interrogare DBMS da interfaccia interattiva Nella pratica, un efficace sfruttamento delle potenzialità dei DBMS deriva dalla

Dettagli

Corso di Basi di Dati. Linguaggi per basi di dati. Linguaggi per basi di dati. Linguaggi per basi di dati: Algebra Relazionale

Corso di Basi di Dati. Linguaggi per basi di dati. Linguaggi per basi di dati. Linguaggi per basi di dati: Algebra Relazionale Corso di Basi di Dati Linguaggi per basi di dati: lgebra Relazionale Donatella Gubiani Linguaggi per basi di dati Si possono distinguere diversi tipi di linguaggi per la gestione dei dati: Linguaggio di

Dettagli

Come trattare il risultato di un comando SQL (relazioni) che

Come trattare il risultato di un comando SQL (relazioni) che USO DI SQL DA PROGRAMMI: PROBLEMI 1 Come collegarsi alla BD Come trattare gli operatori SQL Come trattare il risultato di un comando SQL (relazioni) che Come scambiare informazioni sull esito delle operazioni.

Dettagli

SQL non è solo un linguaggio di interrogazione (Query Language), ma. Un linguaggio per la definizione di basi di dati (Data-definition language (DDL))

SQL 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

Dettagli

SQL PER LA DEFINIZIONE DI BASI DI DATI

SQL 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

Dettagli

EDI Manuale Sistemista. EDI Manuale Sistemista

EDI Manuale Sistemista. EDI Manuale Sistemista EDI Manuale Sistemista Paragrafo-Pagina di Pagine 1-1 di 12 Versione 44 del 11/11/2011 SOMMARIO 1 A Chi è destinato... 1-3 2 Pre requisiti... 2-3 3 Obiettivi... 3-3 4 Durata della formazione... 4-3 5 Introduzione

Dettagli

Esercitazione query in SQL L esercitazione viene effettuata sul database viaggi e vacanze che prevede il seguente modello E/R:

Esercitazione query in SQL L esercitazione viene effettuata sul database viaggi e vacanze che prevede il seguente modello E/R: Esercitazione query in SQL L esercitazione viene effettuata sul database viaggi e vacanze che prevede il seguente modello E/R: Si consiglia di creare il data base, inserire i dati nelle tabelle, provare

Dettagli

Il linguaggio SQL: trigger. Versione elettronica: 04.7.SQL.trigger.pdf

Il linguaggio SQL: trigger. Versione elettronica: 04.7.SQL.trigger.pdf Il linguaggio SQL: trigger Sistemi Informativi T Versione elettronica: 04.7.SQL.trigger.pdf DBMS attivi Un DBMS si dice attivoquando dispone di un sottosistema integrato per definire e gestire regole I

Dettagli

Linee guida per la programmazione di transazioni in PL/SQL

Linee guida per la programmazione di transazioni in PL/SQL Linee guida per la programmazione di transazioni in PL/SQL Giuseppe Berio Giuseppe Berio DI - Unito 1 Esempio La transazione deve registrare l evasione di un ordine, rappresentato su più tabelle specializzate

Dettagli

Basi di dati. Il Linguaggio SQL. K. Donno - Il Linguaggio SQL

Basi di dati. Il Linguaggio SQL. K. Donno - Il Linguaggio SQL Basi di dati Il Linguaggio SQL Data Definition Language (DDL) Data Definition Language: insieme di istruzioni utilizzate per modificare la struttura della base di dati Ne fanno parte le istruzioni di inserimento,

Dettagli

Che cos è un DBMS? Capitolo 1. Perché usare un DBMS? DBMS. Descrizioni dei dati nei DBMS. Modelli di dati

Che cos è un DBMS? Capitolo 1. Perché usare un DBMS? DBMS. Descrizioni dei dati nei DBMS. Modelli di dati Che cos è un DBMS? Capitolo 1 Introduzione ai sistemi di basi di dati Una collezione integrata molto grande di dati Modella organizzazioni del mondo reale Entità (ad esempio studenti, corsi) Relazioni

Dettagli

Stored Procedures. Massimo Mecella Dipartimento di Ingegneria informatica automatica e gestionale Antonio Ruberti Sapienza Università di Roma

Stored Procedures. Massimo Mecella Dipartimento di Ingegneria informatica automatica e gestionale Antonio Ruberti Sapienza Università di Roma Stored Procedures Massimo Mecella Dipartimento di Ingegneria informatica automatica e gestionale Antonio Ruberti Sapienza Università di Roma Progetto di Applicazioni Software Stored Procedure e User Defined

Dettagli

Oracle9i. Sono le dieci di sera, state impazzendo sul database. Indietro nel tempo con. Flashback Query

Oracle9i. Sono le dieci di sera, state impazzendo sul database. Indietro nel tempo con. Flashback Query Nella versione 9i del database più diffuso al mondo sono state aggiunte molte nuove funzionalità, una di queste consente di visualizzare i dati com erano in un determinato istante del passato Indietro

Dettagli

2104 volume III Programmazione

2104 volume III Programmazione 2103 SQLite Capitolo 77 77.1 Utilizzo generale................................. 2104 77.1.1 Utilizzo di sqlite3».......................... 2104 77.1.2 Copie di sicurezza............................ 2106

Dettagli

SQL Server. SQL server e un RDBMS di tipo client/server che utilizza Transact-SQL per gestire la comunicazione fra un client e SQL Server

SQL Server. SQL server e un RDBMS di tipo client/server che utilizza Transact-SQL per gestire la comunicazione fra un client e SQL Server SQL Server 7.0 1 SQL Server SQL server e un RDBMS di tipo client/server che utilizza Transact-SQL per gestire la comunicazione fra un client e SQL Server 2 Strumenti per la gestione Enterprise Manager

Dettagli

Oracle - PL/SQL. Oracle: Prodotti

Oracle - PL/SQL. Oracle: Prodotti Oracle - PL/SQL Introduzione ad Oracle PL/SQL: Elementi di base Tecniche di programmazione uso delle variabili uso dei cursori uso delle funzioni/procedure I/O Oracle: Prodotti SQL*Plus - Interprete di

Dettagli

MySQL Command Line Client: operazioni fondamentali

MySQL Command Line Client: operazioni fondamentali MySQL Command Line Client: operazioni fondamentali INTRODUZIONE Il RDBMS MySQL, oltre a fornire un applicazione che abbia un interfaccia user-friendly, ha a disposizione anche un altro client, che svolge

Dettagli

Al giorno d oggi, i sistemi per la gestione di database

Al giorno d oggi, i sistemi per la gestione di database Introduzione Al giorno d oggi, i sistemi per la gestione di database implementano un linguaggio standard chiamato SQL (Structured Query Language). Fra le altre cose, il linguaggio SQL consente di prelevare,

Dettagli

Nozione ed uso. Operazioni eseguite automaticamente ogni volta che avviene un certo evento Uso:

Nozione ed uso. Operazioni eseguite automaticamente ogni volta che avviene un certo evento Uso: Nozione ed uso Operazioni eseguite automaticamente ogni volta che avviene un certo evento Uso: Gestione di vincoli di integrità: Per fallimento Per modifica Auditing: Sicurezza Statistiche Valori derivati

Dettagli

PL/SQL. linguaggio SQL di proprietà di Oracle Lo standard SQL è esteso dai principali sistemi commerciali:

PL/SQL. linguaggio SQL di proprietà di Oracle Lo standard SQL è esteso dai principali sistemi commerciali: PL/SQL Cos è PL/SQL? Il linguaggio procedurale per l estensione del linguaggio SQL di proprietà di Oracle Lo standard SQL è esteso dai principali sistemi commerciali: Da Oracle con PL/SQL (e Java) Da Access

Dettagli

PROGRAMMA CORSO Analista Programmatore JAVA - ORACLE

PROGRAMMA CORSO Analista Programmatore JAVA - ORACLE PROGRAMMA CORSO Analista Programmatore JAVA - ORACLE 1. JAVA 1.1 Introduzione a Java Introduzione Cosa è Java 1.2 Sintassi e programmazione strutturata variabili e metodi tipi di dati, array operatori

Dettagli

Il linguaggio SQL: viste e tabelle derivate

Il linguaggio SQL: viste e tabelle derivate Il linguaggio SQL: viste e tabelle derivate Sistemi Informativi L-A Home Page del corso: http://www-db.deis.unibo.it/courses/sil-a/ Versione elettronica: SQLd-viste.pdf Sistemi Informativi L-A DB di riferimento

Dettagli

Il linguaggio SQL: viste e tabelle derivate. Versione elettronica: SQLd-viste.pdf

Il linguaggio SQL: viste e tabelle derivate. Versione elettronica: SQLd-viste.pdf Il linguaggio SQL: viste e tabelle derivate Versione elettronica: SQLd-viste.pdf DB di riferimento per gli esempi Imp Sedi CodImp Nome Sede Ruolo Stipendio Sede Responsabile Citta E001 Rossi S01 Analista

Dettagli

Azioni. Select e join non consentono di modificare il contenuto del DB. Inserzione di nuovi dati. Azioni desiderate. Aggiornamento di dati

Azioni. Select e join non consentono di modificare il contenuto del DB. Inserzione di nuovi dati. Azioni desiderate. Aggiornamento di dati Azioni Select e join non consentono di modificare il contenuto del DB Azioni desiderate Inserzione di nuovi dati Aggiornamento di dati Cancellazione di dati Aggiunta di un record insert into utenti(nome,tel,codice_u)

Dettagli

SQL. Laboratorio di Progettazione di Basi di Dati (CdS in Informatica e TPS)

SQL. 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. 2014/2015 http://www.di.uniba.it/~lisi/courses/basi-dati/bd2014-15.htm Dott.ssa Francesca A. Lisi dott.ssa Francesca A.

Dettagli

Basi di Dati: Corso di laboratorio

Basi di Dati: Corso di laboratorio Basi di Dati: Corso di laboratorio Lezione 2 Raffaella Gentilini 1 / 45 Sommario 1 Il DDL di SQL: Cancellazione ed Aggiornamento di una BD Cancellazione di Schemi, Tabelle, e Domini Aggiornamento di Tabelle

Dettagli

PHP e Structured Query Language

PHP e Structured Query Language Esercitazioni del corso di Tecnologie per la Comunicazione Aziendale PHP e Structured Query Language Marco Loregian loregian@disco.unimib.it www.siti.disco.unimib.it/didattica/tca2008 Interrogazioni (ripasso)

Dettagli

Il linguaggio PL/SQL

Il linguaggio PL/SQL Il linguaggio PL/SQL Prof. Matteo Golfarelli Alma Mater Studiorum - Università di Bologna Per approfondimenti: ORACLE 11g Rel. 2 Concepts ORACLE 11g Rel. 2 PL/SQL Language Reference 1 Cos è PL/SQL? Il

Dettagli

********************* MODIFICA STRUTTURA DI UNA TABELLA (inserimento di un nuovo campo) ALTER TABLE Personale ADD Nascita date;

********************* MODIFICA STRUTTURA DI UNA TABELLA (inserimento di un nuovo campo) ALTER TABLE Personale ADD Nascita date; CREAZIONE STRUTTURA DI UNA TABELLA by Marinsalta Fausto CREATE TABLE Personale Matricola char(5), Cognome char(30), Nome char(20), Codfis char(16) not null, Assunzione date, Filiale smallint, Funzione

Dettagli

Vincoli di Integrità

Vincoli di Integrità Vincoli di Integrità Antonella Poggi Dipartimento di informatica e Sistemistica Sapienza Università di Roma Progetto di Applicazioni Software Anno accademico 2010-2011 Questi lucidi sono stati prodotti

Dettagli

ROUTINE E PROGRAMMAZIONE

ROUTINE E PROGRAMMAZIONE LEZIONE-TSQL-02 TRIGGER E PROCEDURE (VER03 PAG. 1 / 6 LEZIONE-TSQL-02 TRIGGER E PROCEDURE (VER03 T-SQL PROGRAMMAZIONE PARTE SECONDA ROUTINE E PROGRAMMAZIONE In TSQL è possibile definire alcune routine

Dettagli

SQL e linguaggi di programmazione

SQL e linguaggi di programmazione SQL e linguaggi di programmazione Complementi di Basi di Dati 1 SQL e linguaggi di programmazione Angelo Montanari Dipartimento di Matematica e Informatica Università di Udine SQL e linguaggi di programmazione

Dettagli

Vincoli di Integrità Approccio dichiarativo alla loro implementazione

Vincoli di Integrità Approccio dichiarativo alla loro implementazione Vincoli di Integrità Approccio dichiarativo alla loro implementazione Antonella Poggi Dipartimento di informatica e Sistemistica SAPIENZA Università di Roma Progetto di Applicazioni Software Anno accademico

Dettagli

Aspetti relazionali ad oggetti di Oracle 9i. Il sistema di tipi di Oracle. Tipi oggetto

Aspetti relazionali ad oggetti di Oracle 9i. Il sistema di tipi di Oracle. Tipi oggetto Aspetti relazionali ad oggetti di Oracle 9i 158 Il sistema di tipi di Oracle Non distinct type Tipi oggetto Tipi riferimento Tipi collezione Ereditarietà 159 Tipi oggetto Possibilità di definire tipi oggetto

Dettagli

DBMS (Data Base Management System)

DBMS (Data Base Management System) Cos'è un Database I database o banche dati o base dati sono collezioni di dati, tra loro correlati, utilizzati per rappresentare una porzione del mondo reale. Sono strutturati in modo tale da consentire

Dettagli

Basi di dati (6) Docente: Andrea Bulgarelli. Università di Modena e Reggio Emilia. andrea.bulgarelli@gmail.com Argomento: T-SQL (1.

Basi di dati (6) Docente: Andrea Bulgarelli. Università di Modena e Reggio Emilia. andrea.bulgarelli@gmail.com Argomento: T-SQL (1. Università di Modena e Reggio Emilia Basi di dati (6) Docente: andrea.bulgarelli@gmail.com Argomento: T-SQL (1.0) 1 Panoramica T-SQL Variabili Controllo di flusso Trattamento errori Print Operatori e funzioni

Dettagli

Il linguaggio SQL. è di fatto lo standard tra i linguaggi per la gestione di data base relazionali.

Il linguaggio SQL. è di fatto lo standard tra i linguaggi per la gestione di data base relazionali. (Structured Query Language) : Il linguaggio è di fatto lo standard tra i linguaggi per la gestione di data base relazionali. prima versione IBM alla fine degli anni '70 per un prototipo di ricerca (System

Dettagli

Uso delle variabili di alias. SQL slide aggiuntive. Interrogazione 25. Interrogazione 26

Uso delle variabili di alias. SQL slide aggiuntive. Interrogazione 25. Interrogazione 26 Uso delle variabili di alias SQL slide aggiuntive Laurea magistrale in Scienze della mente Laurea magistrale in Psicologia dello sviluppo e dell'educazione educazione Non solo per disambiguare la notazione

Dettagli

DUGI, DB2 User Group Italia. i Trigger INSTEAD OF ; SELECT FROM INSERT, UPDATE, MERGE, DELETE con Colonne INCLUDE

DUGI, DB2 User Group Italia. i Trigger INSTEAD OF ; SELECT FROM INSERT, UPDATE, MERGE, DELETE con Colonne INCLUDE DUGI, DB2 User Group Italia Milano, 9 Aprile 2013 -- Roma 10 Aprile 2013 DB2 for z/os i Trigger INSTEAD OF ; SELECT FROM INSERT, UPDATE, MERGE, DELETE con Colonne INCLUDE massimo MACERA massimo MACERA

Dettagli

PHP 5. PHP ed i database. Database e tabelle. Struttura di un DB relazionale. Accesso a database

PHP 5. PHP ed i database. Database e tabelle. Struttura di un DB relazionale. Accesso a database PHP ed i database PHP 5 Accesso a database PHP funziona con molti database relazionale che includono: Oracle Access Postgres SQL Server MySQL Useremo MySQL poiché è semplice da usare, gratuito e molto

Dettagli

DUE GRUPPI DI COMANDI

DUE GRUPPI DI COMANDI LEZIONE16 SQL DDL PAG. 1 / 9 PROF. ANDREA ZOCCHEDDU LEZIONE16 SQL DDL LINGUAGGIO SQL DATA DESCRIPTION LANGUAGE DUE GRUPPI DI COMANDI I comandi del linguaggio SQL sono divisi in due grandi gruppi che formano

Dettagli

Definizione di domini

Definizione di domini Definizione di domini Come nei linguaggi ad alto livello (es. C) è possibile definire nuovi domini (tipi di dati) a partire da quelli predefiniti, anche se il costruttore è più limitato. create domain

Dettagli

SQL nei linguaggi di programmazione

SQL nei linguaggi di programmazione SQL nei linguaggi di programmazione Atzeni, Ceri, Paraboschi, Torlone Basi Di Dati Modelli e Linguaggi di Interrogazione, McGraw-Hill Italia, Capitolo 6 SQL in Linguaggi di Programmazione L uso diretto

Dettagli

Basi di Dati. Programmazione e gestione di sistemi telematici

Basi di Dati. Programmazione e gestione di sistemi telematici Basi di Dati. Programmazione e gestione di sistemi telematici Coordinatore: Prof. Paolo Nesi Docenti: Prof. Paolo Nesi Dr.sa Michela Paolucci Dr. Emanuele Bellini SQL SQL = Structured Query Language Linguaggio

Dettagli

Introduzione a MySQL

Introduzione a MySQL Introduzione a MySQL Cinzia Cappiello Alessandro Raffio Politecnico di Milano Prima di iniziare qualche dettaglio su MySQL MySQL è un sistema di gestione di basi di dati relazionali (RDBMS) composto da

Dettagli

APPLICAZIONI DELLE BASI DI DATI

APPLICAZIONI DELLE BASI DI DATI APPLICAZIONI DELLE BASI DI DATI APPLICAZIONI TRADIZIONALI APPLICAZIONI INTERNET SQL EMBEDDED SQL nel codice applicativo! I comandi SQL possono essere chiamati dall interno di un programma in un linguaggio

Dettagli

PHP 5. Accesso a database

PHP 5. Accesso a database PHP 5 Accesso a database PHP ed i database PHP funziona con molti database relazionali che includono: Oracle Access Postgres SQL Server MySQL Useremo MySQL poiché è semplice da usare, gratuito e molto

Dettagli

Dominio applicativo. Progettazione. v SQL incluso in codice applicativo v Embedded SQL v Cursori v Dynamic SQL v JDBC v Stored procedures

Dominio applicativo. Progettazione. v SQL incluso in codice applicativo v Embedded SQL v Cursori v Dynamic SQL v JDBC v Stored procedures Dominio applicativo (Capitolo 6) v SQL incluso in codice applicativo v Embedded SQL v Cursori v Dynamic SQL v JDBC v Stored procedures Basi di dati 1 Docente Claudia Amari 1 Progettazione PROGETTAZIONE

Dettagli

Abilità Informatiche A.A. 2010/2011 Lezione 9: Query Maschere Report. Facoltà di Lingue e Letterature Straniere

Abilità Informatiche A.A. 2010/2011 Lezione 9: Query Maschere Report. Facoltà di Lingue e Letterature Straniere Abilità Informatiche A.A. 2010/2011 Lezione 9: Query Maschere Report Facoltà di Lingue e Letterature Straniere Le QUERY 2 Che cos è una Query? Una Query rappresenta uno strumento per interrogare un database.

Dettagli

Indice Introduzione Elementi di base dei database Il linguaggio SQL (Structured Query Language)

Indice Introduzione Elementi di base dei database Il linguaggio SQL (Structured Query Language) Indice Introduzione XI Capitolo 1 Elementi di base dei database 1 1.1 Che cos è un database 1 1.2 L architettura di Oracle Database 10g 3 Progetto 1.1 L architettura di Oracle Database 10g 8 1.3 I tipi

Dettagli

Basi di dati (8) Docente: Andrea Bulgarelli. Università di Modena e Reggio Emilia. andrea.bulgarelli@gmail.com Argomento: trigger e cursori (1.

Basi di dati (8) Docente: Andrea Bulgarelli. Università di Modena e Reggio Emilia. andrea.bulgarelli@gmail.com Argomento: trigger e cursori (1. Università di Modena e Reggio Emilia Basi di dati (8) Docente: andrea.bulgarelli@gmail.com Argomento: trigger e cursori (1.1) 1 Panoramica Trigger Creazione Tipi di trigger Tabelle inserted/deleted Esempi

Dettagli

Basi di Dati prof. Letizia Tanca lucidi ispirati al libro Atzeni-Ceri-Paraboschi-Torlone. SQL: il DDL

Basi di Dati prof. Letizia Tanca lucidi ispirati al libro Atzeni-Ceri-Paraboschi-Torlone. SQL: il DDL Basi di Dati prof. Letizia Tanca lucidi ispirati al libro Atzeni-Ceri-Paraboschi-Torlone SQL: il DDL Parti del linguaggio SQL Definizione di basi di dati (Data Definition Language DDL) Linguaggio per modificare

Dettagli

Vincoli di Integrità

Vincoli di Integrità Vincoli di Integrità Approccio procedurale Antonella Poggi Dipartimento di informatica e Sistemistica Università di Roma La Sapienza Progetto di Applicazioni Software Anno accademico 2008-2009 Questi lucidi

Dettagli

INFORMATICA. Applicazioni WEB a tre livelli con approfondimento della loro manutenzione e memorizzazione dati e del DATABASE.

INFORMATICA. Applicazioni WEB a tre livelli con approfondimento della loro manutenzione e memorizzazione dati e del DATABASE. INFORMATICA Applicazioni WEB a tre livelli con approfondimento della loro manutenzione e memorizzazione dati e del DATABASE. APPLICAZIONI WEB L architettura di riferimento è quella ampiamente diffusa ed

Dettagli

Capitolo 7. Esercizio 7.1

Capitolo 7. Esercizio 7.1 Capitolo 7 Esercizio 7.1 Dato lo schema relazionale: IMPIEGATO (Nome, Salario, DipNum) DIPARTIMENTO (DipNum, NomeManager) Definire le seguenti regole attive in Oracle e DB2: 1. una regola, che quando il

Dettagli

Appunti di MySql. Evoluzione di un tutorial di base di mysql, scritto da Etel Sverdlov.

Appunti di MySql. Evoluzione di un tutorial di base di mysql, scritto da Etel Sverdlov. Appunti di MySql Evoluzione di un tutorial di base di mysql, scritto da Etel Sverdlov. Indice generale avviare la shell mysql...2 comandi SQL per la gestione del database (DDL)...2 visualizzare l'elenco

Dettagli

Istruzioni DML di SQL

Istruzioni DML di SQL Istruzioni DML di SQL Pag. 99 par.4 1 Sintassi: Costrutto: INSERT INTO (Inserimento di dati in tabelle) INSERT INTO [(, ,, )] VALUES (, ,

Dettagli

Cap. 5 Basi di dati attive

Cap. 5 Basi di dati attive SOMMARIO 2 Cap. 5 Basi di dati attive Introduzione. 3 Trigger in SQL:999.. Esecuzione di un solo trigger... 4 Esecuzione di più trigger... Esempio di esecuzione 23 Progettazione delle regole attive....

Dettagli

Uso dei data bases con PHP. Prof. Francesco Accaino Iis Altiero Spinelli Sesto Sa Giovanni

Uso dei data bases con PHP. Prof. Francesco Accaino Iis Altiero Spinelli Sesto Sa Giovanni Uso dei data bases con PHP Prof. Francesco Accaino Iis Altiero Spinelli Sesto Sa Giovanni MDAC MDAC è l acronimo di Microsoft Data Access Component e fa parte della tecnologia Microsoft denominata Universal

Dettagli

Data warehouse in Oracle

Data warehouse in Oracle Data warehouse in Oracle Viste materializzate ed estensioni al linguaggio i SQL per l analisi li i dei dati presenti nei data warehouse Estensioni al linguaggio SQL per l analisi dei dati presenti nei

Dettagli

Basi di dati e sistemi informativi I

Basi di dati e sistemi informativi I Basi di dati e sistemi informativi I mod. laboratorio Alessandro De Luca Università degli Studi di Napoli Federico II Lezione, 11 marzo 2015 Soluzione 1, creazione CREATE TABLE Impiegato ( Cod NUMBER(4),

Dettagli

SQL - Funzioni di gruppo

SQL - Funzioni di gruppo una funzione di gruppo permette di estrarre informazioni da gruppi di tuple di una relazione le funzioni di gruppo si basano su due concetti: partizionamento delle tuple di una relazione in base al valore

Dettagli

Basi di Dati: Corso di laboratorio

Basi 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

Dettagli

Database Lezione 1. Sommario. - Introduzione - Tabelle e chiave primaria - Query - Calcoli ed alias - Ordinamento

Database Lezione 1. Sommario. - Introduzione - Tabelle e chiave primaria - Query - Calcoli ed alias - Ordinamento Sommario - Introduzione - Tabelle e chiave primaria - Query - Calcoli ed alias - Ordinamento Introduzione - Un database è un archivio strutturato di dati che può essere manipolato con dei comandi nel linguaggio

Dettagli

Basi di dati. Microsoft Access. Cosa è. Pietro Pala (pala@dsi.unifi.it) Come iniziare. Aprire un database. Creare un database. Creare un database

Basi di dati. Microsoft Access. Cosa è. Pietro Pala (pala@dsi.unifi.it) Come iniziare. Aprire un database. Creare un database. Creare un database Cosa è Basi di dati Pietro Pala (pala@dsi.unifi.it) Microsoft Access Access è un DBMS relazionale in grado di supportare: Specifica grafica dello schema della base dati Specifica grafica delle interrogazioni

Dettagli

I comandi del linguaggio DDL (Data Definition Language): CREATE E ALTER

I comandi del linguaggio DDL (Data Definition Language): CREATE E ALTER Caratteristiche generali del linguaggio SQL Il linguaggio SQL è il linguaggio usato per la gestione dei database relazionali, cioè dei database creati con un DBMS di tipo relazionale. Esso nacque nella

Dettagli

SQL -DDL. FONDISTA(Nome, Nazione, Età) GAREGGIA(NomeFondista, NomeGara, Piazzamento) GARA(Nome, Luogo, Nazione, Lunghezza)

SQL -DDL. FONDISTA(Nome, Nazione, Età) GAREGGIA(NomeFondista, NomeGara, Piazzamento) GARA(Nome, Luogo, Nazione, Lunghezza) 26/03/2013 SQL SQL -DDL Esercizio 4.3 Dare le definizioni SQL delle tre tabelle FONDISTA(Nome, Nazione, Età) GAREGGIA(NomeFondista, NomeGara, Piazzamento) GARA(Nome, Luogo, Nazione, Lunghezza) rappresentando

Dettagli

Insegnamento di Informatica CdS Scienze Giuridiche A.A. 2006/7. Il trattamento dei dati

Insegnamento di Informatica CdS Scienze Giuridiche A.A. 2006/7. Il trattamento dei dati Insegnamento di Informatica CdS Scienze Giuridiche A.A. 2006/7 Il trattamento dei dati database: il linguaggio SQL seconda parte Prof. Valle D.ssa Folgieri Lez9 15.11.06 Trattamento dati. Database: il

Dettagli

INFORMATICA GENERALE Prof. Alberto Postiglione Dipartimento Scienze della Comunicazione Università degli Studi di Salerno

INFORMATICA GENERALE Prof. Alberto Postiglione Dipartimento Scienze della Comunicazione Università degli Studi di Salerno INFORMATICA GENERALE Prof. Alberto Postiglione Dipartimento Scienze della Comunicazione Università degli Studi di Salerno UD 3.1b: Costrutti di un Algoritmo Dispense 1.2 I Costrutti di base 13 apr 2010

Dettagli

Transazioni - Parte 1

Transazioni - Parte 1 Basi di dati II Lezione 3 09/10/2008 Caputo Domenico Cosimo, Francesco Pichierri Transazioni - Parte 1 Le transazioni hanno a che fare con la programmabilità delle basi di dati. Prima di trattarle è necessaria

Dettagli

DBMS ED APPLICAZIONI (CAPITOLO 6) SQL incluso in codice applicativo Embedded SQL Cursori Dynamic SQL JDBC Stored procedures

DBMS ED APPLICAZIONI (CAPITOLO 6) SQL incluso in codice applicativo Embedded SQL Cursori Dynamic SQL JDBC Stored procedures 1 DBMS ED APPLICAZIONI (CAPITOLO 6) SQL incluso in codice applicativo Embedded SQL Cursori Dynamic SQL JDBC Stored procedures Progettazione 2 Dominio Applicativo PROGETTAZIONE CONCETTUALE PROGETTAZIONE

Dettagli

JDBC versione base. Le classi/interfacce principali di JDBC

JDBC versione base. Le classi/interfacce principali di JDBC JDBC versione base Java Database Connectivity è il package Java per l accesso a database relazionali il package contiene interfacce e classi astratte uno dei pregi è la completa indipendenza del codice

Dettagli

Data Base. Master "Bio Info" Reti e Basi di Dati Lezione 6

Data Base. Master Bio Info Reti e Basi di Dati Lezione 6 Data Base 1 Sommario I concetti fondamentali. Database Relazionale.. Query e SQL MySql, Creazione di un db in MySQL con PHPmyAdmin Creazione database e delle Tabelle Query Inserimento Ricerca Modifica

Dettagli

Lezione 9. Applicazioni tradizionali

Lezione 9. Applicazioni tradizionali Lezione 9 Applicazioni tradizionali Pag.1 Sommario Concetti trattati in questa lezione: SQL nel codice applicativo Cursori API native ODBC Pag.2 SQL nel codice applicativo I comandi SQL possono essere

Dettagli

Structured Query Language parte 1

Structured Query Language parte 1 Consorzio per la formazione e la ricerca in Ingegneria dell'informazione Structured Query Language parte 1 Come interrogare una base di dati relazionale ed avere la risposta esatta Docente: Gennaro Pepe

Dettagli

MAX, SUM, AVG, COUNT)

MAX, SUM, AVG, COUNT) INTRODUZIONE A SQL Definizione di tabelle e domini Alcuni vincoli di integrità Struttura base SELECT FROM WHERE Funzioni di aggregazione (MIN, MAX, SUM, AVG, COUNT) Query da più tabelle (FROM R1, Rk) Join

Dettagli

ASP 3.0 Il Sito Dinamico

ASP 3.0 Il Sito Dinamico www.idstudio.it ASP 3.0 Il Sito Dinamico di Lorenzo Garassino Introduzione e scopo del libro 1. Scenario 1.1. Il panorama 1.2. Sito Statico o Dinamico? 1.3. Prospettive 2. Cos è ASP 2.1. Descrizione 2.2.

Dettagli

Utilizzo del linguaggio Basic utilizzando l interfaccia di Excel Silvia Patacchini

Utilizzo del linguaggio Basic utilizzando l interfaccia di Excel Silvia Patacchini Introduzione all utilizzo di Visual Basic for Application Utilizzo del linguaggio Basic utilizzando l interfaccia di Excel Silvia Patacchini PROGRAMMAZIONE Insieme delle attività da svolgersi per creare

Dettagli

Il linguaggio SQL. Il linguaggio SQL. Il linguaggio SQL. SQL - Tipi di dato. SQL - Tipi di dato numerici. SQL - Tipi di dato numerici

Il linguaggio SQL. Il linguaggio SQL. Il linguaggio SQL. SQL - Tipi di dato. SQL - Tipi di dato numerici. SQL - Tipi di dato numerici Il linguaggio SQL Il linguaggio SQL il linguaggio SQL è un linguaggio per la definizione e la manipolazione dei dati, sviluppato originariamente presso il laboratorio IBM a San Jose (California) è diventato

Dettagli

SQL - Tipi di dato Il linguaggio SQL

SQL - Tipi di dato Il linguaggio SQL SQL - Tipi di dato Il linguaggio SQL I tipi di dato in SQL:1999 si suddividono in tipi predefiniti tipi strutturati tipi user-defined ci concentreremo sui tipi predefiniti i tipi predefiniti sono suddivisi

Dettagli

6. Applicazione: gestione del centro sportivo Olympic

6. Applicazione: gestione del centro sportivo Olympic LIBRERIA WEB 6. Applicazione: gestione del centro sportivo Olympic PROGETTO Il centro sportivo Olympic organizza corsi di tipo diverso: nuoto, danza, karate, ecc. Ogni corso ha un unico istruttore prevalente,

Dettagli

Il linguaggio SQL: transazioni

Il linguaggio SQL: transazioni Il linguaggio SQL: transazioni Sistemi Informativi T Versione elettronica: 4.8.SQL.transazioni.pdf Cos è una transazione? Una transazione è un unità logica di elaborazione che corrisponde a una serie di

Dettagli

Funzioni scalari in SQL. Capitolo 5. coalesce. nullif. Altre funzioni scalari. case

Funzioni scalari in SQL. Capitolo 5. coalesce. nullif. Altre funzioni scalari. case Funzioni scalari in SQL Capitolo 5 Costrutti definiti in SQL-2 che estendono la sintassi delle espressioni nella target list coalesce nullif case Prof. Stefano Paraboschi Vengono valutate per ogni riga

Dettagli

Join in SQL (primo modo) Informatica. Tabella Dipartimento. Interrogazione 4a. Interrogazione 4b. Interrogazione 4a

Join in SQL (primo modo) Informatica. Tabella Dipartimento. Interrogazione 4a. Interrogazione 4b. Interrogazione 4a Join in SQL (primo modo) Informatica Lezione 7 Laurea magistrale in Psicologia Laurea magistrale in Psicologia dello sviluppo e dell'educazione Anno accademico: 09- Per formulare interrogazioni che coinvolgono

Dettagli

Oracle/SQL Tutorial 1

Oracle/SQL Tutorial 1 Oracle/SQL Tutorial 1 Michael Gertz Dipartimento Sistemi Informativi e Database, Informatica, Università della California, Davis gertz@cs.ucdavis.edu http://www.db.cs.ucdavis.edu Questo seminario su Oracle/SQL

Dettagli

DDL, VINCOLI D INTEGRITÁ, AGGIORNAMENTI E VISTE. SQL è più di un semplice linguaggio di interrogazione

DDL, 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

Dettagli

SQL e ACCESS. Modello relazionale PROBLEMA ENTITA STUDENTE

SQL e ACCESS. Modello relazionale PROBLEMA ENTITA STUDENTE SQL e ACCESS Prof. Salvatore Multazzu (salvatoremultazzu@tiscali.it) Applicazioni Informatiche nella comunicazione Modello relazionale Entità Record o Ennuple Attributi o Campi Tipi Chiavi Primarie (PK)

Dettagli