Stored Procedure. Prof. Alfredo Pulvirenti
|
|
|
- Gaetana Marta Di Gregorio
- 8 anni fa
- Просмотров:
Транскрипт
1 Stored Procedure Prof. Alfredo Pulvirenti
2 Stored Procedure Programmi memorizzati nel DBMS che vengono eseguiti su esplicita richiesta degli utenti. PL/pgSQL di PostgreSQL PL/SQL di Oracle SQL PL di DB2 Transact-SQL di SQL Server MySql Stored Procedure di MySQL,
3 Stored Procedure Generalmente i DBMS che supportano le stored procedure effettuano una loro compilazione in modo da ottimizzarne le esecuzioni. Le stored procedure possono accettare parametri ma non restituiscono valori; l eventuale valore viene restituito attraverso una variabile di output passata in input per indirizzo.
4 Stored Procedure Possono anche essere scritte in linguaggi standard: C/C++, Java Compilate come oggetti esterni e integrati dal DBMS In alcuni casi possono eseguire azioni esterne: Cancellare un file Spedire un
5 Stored Procedure Si tratta di un linguaggio procedurale che grazie ai suoi costrutti riesce a completare la natura dichiarativa di SQL: BEGIN, END, DECLARE, FOR, WHILE, LOOP, IF, etc
6 Modularizzazione programmi DECLARE Vantaggi delle S.P. BEGIN END;
7 Vantaggi delle S.P. Integrazione Applicazione Libreria condivisa DB Server
8 Prestazioni Elevate Vantaggi delle S.P. SQL Applicazione SQL SQL DBMS SQL Applicazione SQL IF...THEN SQL ELSE SQL END IF; SQL DBMS con S.P.
9 Vantaggi delle S.P. Portabilità. Elaborazioni complesse non altrimenti realizzabili usando solo query SQL. Riusabilità del codice e creazione di librerie. Accesso controllato alle tabelle (sicurezza). Consente la gestione degli errori.
10 Vantaggi delle S.P. La compilazione di una stored procedure avviene una volta sola, al suo inserimento. Consentono di condividere fra gli utenti delle attività comuni, in modo da centralizzare la manutenzione, la modifica etc Unificano la semantica di certe operazioni sul DB per ogni applicazione. Possono controllare in modo centralizzato certi vincoli d integrità non esprimibili nelle tabelle.
11 Svantaggi delle S.P. Le stored procedure aumentano il carico di lavoro per il server. A volte non si può utilizzare il linguaggio che si vorrebbe utilizzare, perché il DBMS non lo supporta. La logica di creare uno strato applicativo a livello di DB, non è compatibile con il modello logico di applicativi a tre livelli.
12 Tipi di sottoprogrammi Procedure Funzioni PROCEDURE name IS BEGIN --statements [EXCEPTION] FUNCTION name RETURN datatype IS BEGIN --statements RETURN value; [EXCEPTION] END; END;
13 Procedure in PL/SQL Una procedura e un blocco PL/SQL non anonimo che esegue delle azioni. Una procedura puo essere conservata nel database, come un qualsiasi altro oggetto del db.
14 CREATE [OR REPLACE] PROCEDURE nome_procedure (argomento1 [modo1] tipo_dati, argomento2 [modo2] tipo_dati,...) IS AS PL/SQL Block; Sintassi
15 PL/SQL di Oracle DECLARE Opzionale Variabili, cursori, eccezioni definite dall utente BEGIN Obbligatorio Comandi SQL Comandi PL/SQL EXCEPTION Opzionale Azioni da effettuare in caso di errori END; Obbligatorio DECLARE BEGIN EXCEPTION END;
16 PL/SQL: Struttura Blocco DECLARE v_variable VARCHAR2(5); BEGIN SELECT column_name INTO v_variable FROM table_name; EXCEPTION WHEN exception_name THEN... END; DECLARE BEGIN EXCEPTION END;
17 Costrutti Blocchi Anonimi DECLARE Procedure/ funzioni Memorizzate Applicazioni Trigger BEGIN EXCEPTION Applicazioni procedure/ funzioni Database trigger END; Pacchetti procedure/ funzioni
18 Variabili Variabili per: Immagazzinare dati temporaneamente Manipolare valori memorizzati Riutilizzo Facilita di gestione
19 Manipolazione variabili in PL/SQL Dichiarazione ed inizializzazione variabili nella sezione Declare Assegnamento di valori alle variabili nella sezione eseguibile. Passaggio variabili in blocchi PL/SQL attraverso parametri. Visualizzazione risultati attraverso variabili di output.
20 Tipi di variabili Variabili PL/SQL: Scalari Composte Referenze LOB (Large OBjects) Variabili Non-PL/SQL: Variabili ospite e Bind
21 Modi per i Parametri Formali IN Default Richiede che venga passato un valore. Agisce come una costante Puo essere una espressione, un letterale o una variabile OUT Da Specificare. Restituisce un valore al chiamante. Non viene inizializzato. Il parametro attuale deve essere una variabile. IN OUT Da Specificare. Passato al sottoprogramma e restituito al chiamante. Deve essere inizializzato. Il parametro attuale deve essere una variabile.
22 Esempio Parametri IN : 7369 v_id SQL> CREATE OR REPLACE PROCEDURE raise_salary 2 (v_id in emp.empno%type) 3 IS 4 BEGIN 5 UPDATE emp 6 SET sal = sal * WHERE empno = v_id; 8 END raise_salary; 9 / Procedure created. SQL> EXECUTE raise_salary (7369) PL/SQL procedure successfully completed.
23 Esempio Parametri OUT: Calling environment QUERY_EMP procedure 7654 v_id MARTIN v_name v_salary v_comm
24 Valorizzazione dei parametri OUT : SQL> CREATE OR REPLACE PROCEDURE query_emp 1 (v_id IN emp.empno%type, 2 v_name OUT emp.ename%type, 3 v_salary OUT emp.sal%type, 4 v_comm OUT emp.comm%type) 5 IS 6 BEGIN 7 SELECT ename, sal, comm 8 INTO v_name, v_salary, v_comm 9 FROM emp 10 WHERE empno = v_id; 11 END query_emp; 12 /
25 Uso dei Parametri IN OUT: Calling environment FORMAT_PHONE procedure ' ' '(800) ' v_phone_no SQL> CREATE OR REPLACE PROCEDURE format_phone 2 (v_phone_no IN OUT VARCHAR2) 3 IS 4 BEGIN 5 v_phone_no := '(' SUBSTR(v_phone_no,1,3) 6 ')' SUBSTR(v_phone_no,4,3) 7 '-' SUBSTR(v_phone_no,7); 8 END format_phone; 9 /
26 Posizionale Metodi di associazione dei Parametri nell invocazione Per associazione col nome del parametro
27 Esempio SQL> CREATE OR REPLACE PROCEDURE add_dept 1 (v_name IN dept.dname%type DEFAULT 'unknown', 2 v_loc IN dept.loc%type DEFAULT 'unknown') 3 IS 4 BEGIN 5 INSERT INTO dept 6 VALUES (dept_deptno.nextval, v_name, v_loc); 7 END add_dept; 8 /
28 Esempi di passaggio di parametri a add_dept() SQL> BEGIN 2 add_dept; 3 add_dept ( 'TRAINING', 'NEW YORK'); 4 add_dept ( v_loc => 'DALLAS', v_name =>'EDUCATION'); 5 add_dept ( v_loc => 'BOSTON') ; 6 END; 7 / PL/SQL procedure successfully completed. SQL> SELECT * FROM dept; DEPTNO DNAME LOC unknown unknown 42 TRAINING NEW YORK 43 EDUCATION DALLAS 44 unknown BOSTON
29 Invocazione di procedure da blocchi anonimi PL/SQL DECLARE v_id NUMBER := 7900; BEGIN raise_salary(v_id); COMMIT;... --invoke procedure END;
30 Invocazione di procedure da Stored Procedure SQL> CREATE OR REPLACE PROCEDURE process_emps 2 IS 3 CURSOR emp_cursor IS 4 SELECT empno 5 FROM emp; 6 BEGIN 7 FOR emp_rec IN emp_cursor 8 LOOP 9 raise_salary(emp_rec.empno); --invoke procedure 10 END LOOP; 11 COMMIT; 12 END process_emps; 13 /
31 Cancellare una procedura Sintassi: DROP PROCEDURE procedure_name Esempio: SQL> DROP PROCEDURE raise_salary; Procedure dropped.
32 Introduzione alle Stored Functions Una funzione e un blocco PL/SQL non anonimo che restituisce un valore. Le funzioni possono essere immagazzinate nel DB come le procedure. Una funzione puo essere invocata all interno di espressioni.
33 Sintassi CREATE [OR REPLACE] FUNCTION nome_funzione (argomento1 [modo1] tipo_dati, argomento2 [modo2] tipo_dati,...) RETURN tipo_dati IS AS PL/SQL Block; Il blocco PL/SQL deve restituire un valore il cui tipo e specificato nella clausola RETURN.
34 Esempio di Stored Function SQL> CREATE OR REPLACE FUNCTION get_sal 2 (v_id IN emp.empno%type) 3 RETURN NUMBER 4 IS 5 v_salary emp.sal%type :=0; 6 BEGIN 7 SELECT sal 8 INTO v_salary 9 FROM emp 10 WHERE empno = v_id; 11 RETURN (v_salary); 12 END get_sal; 13 /
35 Eseguire le Funzioni Invocare una funzione in una espressione PL/SQL. Eseguire le funzioni in SQL*PLUS usando variabili di appoggio.
36 Esempio con SQL*Plus: Calling environment 7934 GET_SAL function v_id SQL> START get_salary.sql Function created. SQL> VARIABLE g_salary number SQL> EXECUTE :g_salary := get_sal(7934) PL/SQL procedure successfully completed. SQL> PRINT g_salary G_SALARY RETURN v_salary
37 Dove Invocare Funzioni User- Nella target list della SELECT Defined Nelle clausole WHERE ed HAVING CONNECT BY, START WITH, ORDER BY, e GROUP BY. Nella clausola VALUES del comando INSERT. Nella clausola SET del comando UPDATE.
38 Restrizioni nell uso di funzioni in SQL I soli parametri consentiti in una funzione user-defined sono di tipo IN. Non si possono utilizzare tipi PL/SQL ma solo tipi consentiti in SQL. Il passaggio di parametri puo avvenire soltanto con la notazione posizionale. Per eseguire un stored function bisogna esserne il proprietario od avere il grant di EXECUTE.
39 Restrizioni nell uso di SQL nelle Funzioni Le seguenti Restrizioni sono applicate alle stored function eseguite in comandi SQL: I comandi INSERT, UPDATE o DELETE ed i rimanenti comandi che modifcano il DB non sono consentiti. Non sono consentite nelle funzioni chiamate a procedure che eseguono le suddette operazioni.
40 Funzioni Sintassi completa [CREATE [OR REPLACE]] FUNCTION function_name[(parameter[, parameter]...)] RETURN datatype} [AUTHID {DEFINER CURRENT_USER}] [PARALLEL_ENABLE] [DETERMINISTIC] {IS AS} [PRAGMA AUTONOMOUS_TRANSACTION;] [local declarations] BEGIN executable statements [EXCEPTION exception handlers] END [name];
41 Procedure o Funzioni? Procedure Eseguono statement PL/SQL Non hanno la clausola RETURN Possono restituire 0 o piu valori Funzioni Sono invocate all interno di espressioni Devono contenere la clausola RETURN Devono restituire un solo valore.
42 Overview sui Package Raggruppano oggetti PL/SQL correlati: tipi, cursori, variabili, funzioni e procedure. Un package e formato da due parti: La Specifica Il Corpo (detto Body) Puo essere condiviso da molte applicazioni. Quando viene invocato un elemento del package l intero package e caricato in memoria.
43 Vantaggi dei Package Modularita, rendono piu facile costruire complesse applicazioni. Information hiding: consentono di sfruttare tecniche di incapsulamento ed overloading tipiche della programmazione OOP, fornendo cosi interfacce semplici verso l utente.
44 Specifica del Package Sintassi CREATE [OR REPLACE] PACKAGE nome_package IS AS dichiarazione dei tipi publici specifiche dei metodi END nome_package;
45 Esempio di specifica SQL>CREATE OR REPLACE PACKAGE comm_package IS 2 g_comm NUMBER := 10; --initialized to 10 3 PROCEDURE reset_comm 4 (v_comm IN NUMBER); 5 END comm_package; 6 /
46 Package Body Sintassi CREATE [OR REPLACE] PACKAGE BODY nome_package IS AS dichiarazione tipi privati body del sottoprogramma END nome_package;
47 Esempio di Package SQL> CREATE OR REPLACE PACKAGE BODY comm_package 2 IS 3 FUNCTION validate_comm 4 (v_comm IN NUMBER) 5 RETURN BOOLEAN 6 IS 7 v_max_comm NUMBER; 8 BEGIN 9 SELECT max(comm) 10 INTO v_max_comm 11 FROM emp; 12 IF v_comm > v_max_comm 13 THEN RETURN(FALSE); 14 ELSE RETURN(TRUE); 15 END IF; 16 END validate_comm;
48 Invocare Elementi del Package SQL> EXECUTE comm_package.reset_comm(1500) SQL> EXECUTE scott.comm_package.reset_comm(1500)
49 Rimozione di Packages Per rimuovere l intero package: DROP PACKAGE package_name Per rimuovere solo il corpo del package: DROP PACKAGE BODY package_name
50 Cursori SQL Un cursore e una area di lavoro SQL privata. Due tipi di cursori: Impliciti Espliciti Oracle usa cursori impliciti per fare il parsing ed eseguire comandi SQL. I cursori espliciti sono dichiarati dagli sviluppatori.
51 Cursori SQL: Attributi Usare gli attributi dei cursori, per controllare l output dei comandi SQL. SQL%ROWCOUNT Numero di righe restituite dal comando piu recente (valore intero) SQL%FOUND Attributo Booleano che restituisce TRUE se il piu recente comando SQL ha restituito una o piu righe SQL%NOTFOUND Attributo Booleano che restituisce TRUE se il piu recente comando SQL non ha ha restituito righe SQL%ISOPEN Restituisce sempre FALSE perche PL/SQL chiude i cursori impliciti subito dopo la fine dell esecuzione
52 Cursori SQL: Attributi Cancellare una riga che ha un numero particolare di ordine nella tabella ITEM. Visualizzare il numero della riga cancellata. Esempio VARIABLE rows_deleted VARCHAR2(30) DECLARE v_ordid NUMBER := 605; BEGIN DELETE FROM item WHERE ordid = v_ordid; :rows_deleted := (SQL%ROWCOUNT ' rows deleted.'); END; / PRINT rows_deleted
53 Cursori Ogni comando SQL eseguito da Oracle ha un cursore individuale associato ad esso: Cursori impliciti: Dichiarati per comandi DML e PL/SQL SELECT Cursori espliciti: Dichiarati ed usati dal programmatore
54 Funzioni sui cursori espliciti Insieme attivo Cursor 7369 SMITH CLERK 7566 JONES MANAGER 7788 SCOTT ANALYST 7876 ADAMS CLERK 7902 FORD ANALYST Riga corrente
55 Controllare cursori Espliciti No DECLARE OPEN FETCH EMPTY? Yes CLOSE Creare un area SQL con nome Identificare l insieme attivo Inserire la riga corrente dentro una variabile Controllare se esistono righe Ritornare a FETCH se viene trovata una riga Rilasciare l insieme attivo
56 Controllo dei cursori espliciti Aprire il cursore Pointer Cursor Fetch di una riga dal cursore. Pointer Cursor Continuare fino alla fine Pointer Cursor Chiudere il cursore.
57 Dichiarare un cursore Sintassi CURSOR cursor_name IS select_statement; Non includere la clausola INTO nella dichiarazione del cursore. Se e richiesto il processing di una sequenza di righe usare la clausola ORDER BY.
58 Dichiarare un cursore Esempio DECLARE CURSOR emp_cursor IS SELECT empno, ename FROM emp; CURSOR dept_cursor IS SELECT * FROM dept WHERE deptno = 10; BEGIN...
59 Aprire un cursore Sintassi OPEN cursor_name; Aprire un cursore per eseguire la query ed identificare l insieme attivo. Se la query non restituisce riga non c e eccezione. Usare gli attributi del cursore per testare l output dopo la fetch.
60 Sintassi Fetch dei Dati da un cursore FETCH cursor_name INTO [variable1, variable2,...] record_name]; Inserire I valori della riga corrente nelle variabili. Includere lo stesso numero di variabili. Match ogni variabile alla corrispondente posizione della colonna. Test per vedere se il cursore contiene righe.
61 Fetch dei dati da Cursore Esempio FETCH emp_cursor INTO v_empno, v_ename;... OPEN defined_cursor; LOOP FETCH defined_cursor INTO defined_variables EXIT WHEN...; Process the retrieved data... END;
62 Chiudere un cursore Sintassi CLOSE cursor_name; Chiudere un cursore dopo il completamento del fetching delle righe. Riaprire un cursore se richiesto. Non aspettare dati da un cursore dopo che e stato chiuso.
63 Attributi dei cursori espliciti Ottenere informazioni di stato da un cursore. Attributo Tipo Descrizione %ISOPEN Booleano TRUE se il cursore e aperto %NOTFOUND Boolean TRUE se la fetch piu recente non ha restituito righe %FOUND Boolean TRUE se la piu recente fetch ha restituito dei valori complementare di %NOTFOUND %ROWCOUNT Number Valuta il numero totale di righe restitutie dalla fetch
64 Controllare fetch multiple Processare diverse righe da un cursore esplicito usando un loop. Fetch di una riga alla volta. Usare l attributo %NOTFOUND per testare se la fetch va a mal fine. Usare un attributo di cursore esplicito per testare il risultato di ogni fetch.
65 Attributo %ISOPEN Fetch di righe solo quando il cursore e aperto. Usare l attributo %ISOPEN prima di effettuare una fetch per testare se il cursore e aperto. Esempio IF NOT emp_cursor%isopen THEN OPEN emp_cursor; END IF; LOOP FETCH emp_cursor...
66 Uso di %NOTFOUND e %ROWCOUNT Usare l attributo %ROWCOUNT per ottenere il numero esatto di righe. Usare %NOTFOUND per determinare l uscita da un loop.
67 Cursori e record Processare le righe di un insieme attivo attraverso il fetching dei valori in RECORD PL/SQL. Esempio DECLARE CURSOR emp_cursor IS SELECT empno, ename FROM emp; emp_record emp_cursor%rowtype; BEGIN OPEN emp_cursor; LOOP FETCH emp_cursor INTO emp_record;...
68 Cursori per FOR Loop Sintassi FOR record_name IN cursor_name LOOP statement1; statement2;... END LOOP; Il cursore FOR loop e un collegamento a un cursore esplicito. Si hanno open, fetch e close implicite. Il record e dichiarato in maniera implicita.
69 Cursore FOR Loop Recuperare gli impiegati uno ad uno fino alla fine. Esempio DECLARE CURSOR emp_cursor IS SELECT ename, deptno FROM emp; BEGIN FOR emp_record IN emp_cursor LOOP -- implicit open and implicit fetch occur IF emp_record.deptno = 30 THEN... END LOOP; -- implicit close occurs END;
70 Cursori FOR Loop attraverso l uso di sottoquery Non si necessita di dichiarare cursori. Esempio BEGIN FOR emp_record IN (SELECT ename, deptno FROM emp) LOOP -- implicit open and implicit fetch occur IF emp_record.deptno = 30 THEN... END LOOP; -- implicit close occurs END;
71 Cursori con parametri Sintassi CURSOR cursor_name [(parameter_name datatype,...)] IS select_statement; Passare i valori dei parametri al cursore quando esso è aperto. Un cursore esplicito può essere aperto diverse volte con parametri differenti.
72 Cursori con parametri Passare il numero di dipartimento ed il nome dell impiegato nella clausola WHERE. Esempio DECLARE CURSOR emp_cursor (p_deptno NUMBER, p_job VARCHAR2) IS SELECT empno, ename FROM emp WHERE deptno = p_deptno AND job = p_job; BEGIN OPEN emp_cursor(10, 'CLERK');...
73 Clausola FOR UPDATE Sintassi SELECT... FROM... FOR UPDATE [OF column_reference][nowait]; Lock esplicito da accesso negato durante la transazione. Lock delle righe prima di UPDATE O DELETE.
74 Clausola FOR UPDATE Prendere gli impiegati che lavorano nel dipartimento 30. Esempio DECLARE CURSOR emp_cursor IS SELECT empno, ename, sal FROM emp WHERE deptno = 30 FOR UPDATE OF sal NOWAIT;
75 Clausola WHERE CURRENT OF Sintassi WHERE CURRENT OF cursor ; Usare il cursore per cancellare o aggiornare la riga corrente. Includere la clausola FOR UPDATE nella query cursore per guardare prima le righe. Usare la clausola WHERE CURRENT OF per riferirsi alla riga corrente di un cursore esplicito.
76 Esempio Clausola WHERE CURRENT OF DECLARE CURSOR sal_cursor IS SELECT sal FROM emp WHERE deptno = 30 FOR UPDATE OF sal NOWAIT; BEGIN FOR emp_record IN sal_cursor LOOP UPDATE emp SET sal = emp_record.sal * 1.10 WHERE CURRENT OF sal_cursor; END LOOP; COMMIT; END;
77 Cursori con sottoquery Esempio DECLARE CURSOR my_cursor IS SELECT t1.deptno, t1.dname, t2.staff FROM dept t1, (SELECT deptno, count(*) STAFF FROM emp GROUP BY deptno) t2 WHERE t1.deptno = t2.deptno AND t2.staff >= 5;
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
Oracle PL/SQL. Motivazioni
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
Silvia 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
Triggers. Antonella Poggi, Claudio Corona. Dipartimento di informatica e Sistemistica Università di Roma La Sapienza
Triggers Antonella Poggi, Claudio Corona Dipartimento di informatica e Sistemistica Università di Roma La Sapienza Progetto di Applicazioni Software Anno accademico 2008-2009 Questi lucidi sono stati prodotti
Stored Procedure. Antonella Poggi. Dipartimento di informatica e Sistemistica Sapienza Università di Roma
Stored Procedure Antonella Poggi Dipartimento di informatica e Sistemistica Sapienza Università di Roma Progetto di Applicazioni Software Anno accademico 2010-2011 Questi lucidi sono stati prodotti sulla
VARIABILI, ASSEGNAZIONE, DECISIONI
LEZIONE-TSQL-03 PROGRAMMAZIONE (VER02) PAG. 1 / 6 LEZIONE-TSQL-03 PROGRAMMAZIONE (VER02) T-SQL PROGRAMMAZIONE PARTE TERZA VARIABILI, ASSEGNAZIONE, DECISIONI Tratto da Gregory A. Larsen, http://www.databasejournal.com/features/mssql/article.php/3087431/t-sql-programming-part-1---defining-variables-and-if-logic.htm
SQL 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
Manuale 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,
Basi 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
Operazioni scatenanti. Nozione ed uso. Sintassi. Esempio
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
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
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
Tecnologia delle Basi di Dati Esercitazione #4 Definizione dei trigger in Oracle
Tecnologia delle Basi di Dati Esercitazione #4 Definizione dei trigger in Oracle 1 Materiale disponibile Gli script e il testo delle esercitazioni sono disponibili nel direttorio della propria home, nella
Domande utili alla preparazione dell orale di Informatica all Esame di Stato
Domande utili alla preparazione dell orale di Informatica all Esame di Stato 1.Al livello fisico un database si appoggia ai files per contenere i suoi dati? 2.Esistono altri modelli di organizzazione oltre
Connessione con MySQL
Connessione con MySQL Architettura Server-Side Eventuali parametri cookie sessioni Elaborazione SELECT... DATABASE Quando i dati sono molti e la persistenza deve andare altre la sessione o la durata
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
Laboratorio di PL/SQL 3 Esercizi svolti e valutati
Laboratorio di PL/SQL 3 Esercizi svolti e valutati Prof. Alessandra Lumini Alma Mater Studiorum - Università di Bologna Per la sintassi PL/SQL: ORACLE 11g Rel. 2 PL/SQL Language Reference 1 Perché usare
Structured 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
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:
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
4. I moduli in Access 2000/2003
LIBRERIA WEB 4. I moduli in Access 2000/2003 Il modulo è uno degli oggetti del database di Access e rappresenta un insieme di dichiarazioni e routine scritte con il linguaggio Visual Basic, memorizzate
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.
Spiegazioni esercizio Gestione Tabella con PHP e MySQL
Spiegazioni esercizio Gestione Tabella con PHP e MySQL foglio_di_stile.css (foglio di stile esterno) Questo file contiene: 1. la struttura generale delle quattro pagine web dinamiche: index.php, inserisci.php,
Modularizzazione del software
Modularizzazione del software Ing. Luca De Santis DIS - Dipartimento di informatica e sistemistica Anno accademico 2006/2007 Fortran 90: Subroutine e function DIS - Dipartimento di informatica e sistemistica
σ 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)
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
MODULO 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,
7 - Programmazione procedurale: Dichiarazione e chiamata di metodi ausiliari
7 - Programmazione procedurale: Dichiarazione e chiamata di metodi ausiliari Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa
Basi di dati (8) Docente: Andrea Bulgarelli. Università di Modena e Reggio Emilia. [email protected] Argomento: trigger e cursori (1.
Università di Modena e Reggio Emilia Basi di dati (8) Docente: [email protected] Argomento: trigger e cursori (1.1) 1 Panoramica Trigger Creazione Tipi di trigger Tabelle inserted/deleted Esempi
SQL 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
2011 Politecnico di Torino 1
SQL per le applicazioni Esercitazione PHP e MySQL Svolgimento D B M G Passi di risoluzione creazione e popolamento della base di dati Creazione di un script SQL Passo 2 creazione di una query d interrogazione
Capitolo 5 - Funzioni
Capitolo 5 - Funzioni Divide and conquer Introduzione Costruire un programma da pezzi più piccoli o da singole componenti Questi pezzi più piccoli sono chiamati moduli Ogni singolo pezzo è più facilmente
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
Perché il linguaggio C?
Il linguaggio C 7 Perché il linguaggio C? Larga diffusione nel software applicativo Standard di fatto per lo sviluppo di software di sistema Visione a basso livello della memoria Capacità di manipolare
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
SQL - 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
Funzioni, Stack e Visibilità delle Variabili in C
Funzioni, Stack e Visibilità delle Variabili in C Programmazione I e Laboratorio Corso di Laurea in Informatica A.A. 2016/2017 Calendario delle lezioni Lez. 1 Lez. 2 Lez. 3 Lez. 4 Lez. 5 Lez. 6 Lez. 7
Capitolo 5. Soluzione: Soluzione in C:
Capitolo 5 Esercizio 5.1 Realizzare una procedura in un linguaggio di programmazione di alto livello che tramite SQL Embedded elimina dalla tabella DIPARTIMENTO l'elemento che ha il nome che viene fornito
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
Caratteristiche 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;
14 - Metodi e Costruttori
14 - Metodi e Costruttori Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it
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
Estensioni 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
Fondamenti di Teoria delle Basi di Dati
Fondamenti di Teoria delle Basi di Dati Riccardo Torlone Parte 1: Introduzione Obiettivi La conoscenza della teoria delle basi di dati? No (o non solo) Piuttosto: Come si può affrontare un problema in
Structured. 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
Linguaggio C: le funzioni. Introduzione e sintassi
ISIS "Guido Tassinari" di Pozzuoli Indirizzo Informatico - Articolazione Informatica Informatica Prof. A.S. 2012/2013 Linguaggio C: le funzioni. Introduzione e sintassi 21/10/2012 Introduzione Spesso alcuni
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
Elena 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
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
Triggers Esercitazione 1
Triggers Esercitazione 1 Nel seguente documento vengono mostrati alcuni esempi di trigger e di funzioni pgplsql. Si ricorda che i trigger vengono eseguiti al verificarsi di certe condizioni definite dal
Basi 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
Interrogare 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 è
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
SISTEMI OPERATIVI, RETI, INTERNET
Competenze e Unità didattica formativa capitalizzabile 4.1 SISTEMI OPERATIVI, RETI, INTERNET Comprendere il significato dell'evoluzione dei sistemi operativi. Comprendere che cosa fa un sistema operativo
Basi di Dati CREAZIONE E POPOLAMENTO DI UNA BASE DI DATI
Basi di Dati CREAZIONE E POPOLAMENTO DI UNA BASE DI DATI La finalità di questa esercitazione è quella di creare, date delle specifiche progettuale, appositi script di creazione e popolamento di una base
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ù
Le basi del linguaggio Java
Le basi del linguaggio Java Compilazione e interpretazione Quando si compila il codice sorgente scritto in Java, il compilatore genera il codice compilato, chiamato bytecode. È un codice generato per una
UD4 - MATLAB. M-file. Efficienza degli algoritmi. Formati d uscita
UD4 - MATLAB M-file. Efficienza degli algoritmi. Formati d uscita M-files In MatLab è possibile eseguire istruzioni contenute in file esterni; Tali file sono chiamati M-file perché devono avere estensione.m
Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore
Programma del corso Introduzione agli algoritmi Rappresentazione delle Informazioni Architettura del calcolatore Reti di Calcolatori Elementi di Programmazione Algoritmi e programmi Algoritmo Sequenza
Oracle Database 11g: Introduzione a SQL Release 2
Oracle University Contact Us: 800 672 253 Oracle Database 11g: Introduzione a SQL Release 2 Duration: 5 Days What you will learn In questo corso gli studenti apprenderanno i concetti dei database relazionali.
DATABASE PER IL WEB. Programmazione Web 1
DATABASE PER IL WEB Programmazione Web 1 Archite3ura web con database Client Tier Web/App Tier DB Tier Client Web / App Server Database Il server web comunica con un altro server che con8ene il la banca
SQL: Definizione e Manipolazione di Relazioni. Capitolo 2
SQL: Definizione e Manipolazione di Relazioni Capitolo 2 1 Sintassi della Creazione di uno Schema Relazionale CREATE TABLE ( [NOT NULL] [UNIQUE] [],...,...,
Funzioni in C. Funzioni. Strategie di programmazione. Funzioni in C. Come riusare il codice? (2/3) Come riusare il codice? (1/3)
Funzioni Il concetto di funzione Parametri formali e attuali Il valore di ritorno Definizione e chiamata di funzioni Passaggio dei parametri Corpo della funzione 2 Strategie di programmazione Riuso di
Corso di Basi di Dati/Laboratorio di Basi di Dati
Corso di Basi di Dati/Laboratorio di Basi di Dati ed. 2007-2008 Alfredo Cuzzocrea (ICAR & DEIS, Università della Calabria) 0984-494618 [email protected] http://si.deis.unical.it/~cuzzocrea SITO
SQL - 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)
Per poter interagire con un database in rete mediante uno script php bisogna. innanzitutto cerare una connessione. Ciò si ottiene mediante la funzione
MYSQL E PHP Per poter interagire con un database in rete mediante uno script php bisogna innanzitutto cerare una connessione. Ciò si ottiene mediante la funzione MySQL_connect(nome del host, nome utente,
Laboratorio di Programmazione Lezione 2. Cristian Del Fabbro
Laboratorio di Programmazione Lezione 2 Cristian Del Fabbro Prossima lezione GIOVEDÌ 29 OTTOBRE 14:00 Input da tastiera package input; import java.io.*; public class Input { public static void main(string[]
Data 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
Definizione di metodi in Java
Definizione di metodi in Java Un metodo in Java definisce un operazione ad alto livello (sottoprogramma) che consente di manipolare dati e oggetti. Durante la computazione effettuata da un programma, un
Programmazione Orientata agli Oggetti. Emilio Di Giacomo e Walter Didimo
Programmazione Orientata agli Oggetti Emilio Di Giacomo e Walter Didimo Una metafora dal mondo reale la fabbrica di giocattoli progettisti Un semplice giocattolo Impara i suoni Dall idea al progetto Toy
Sommario. Introduzione... 13
Sommario Introduzione... 13 1. Database pro e contro... 19 A cosa serve conoscere i database?...19 Le alternative alla gestione manuale...22 Quando non serve un database?...24 Domande ed esercizi...26
MY SQL Guida MySQL di base
2017 MY SQL Guida MySQL di base Progetto di Alternanza Scuola-Lavoro Anno scolastico 2016-2017 Istituto Tecnico Enrico Fermi, Siracusa Eleonora SikeWEB 15/05/2017 MySQL Collegarsi ad un database e interagire
Interrogazioni 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,
