MySQL Procedure, funzioni, trigger e scheduling
|
|
|
- Silvana Dolce
- 9 anni fa
- Visualizzazioni
Transcript
1 Corso di Laurea in Informatica Base Dati a.a MySQL Procedure, funzioni, trigger e scheduling Laboratorio Ing. G. Laboccetta Dott.ssa. V. Policicchio
2 Definizione di stored procedure Una stored routine è costituita o da una procedura o da una funzione Una stored procedure è costituita da un insieme di istruzioni SQL che vengono memorizzate nel server con un nome identificativo, può essere invocata con CALL e torna indietro valori usando le variabili di output Una stored function può essere chiamata mediante il solo nome, e può ritornare un valore scalare Delle stored routines possono chiamare altre stored routines
3 Proprietà Una stored routine è associata ad un particolare database, e questo vuol dire che: 1. Quando viene invocata, implicitamente viene eseguito USE <database>, non sono ammessi USE all interno della routine 2. E possibile riferirsi ad una routine non presente nel database corrente prefissandola con il nome del suo database 3. Il DROP del db provoca il DROP delle routine associate Se non indicato diversamente le SR sono associate al DB di default
4 Perché usare una SR? Girano in qualsiasi ambiente. Dato che sono sul server del DB, non dipendono dall applicativo che le usa e dal linguaggio di programmazione. L aggiornamento di una SR aggiorna la logica di funzionamento del DB senza la necessità di modificare i client Possono ridurre il traffico di rete, utilizzando dei result set direttamente sul DB senza muoverli verso il client per l elaborazione.
5 Sintassi CREATE [DEFINER = { user CURRENT_USER }] PROCEDURE sp_name ([proc_parameter[,...]]) [characteristic...] routine_body //parametri: [ IN OUT INOUT ] nomeparametro tipo CREATE [DEFINER = { user CURRENT_USER }] FUNCTION sp_name ([func_parameter[,...]]) RETURNS type [characteristic...] routine_body
6 Esempio di procedura DELIMITER // CREATE PROCEDURE simpleproc (OUT param1 int) BEGIN SELECT COUNT(*) INTO param1 FROM imp; END; // DELIMITER ; CALL simpleproc(@a);
7 Osservazioni DELIMITER cambia il terminatore di linea da ; a //, in modo che sia possibile usare ; nella definizione della procedura e non venga interpretato da mysql La procedura torna un risultato tramite l unico parametro definito, che è un parametro di uscita. Il parametro viene riempito dalla istruzione CALL, e letto tramite una semplice SELECT E possibile avere procedure molto più complesse Per ottenere informazioni a proposito delle procedure: SHOW PROCEDURE STATUS; SHOW CREATE PROCEDURE <nome>;
8 Procedura complessa DELIMITER // CREATE PROCEDURE procedura1 (param1 INT, param2 CHAR(3), OUT param3 INT) BEGIN DECLARE finito INT default 0; END; // DELIMITER ; DECLARE a INT; DECLARE b CHAR(50); DECLARE cur1 CURSOR FOR SELECT id,nome FROM clienti WHERE cat = param2; DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET finito = 1; OPEN cur1; SET param3 = 0; FETCH cur1 INTO a,b; ciclo: WHILE NOT finito DO IF param3 < param1 THEN SET param3 = param3 + 1; FETCH cur1 INTO a,b; ELSE LEAVE ciclo; END IF; END WHILE ciclo;
9 Analisi DELIMITER // Dice al server che l istruzione di CREATE non termina con il ; che invece mi serve all interno delle Stored Procedure CREATE PROCEDURE procedura1 (param1 INT, param2 CHAR(3), OUT param3 INT) La procedura ha come nome procedura1, e usa tre parametri, i primi due di input e l ultimo di output BEGIN END Il codice da eseguire deve essere delimitato da BEGIN e END
10 Analisi DECLARE finito INT default 0; DECLARE a INT; DECLARE b CHAR(50); Definiamo tre variabili da usare all interno della routine, una di queste inizializzata con un default DECLARE cur1 CURSOR FOR SELECT id,nome FROM clienti WHERE cat = param2; Definiamo un cursore DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET finito = 1; Definiamo un handler che non interrompe l esecuzione se si verifica la condizione indicata L ordine delle dichiarazioni è importante, deve essere quello qui illustrato!
11 Analisi OPEN cur1; SET param3 = 0; Questa è la prima vera operazione, l apertura del cursore. In questo modo viene eseguita la select, che costituisce il corpo del cursore. Inizializziamo il parametro di output e passiamo alla FETCH cur1 INTO a,b; Con questa operazione il cursore legge la prima riga tornata dalla select, e scrive i valori trovati nelle variabili a e b. Fatta questa operazione il cursore si sposta sul secondo risultato trovato, che tornerà alla successiva fetch. Notare che la prima fetch è esterna al ciclo, per gestire il caso di tabella senza righe. I cursori sono READ ONLY, e NOT SCROLLABLE
12 Analisi ciclo: WHILE NOT finito DO END WHILE ciclo; Segue un ciclo di elaborazione, che viene eseguito fino a che il valore di finito è falso (ossia =0 come inizializzato). Tale valore cambia nel momento in cui il cursore ha fatto la fetch dell ultima riga tornata dalla select, e non ha righe su cui spostarsi: in quel momento infatti il SQLSTATE ha valore 02000, e l handler che abbiamo definito cambia il valore della variabile in 1. IF param3 < param1 THEN SET param3 = param3 + 1; FETCH cur1 INTO a,b; ELSE LEAVE ciclo; END IF; Infine all interno del ciclo si verifica che la variabile param3 abbia raggiunto param1, e in tal caso con LEAVE si abbandona il ciclo stesso. Se non lo ha raggiunto si effettua un altra FETCH del cursore. Nell esempio non uso a e b, ma potrei farlo...
13 Analisi Il ciclo quindo termina o quando si è verificata la condizione sui parametri, oppure quando il cursore si è esaurito, e al termine della esecuzione il parametro di output conterrà il numero di righe lette. Riassumendo in una SP si possono trovare le definizioni di : 1. Variabili (declare, in, out) 2. Condizioni (sqlstate) 3. Cursori 4. Handler Si possono usare nel codice: 1. Variabili 2. Cursori 3. Controllo di flusso (if, loop, repeat, while, iterate, leave)
14 codice di esempio: DECLARE a INT default 0; DECLARE cond1 CONDITION FOR 1045; DECLARE cond2 CONDITION FOR SQLSTATE '02000'; DECLARE cur1 CURSOR FOR query; DECLARE EXIT HANDLER FOR cond1 SET variabile = valore; DECLARE CONTINUE HANDLER FOR cond2 SET variabile = valore; CONTINUE HANDLER FOR SQLWARNING; OPEN cur1; FETCH cur1 INTO variabile1 variabile2; CLOSE cur1; IF condizione THEN istruzioni [ELSEIF condizione THEN istruzioni]... [ELSE istruzioni] END IF; [nome:] LOOP istruzioni END LOOP [nome]; [nome:] REPEAT istruzioni UNTIL condizione END REPEAT [nome]; [nome] WHILE condizione DO istruzioni END WHILE [nome]; ITERATE nomeciclo; LEAVE nomeciclo;
15 Modifica Una procedura può essere eliminata con DROP PROCEDURE <nome> E possibile modificare i suoi permessi con ALTER PROCEDURE <nome> SQL SECURITY { DEFINER INVOKER } Nel caso DEFINER è l utente che ha definito la procedura a dover avere i permessi necessari alla sua esecuzione, nel caso INVOKER è invece l utente che la esegue.
16 Stored Functions Rispetto alla definizione delle procedure si aggiunge la capacità di tornare un valore con la clausola RETURNS, e i parametri sono esclusivamente in input. E obbligatorio tornare un valore! drop function funz2; DELIMITER // CREATE function funz2(codfis char(16)) returns decimal BEGIN DECLARE c INT default 0; select stipendio into c FROM impiegati where cf=codfis; return c + 3*c; END; // DELIMITER ;
17 ESERCIZIO Scrivere una stored procedure che somma tutti gli stipendi degli impiegati. DELIMITER // CREATE PROCEDURE p25 (OUT return_val INT) BEGIN DECLARE a,b INT; DECLARE c INT default 0; DECLARE cur_1 CURSOR FOR SELECT stipendio FROM imp; DECLARE CONTINUE HANDLER FOR NOT FOUND SET b = 1; OPEN cur_1; SET b = 0; REPEAT FETCH cur_1 INTO a; if b = 0 then SET c=c+a; end if; UNTIL b = 1 END REPEAT; CLOSE cur_1; SET return_val = c; END; // DELIMITER ;
18 ESERCIZIO Scrivere una stored procedure che inserisca nella tabella impsede1 tutti i codici degli impiegati della sede 1 DELIMITER // CREATE PROCEDURE p26 () BEGIN DECLARE b INT; DECLARE a char(4); DECLARE cur_1 CURSOR FOR SELECT codimp FROM imp WHERE sede='s01'; DECLARE CONTINUE HANDLER FOR NOT FOUND SET b = 1; OPEN cur_1; FETCH cur_1 INTO a; REPEAT INSERT INTO corsosql.impsede1 VALUES (a); FETCH cur_1 INTO a; UNTIL b = 1 END REPEAT; CLOSE cur_1; END; // DELIMITER ;
19 TRIGGERS Sono oggetti associati a tabelle, che vengono attivati nel momento in cui un determinato evento si verifica in quella tabella. Nella definizione del trigger stabiliamo per quale evento deve essere attivato, ossia per inserimento di righe, modifiche o cancellazioni, e se deve essere eseguito prima o dopo tale evento Si hanno dunque i seguenti tipi di trigger: 1. BEFORE INSERT 2. BEFORE UPDATE 3. BEFORE DELETE 4. AFTER INSERT 5. AFTER UPDATE 6. AFTER DELETE
20 Sintassi CREATE [DEFINER = { user CURRENT_USER }] TRIGGER trigger_name trigger_time trigger_event ON tbl_name FOR EACH ROW trigger_body La clausola DEFINER specifica se come creatore del trigger deve essere considerato l'utente attuale (default) o un altro utente specificato nella forma nome@host. trigger_time indica il momento di attivazione del trigger. Esso può essere BEFORE o AFTER la modifica di ogni riga della tabella a cui è associato il trigger. trigger_event è l evento che scatena l esecuzione del trigger. Esso può essere INSERT, UPDATE, DELETE trigger_body rappresenta il codice che viene eseguito all attivazione del trigger. Normalmente racchiuso tra BEGIN.END. Anche se associato ad una tabella il trigger deve avere nome univoco all interno del database. Quando si fa riferimento a inserimenti o cancellazioni di righe, non si intende necessariamente una istruzione INSERT o DELETE, ma qualsiasi operazione dalla quale scaturisca l evento interessato (ad esempio il caricamento dei dati da shell)
21 Esempio delimiter // CREATE TRIGGER upd_check BEFORE UPDATE ON account FOR EACH ROW BEGIN IF NEW.amount < 0 THEN SET NEW.amount = 0; ELSEIF NEW.amount > 100 THEN SET NEW.amount = 100; END IF; END;// delimiter ; NEW si riferisce alla nuova riga che sta per essere scritta, in questo caso aggiornata, e si può usare in caso di INSERT e UPDATE. E disponibile anche OLD, che si riferisce ai valori precedenti la modifica, e si può utilizzare nel caso di UPDATE e DELETE La modifica con SET è possibile solo per i valori NEWe nei trigger di tipo BEFORE Attenti con i trigger BEFORE: se l inserimento non riesce potrebbero lasciare dati inconsistenti
22 Esempio delimiter // CREATE TRIGGER log_upd AFTER UPDATE ON impiegati FOR EACH ROW BEGIN DECLARE u varchar(40); select user() into u; insert into TB_LOG values(null, NOW(), 'UPDATE', OLD.stipendio, NEW.stipendio, u); END;// delimiter ;
23 Transazioni L'uso delle transazioni permette di "consolidare" le modifiche alla base dati solo in un momento ben preciso: dal momento in cui avviamo una transazione, gli aggiornamenti rimangono sospesi (e invisibili ad altri utenti) fino a quando non li confermiamo (commit); in alternativa alla conferma è possibile annullarli (rollback). MySQL gira per default in AUTOCOMMIT mode: tutti gli aggiornamenti vengono automaticamente consolidati nel momento in cui sono eseguiti Per iniziare una transazione si deve usare allora START TRANSACTION: da questo punto in poi tutti gli aggiornamenti rimaranno sospesi
24 Sintassi START TRANSACTION...istruzioni di aggiornamento (1)... SAVEPOINT sp1;...istruzioni di aggiornamento (2)... ROLLBACK TO SAVEPOINT sp1;...istruzioni di aggiornamento (3)... COMMIT COMMIT conferma le modifiche e chiude la transazione, mentre ROLLBACK annulla tutti gli aggiornamenti eseguiti nel corso dell ultima transazione COMMIT AND CHAIN provoca l immediata apertura di una nuova transazione, COMMIT RELEASE chiude la connessione al server SET AUTOCOMMIT=0 disabilita l autocommit: tutti gli aggiornamenti rimangono in sospeso fino al commit I SAVEPOINT sono degli stati intermedi ai quali possiamo tornare con un ROLLBACK
25 Osservazioni Su MySQL il tutto funziona solo se si usa InnoDB NON sono annullabili le operazioni che creano, eliminano o alterano la struttura di tabelle e database: è bene evitare di includere in una transazione tali operazioni, che tra l altro nella maggior parte dei casi causano una COMMIT implicita
26 SELECT In alcuni casi è utile utilizzare due clausole particolari quando si effettua una select: SELECT...FOR UPDATE SELECT...LOCK IN SHARE MODE La prima stabilisce un LOCK su tutte le righe lette, che impedirà ad altri utenti di leggerle fino al termine della nostra transazione La seconda stabilisce un LOCK che impedisce gli aggiornamenti, garantendo che il contenuto rimarrà invariato durante la transazione
27 Livello di isolamento Un aspetto importante relativamente alle transazioni è il livello di isolamento al quale vengono effettuate. I livelli possibili sono quattro, e li elenchiamo in ordine crescente: 1. READ UNCOMMITTED: a questo livello sono visibili gli aggiornamenti effettuati da altri utenti anche se non consolidati: è un comportamento non propriamente transazionale, che può dare seri problemi di consistenza dei dati; va utilizzato solo quando non ci sono preoccupazioni di questo tipo e c è bisogno di velocizzare le letture 2. READ COMMITTED: a questo livello gli aggiornamenti diventano visibili solo dopo il consolidamento 3. REPETEABLE READ: in questo caso perchè un aggiornamento diventi visibile deve essere non solo consolidato, ma anche la transazione che legge deve essere terminata; in pratica, la stessa lettura ripetuta all'interno di una transazione darà sempre lo stesso risultato; è la modalità di default 4. SERIALIZABLE: come nel caso precedente, ma in più, la semplice lettura di un dato provoca il blocco degli aggiornamenti fino al termine della transazione; in sostanza è come se ogni SELECT venisse effettuata con la clausola LOCK IN SHARE MODE
28 Scheduling E possibile definire due tipologie di eventi: ad una sola esecuzione ricorrente. Nel primo caso si specifica iltimestamp di esecuzione, mentre nel secondo caso viene specificato l intervallo di ripetizione, sotto forma di un numero di minuti, ore, giorni, fino ad anni. procediamo con un semplice esempio di schedulazione, atto ad illustrate la sintassi da utilizzare.
29 Scheduling Si ha una tabella che servirà da contenitore: CREATE TABLE `regeventi` ( `ID_RIGA` int(11) NOT NULL AUTO_INCREMENT, `data` datetime DEFAULT NULL, `conteggio` int(11) DEFAULT NULL, PRIMARY KEY (`ID_RIGA`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; La tabella oltre alla chiave primaria ha un campo data che memorizzerà il momento in cui scatta l evento, e un campo numerico che fungerà da contatore delle sue repliche.
30 Scheduling La seguente procedura verrà richiamata periodicamente dall evento: CREATE PROCEDURE `memscatto`() NOT DETERMINISTIC SQL SECURITY DEFINER COMMENT '' BEGIN DECLARE iconteggio INT; SET iconteggio = 0; END; SELECT IFNULL(max(conteggio)+1, 1) INTO iconteggio from regeventi; INSERT INTO `regeventi` (`data`, `conteggio`) VALUES (now(), iconteggio);
31 Scheduling Si creerà un evento di tipologia ricorrente, con intervallo di un minuto, che si occuperà di richiamare la procedura memscatto: CREATE EVENT `contaminuti` ON SCHEDULE EVERY 1 MINUTE ON COMPLETION PRESERVE ENABLE COMMENT 'lancia ogni minuto la procedura memscatto' DO call memscatto; Con questi comandi DDL è stato preparato il sistema, ma occorre attivare il processo di scheduling.
32 Scheduling Questo si ottiene tramite una variabile globale event_scheduler. Si possono controllare i valori di tutte le variabili settate utilizzando mysqladmin nel seguente modo: mysqladmin -uroot -ppassword variables Se event_scheduler è a OFF, la schedulazione degli eventi è disattivata e si può utilizzare il seguente comando per l attivazione: SET GLOBAL event_scheduler = ON; Una volta in esecuzione il processo che sovrintende agli eventi, ogni minuto scatterà contaminuti, che richiamerà la procedura memscatto e questa inserirà un record nella tabella regeventi. La query SELECT * FROM `regeventi` ; mostrerà i record inseriti con data, che differisce esattamente di un minuto uno dall altro.
33 CREATE EVENT Syntax CREATE [DEFINER = { user CURRENT_USER }] EVENT [IF NOT EXISTS] event_name ON SCHEDULE schedule [ON COMPLETION [NOT] PRESERVE] [ENABLE DISABLE DISABLE ON SLAVE] [COMMENT 'comment'] DO event_body; schedule: AT timestamp [+ INTERVAL interval]... EVERY interval [STARTS timestamp [+ INTERVAL interval]...] [ENDS timestamp [+ INTERVAL interval]...] interval: quantity {YEAR QUARTER MONTH DAY HOUR MINUTE WEEK SECOND YEAR_MONTH DAY_HOUR DAY_MINUTE DAY_SECOND HOUR_MINUTE HOUR_SECOND MINUTE_SECOND}
34 Esempio CREATE EVENT myevent ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 HOUR DO UPDATE myschema.mytable SET mycol = mycol + 1; Viene creato un evento di nome myevent che esegue, una volta dopo un ora dalla sua creazione, l sql specificato dopo il DO.
35 Altro esempio delimiter CREATE EVENT e_daily ON SCHEDULE EVERY 1 DAY COMMENT 'Saves total number of sessions then clears the table each day' DO BEGIN INSERT INTO site_activity.totals (time, total) SELECT CURRENT_TIMESTAMP, COUNT(*) FROM site_activity.sessions; DELETE FROM site_activity.sessions; END delimiter ;
36 security CREATE EVENT requires the EVENT privilege for the schema in which the event is to be created. It might also require the SUPER privilege, depending on the DEFINER value.
37 Cancellare un evento SHOW CREATE EVENT <event_name>\g DROP EVENT [IF EXISTS] event_name
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
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
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
Basi di Dati. S Q L Lezione 5
Basi di Dati S Q L Lezione 5 Antonio Virdis [email protected] Sommario Gestione eventi Gestione dei privilegi Query Complesse 2 Esercizio 9 (lezione 4) Indicare nome e cognome, spesa e reddito annuali
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
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
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,
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
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
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
Introduzione al MATLAB c Parte 2
Introduzione al MATLAB c Parte 2 Lucia Gastaldi Dipartimento di Matematica, http://dm.ing.unibs.it/gastaldi/ 18 gennaio 2008 Outline 1 M-file di tipo Script e Function Script Function 2 Costrutti di programmazione
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
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
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
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
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
CONCETTO DI ANNIDAMENTO
LEZIONE14 SQL ANNIDAMENTI PAG. 1 / 5 PROF. ANDREA ZOCCHEDDU LEZIONE14 SQL ANNIDAMENTI CONCETTO DI ANNIDAMENTO LINGUAGGIO SQL QUERY ANNIDATE Per annidamento si intende la possibilità che, all interno di
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
Tipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto:
Tipi primitivi Il linguaggio Java offre alcuni tipi di dato primitivi Una variabile di tipo primitivo può essere utilizzata direttamente. Non è un riferimento e non ha senso tentare di istanziarla mediante
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
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
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
SQL SQL. Definizione dei dati. Domini. Esistono 6 domini elementari:
SQL SQL (pronunciato anche come l inglese sequel: acronimo di Structured Query Language (linguaggio di interrogazione strutturato Linguaggio completo che presenta anche proprietà di: DDL (Data Definition
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
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
Informatica per le discipline umanistiche 2 lezione 10
Informatica per le discipline umanistiche 2 lezione 10 Parte III: il computer come strumento per l interazione e la comunicazione Si è parlato di identità Parte III: il computer come strumento per l interazione
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
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
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
Tecnologia di un Database Server (centralizzato) Introduzione generale
Introduzione Basi di Dati / Complementi di Basi di Dati 1 Tecnologia di un Database Server (centralizzato) Introduzione generale Angelo Montanari Dipartimento di Matematica e Informatica Università di
Giovanna Rosone 04/03/2010. 04/03/2010 SQL, Istruzioni per la modifica dello schema
Giovanna Rosone 04/03/2010 04/03/2010 SQL, Istruzioni per la modifica dello schema 1 Riepilogo Impiegato Pagamenti Nome colonna PAG_COD PAG_MATR Tipo dati CHAR(6) CHAR(6) Nome colonna Tipo dati PAG_STIPENDIO
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
MySQL Database Management System
MySQL Database Management System http://www.mysql.com/ DATABASE RELAZIONALI Un database è una collezione strutturata di informazioni. I database sono delle strutture nelle quali è possibile memorizzare
I file di dati. Unità didattica D1 1
I file di dati Unità didattica D1 1 1) I file sequenziali Utili per la memorizzazione di informazioni testuali Si tratta di strutture organizzate per righe e non per record Non sono adatte per grandi quantità
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
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,
Per scrivere una procedura che non deve restituire nessun valore e deve solo contenere le informazioni per le modalità delle porte e controlli
CODICE Le fonti in cui si possono trovare tutorial o esempi di progetti utilizzati con Arduino si trovano nel sito ufficiale di Arduino, oppure nei forum di domotica e robotica. Il codice utilizzato per
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
HBase Data Model. in più : le colonne sono raccolte in gruppi di colonne detti Column Family; Cosa cambia dunque?
NOSQL Data Model HBase si ispira a BigTable di Google e perciò rientra nella categoria dei column store; tuttavia da un punto di vista logico i dati sono ancora organizzati in forma di tabelle, in cui
Dispensa di database Access
Dispensa di database Access Indice: Database come tabelle; fogli di lavoro e tabelle...2 Database con più tabelle; relazioni tra tabelle...2 Motore di database, complessità di un database; concetto di
Corso Sistemi Informativi Avanzati. Programma 30 set 2015. Installazione Macchina Virtuale. Introduzione alla BI nelle Aziende.
Programma 30 set 205 Installazione Macchina Virtuale Introduzione alla BI nelle Aziende Introduzione SQL Macchina Virtuale È un emulazione di un computer su un altro computer Stesso punto di partenza per
Descrizione di un algoritmo
Descrizione di un algoritmo Un algoritmo descrive due tipi fondamentali di oper: calcoli ottenibili tramite le oper primitive su tipi di dato (valutazione di espressioni) che consistono nella modifica
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.
Gestione delle tabelle
Linguaggio SQL: fondamenti Creazione di una tabella Modifica della struttura di una tabella Cancellazione di una tabella Dizionario dei dati Integrità dei dati 2 Creazione di una tabella (1/3) Si utilizza
Raggruppamenti Conti Movimenti
ESERCITAZIONE PIANO DEI CONTI Vogliamo creare un programma che ci permetta di gestire, in un DB, il Piano dei conti di un azienda. Nel corso della gestione d esercizio, si potranno registrare gli articoli
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
Corso sul linguaggio SQL
Corso sul linguaggio SQL Modulo L2B (SQL) 2.2 Comandi sulle tabelle 1 Prerequisiti Introduzione ai DB Tabelle, relazioni e attributi Chiave primaria Chiave esterna Vincoli di integrità 2 1 Introduzione
Capitolo 13. Interrogare una base di dati
Capitolo 13 Interrogare una base di dati Il database fisico La ridondanza è una cosa molto, molto, molto brutta Non si devono mai replicare informazioni scrivendole in più posti diversi nel database Per
MySQL Database Management System
MySQL Database Management System II parte Progetto gestione booking prenotazioni on-line 1. Progettazione e creazione struttura database che chiameremo booking. 2. Progettazione e creazione di un form
PHP e Structured Query Language
Esercitazioni del corso di Tecnologie per la Comunicazione Aziendale PHP e Structured Query Language Marco Loregian [email protected] www.siti.disco.unimib.it/didattica/tca2008 Interrogazioni (ripasso)
Algoritmo. I dati su cui opera un'istruzione sono forniti all'algoritmo dall'esterno oppure sono il risultato di istruzioni eseguite precedentemente.
Algoritmo Formalmente, per algoritmo si intende una successione finita di passi o istruzioni che definiscono le operazioni da eseguire su dei dati (=istanza del problema): in generale un algoritmo è definito
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
Access. P a r t e p r i m a
Access P a r t e p r i m a 1 Esempio di gestione di database con MS Access 2 Cosa è Access? Access e un DBMS che permette di progettare e utilizzare DB relazionali Un DB Access e basato sui concetti di
Il linguaggio SQL: query innestate
Il linguaggio SQL: query innestate Sistemi Informativi L-A Home Page del corso: http://www-db.deis.unibo.it/courses/sil-a/ Versione elettronica: SQLc-subquery.pdf Sistemi Informativi L-A DB di riferimento
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
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
User Tools: DataBase Manager
Spazio di lavoro Per usare T-SQL Assistant selezionare il link Simple Query e spostare a piacere la piccola finestra dove un menu a tendina mostra i diversi comandi SQL selezionabili, il pulsante Preview
Cos è ACCESS? E un programma di gestione di database (DBMS) Access offre: un ambiente user frendly da usare (ambiente grafico)
Cos è ACCESS? E un programma di gestione di database (DBMS) Access offre: un ambiente user frendly da usare (ambiente grafico) 1 Aprire Access Appare una finestra di dialogo Microsoft Access 2 Aprire un
Basi di dati (6) Docente: Andrea Bulgarelli. Università di Modena e Reggio Emilia. [email protected] Argomento: T-SQL (1.
Università di Modena e Reggio Emilia Basi di dati (6) Docente: [email protected] Argomento: T-SQL (1.0) 1 Panoramica T-SQL Variabili Controllo di flusso Trattamento errori Print Operatori e funzioni
LA GESTIONE DELLE VISITE CLIENTI VIA WEB
LA GESTIONE DELLE VISITE CLIENTI VIA WEB L applicazione realizzata ha lo scopo di consentire agli agenti l inserimento via web dei dati relativi alle visite effettuate alla clientela. I requisiti informatici
Basi di dati (7) Docente: Andrea Bulgarelli. Università di Modena e Reggio Emilia. [email protected] Argomento: stored procedure (1.
Università di Modena e Reggio Emilia Basi di dati (7) Docente: [email protected] Argomento: stored procedure (1.0) 1 Panoramica Stored procedure Creazione Chiamata Modifica Eliminazione Esempio
Laboratorio di Basi di Dati e Web
Laboratorio di Basi di Dati e Web Docente: Alberto Belussi Lezione 1 SQL Structured Query Language SQL è stato definito nel 1973 ed è oggi il linguaggio più diffuso per i DBMS relazionali Il linguaggio
INDICI. Prevediamo di effettuare spesso interrogazioni simili alle seguenti:
Date le tabelle: Clienti := < id, nome, cognome, indirizzo,città > Ordini := < id, data_ora_ordine, id_prodotto, id_cliente, quantità> Prodotti := < id, nome, descrizione, costo,scorte > INDICI Prevediamo
Le query. Lezione 6 a cura di Maria Novella Mosciatti
Lezione 6 a cura di Maria Novella Mosciatti Le query Le query sono oggetti del DB che consentono di visualizzare, modificare e analizzare i dati in modi diversi. Si possono utilizzare query come origine
Laboratorio Progettazione Web PHP e MySQL - Lezione 9. Andrea Marchetti IIT-CNR [email protected] 2012/2013
Laboratorio Progettazione Web PHP e MySQL - Lezione 9 Andrea Marchetti IIT-CNR [email protected] 2012/2013 Architettura di una applicazione Web Browser Web HTTP Server Web API Dati Presentation
IL DAT A B A S E DI ALGE B R A N D O
IL DAT A B A S E DI ALGE B R A N D O Un progetto di: Davide Valeriani Matricola 190883 [email protected] Corso di laurea in Ingegneria Informatica Esame di Basi di Dati A Prof. Stefano
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ù
Corso di Laurea in Ingegneria Gestionale Esame di Informatica a.a. 2010-11 13 settembre 2011
Cognome Nome Matricola Postazione PC Corso di Laurea in Ingegneria Gestionale Esame di Informatica a.a. 2010-11 13 settembre 2011 Testo Il database di un videonoleggio è costituito da due vettori paralleli.
5.3 TABELLE 5.3.1 RECORD 5.3.1.1 Inserire, eliminare record in una tabella Aggiungere record Eliminare record
5.3 TABELLE In un sistema di database relazionali le tabelle rappresentano la struttura di partenza, che resta poi fondamentale per tutte le fasi del lavoro di creazione e di gestione del database. 5.3.1
Airone Gestione Rifiuti Funzioni di Esportazione e Importazione
Airone Gestione Rifiuti Funzioni di Esportazione e Importazione Airone Funzioni di Esportazione Importazione 1 Indice AIRONE GESTIONE RIFIUTI... 1 FUNZIONI DI ESPORTAZIONE E IMPORTAZIONE... 1 INDICE...
Obiettivi d esame PHP Developer Fundamentals on MySQL Environment
Obiettivi d esame PHP Developer Fundamentals on MySQL Environment 1.0 Ambiente di sviluppo 1.1 Web server e database MySQL Comprendere la definizione dei processi che si occupano di fornire i servizi web
LUdeS Informatica 2 EXCEL. Seconda parte AA 2013/2014
LUdeS Informatica 2 EXCEL Seconda parte AA 2013/2014 STAMPA Quando si esegue il comando FILE STAMPA, Excel manda alla stampante tutte le celle del foglio di lavoro corrente che hanno un contenuto. Il numero
APPUNTI SUL LINGUAGGIO DI PROGRAMMAZIONE PASCAL
APPUNTI SUL LINGUAGGIO DI PROGRAMMAZIONE PASCAL In informatica il Pascal è un linguaggio di programmazione creato da Niklaus Wirth ed é un linguaggio di programmazione strutturata. I linguaggi di programmazione
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.
DATABASE. www.andreavai.it
Cos'è un database? Quando si usa? Differenze con i fogli elettronici Le tabelle: record, campi, tipi di dati Chiavi e indici Database relazionali (R-DBMS) Relazioni uno-a-uno Relazioni uno-a-molti Relazioni
<?php include './include/page.php';
Il modulo di inserimento Per creare il modulo di inserimento creeremo due file per semplicità: insert.php sarà il file contenente il form dove inserire i dati. Premendo infine il pulsante inserisci si
Utilizzando Microsoft Access. Si crea la tabella Anagrafica degli alunni,le Materie e i voti si mettono alcuni campi
Vogliamo creare una struttura per permettere di memorizzari i voti della classe in tutte le materie Per fare questo untilizziamo tre tabelle Alunni,materie,voti Alunni Materie Voti Creo un record per ogni
OSSIF WEB. Manuale query builder
OSSIF WEB Manuale query builder - Maggio 2010 1) Sommario 1) SOMMARIO... 2 INTRODUZIONE... 3 Scopo del documento... 3 Struttura del documento... 3 Descrizione dell interfaccia grafica... 3 SELEZIONE DI
Informatica Generale Andrea Corradini. 19 - Sistemi di Gestione delle Basi di Dati
Informatica Generale Andrea Corradini 19 - Sistemi di Gestione delle Basi di Dati Sommario Concetti base di Basi di Dati Il modello relazionale Relazioni e operazioni su relazioni Il linguaggio SQL Integrità
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
DATABASE. A cura di Massimiliano Buschi
DATABASE A cura di Massimiliano Buschi Introduzione Con Microsoft Access: Immissione dati e interrogazione Interfaccia per applicazioni e report Ma prima bisogna definire alcune conoscenze di base sui
PROCEDURA INVENTARIO DI MAGAZZINO di FINE ESERCIZIO (dalla versione 3.2.0)
PROCEDURA INVENTARIO DI MAGAZZINO di FINE ESERCIZIO (dalla versione 3.2.0) (Da effettuare non prima del 01/01/2011) Le istruzioni si basano su un azienda che ha circa 1000 articoli, che utilizza l ultimo
Pag. 1. Gestione delle transazioni. Linguaggio SQL: costrutti avanzati. Esempio applicativo. Gestione delle transazioni. Prelievo. Esempio applicativo
Gestione delle transazioni Introduzione Transazioni in SQL Linguaggio SQL: costrutti avanzati 2 applicativo Operazioni bancarie operazione di prelievo dal proprio conto corrente mediante bancomat Gestione
GERARCHIE RICORSIVE - SQL SERVER 2008
GERARCHIE RICORSIVE - SQL SERVER 2008 DISPENSE http://dbgroup.unimo.it/sia/gerarchiericorsive/ L obiettivo è quello di realizzare la tabella di navigazione tramite una query ricorsiva utilizzando SQL SERVER
Linguaggio SQL: costrutti avanzati
Linguaggio SQL: costrutti avanzati Gestione delle transazioni Introduzione Transazioni in SQL Proprietà delle transazioni 2 Pag. 1 1 Gestione delle transazioni Esempio applicativo Operazioni bancarie operazione
Arduino: Programmazione
Programmazione formalmente ispirata al linguaggio C da cui deriva. I programmi in ARDUINO sono chiamati Sketch. Un programma è una serie di istruzioni che vengono lette dall alto verso il basso e convertite
1. Le macro in Access 2000/2003
LIBRERIA WEB 1. Le macro in Access 2000/2003 Per creare una macro, si deve aprire l elenco delle macro dalla finestra principale del database: facendo clic su Nuovo, si presenta la griglia che permette
Costruzione di Sit Web con PHP e MySQL. Lezione 7 - Esercitazione - Introduzione a MySQL: le tabelle, i tpi di dato, le query
Costruzione di Sit Web con PHP e MySQL Lezione 7 - Esercitazione - Introduzione a MySQL: le tabelle, i tpi di dato, le query Esercitazione In questa lezione si farà insieme una seconda esercitazione che
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
Automatizzare i compiti ripetitivi. I file batch. File batch (1) File batch (2) Visualizzazione (2) Visualizzazione
Automatizzare i compiti ripetitivi I file batch Anno accademico 2000-01 1 Spesso capita di dover eseguire ripetutatmente una data sequenza di comandi Introdurli uno a uno da tastiera è un processo lento
Access. Microsoft Access. Aprire Access. Aprire Access. Aprire un database. Creare un nuovo database
Microsoft Access Introduzione alle basi di dati Access E un programma di gestione di database (DBMS) Access offre: un supporto transazionale limitato Meccanismi di sicurezza, protezione di dati e gestione
