









Studia grazie alle numerose risorse presenti su Docsity
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Prepara i tuoi esami
Studia grazie alle numerose risorse presenti su Docsity
Prepara i tuoi esami con i documenti condivisi da studenti come te su Docsity
Trova i documenti specifici per gli esami della tua università
Preparati con lezioni e prove svolte basate sui programmi universitari!
Rispondi a reali domande d’esame e scopri la tua preparazione
Riassumi i tuoi documenti, fagli domande, convertili in quiz e mappe concettuali
Studia con prove svolte, tesine e consigli utili
Togliti ogni dubbio leggendo le risposte alle domande fatte da altri studenti come te
Esplora i documenti più scaricati per gli argomenti di studio più popolari
Ottieni i punti per scaricare
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Stored Procedure (database) - backend
Tipologia: Dispense
1 / 17
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!










INSERT INTO cliente_privato (NAME, FAMILY_NAME) VALUES ('Roberto', 'Penna');
DELETE FROM cliente_privato;
INSERT INTO cliente_privato(Name, Family_name) SELECT nome, cognome FROM cliente WHERE tipo = 'privato';
UPDATE cliente_privato SET Address = 'Torino' WHERE name = 'Loggia' AND Family_name = 'Gerardo';
UPDATE cliente_privato SET name = 'Gerardo' , Family_name = 'Loggia' WHERE name = 'Loggia' AND Family_name = 'Gerardo';
DELETE FROM cliente_privato WHERE Address IS NOT NULL
si può fare anche così
SELECT d.cognome, d.nome, d.tipo FROM dipendente as d, svolge as s, attivita as a, prenotazione as p, utilizza as u WHERE d.id = s.idDipendente AND p.idAttivita = s.idAttivita AND p.id = u.idPrenot AND u.idPianta in (SELECT Id FROM pianta as p2 WHERE p2.stagioneFioritura = 'estate') AND a.nome = 'Piantumazione'
query che deve essere rifatta più volte SELECT customerName, city, state, postalCode, country FROM customers ORDER BY customerName;
CREATE PROCEDURE GetCustomers() BEGIN SELECT customerName, city, state, postalCode, country FROM customers ORDER BY customerName; END$$ DELIMITER ; vantaggi: ● anziche inviare statement lunghi, invoco una procedura sql che voglio eseguire (riduzione traffico di rete) ● i dati sono abbinati alle applicazioni, che li tratta. Creare ke procedure mi agevola nella creazione delle applicazioni (model view control)
● si aumenta la sicurezza nel db (user e passwor per accedderci). DBA può concedere determinate privilegi o accesso diretto ad alcune persone. script che mi agevoli inserimento di un cliente invocazione come rendere dinamica la procedura (altrimenti inserirebbe sempre la stessa cosa) ● i parametri si passano dove si invoca la funzione inserire anche i privati ● inserire prima i clienti ● in base al parametro p_tipo vale privato allora esegue un altro insert anche in cliente_privato
inserire dentro la tabella prenotazione una nuova riga per il cliente mario rossi, controlla che l’attività non sia già stata inserita e il cliente sia già stato inserito altrimenti si inserisce PROVA DELIMITER $$ CREATE PROCEDURE vivaio.InserisciPrenotazione( in c_nome varchar(20), in c_cognome varchar(20), in a_attivita varchar(20), in p_dataPrenot date, in p_dataInizio date, in p_dataFine date, in a_numOre int(5) ) MODIFIES SQL DATA BEGIN INSERT INTO prenotazione VALUES (p_dataPrenot, p_dataInizio, p_dataFine, p_numOre, p_idCliente, p_idAttivita) WHERE p_idCliente in (SELECT id FROM cliente WHERE cognome ; // if p_idCliente END$$ DELIMITER ; call.vivaio.InserisciPrenotazione(‘luca’, ‘rossi’, 'piantumazione', '2022-03-06', '2022-03-10' ,'2022-03-24', '12');
se non esiste varrà 0 o null STORED PROCEDURE https://www.mysqltutorial.org/mysql-stored-procedure-tutorial.aspx con phpmyadmin https://medium.com/mobiosolutions/create-stored-procedures-in-php-myadmin-ccf02c323a e valori passati alla procedura invocare la procedura
INparametri
CALL GetOfficeByCountry('USA'); CALL GetOfficeByCountry('France') CALL GetOfficeByCountry(); OUTparametri
CALL GetOrderCountByStatus('Shipped',@total); SELECT @total;
INOUTparametri
CALL LoopDemo();
● clicco cartella procedures, creo una procedura ● clicco source
output : 24 OPPURE (sotto forma di funzione) come funziona il fattoriale fattoriale completo
Fatta con la procedura non va query sql http://groups.di.unipi.it/~leoni/BDeSI/E2.Esercizi%20di%20SQL.pdf Creare una stored procedure phpmyadmin https://www.youtube.com/watch?v=dwVj_g3TpZ Lucid (modello er) https://lucid.app/lucidchart/00d439bd-ad6c-4d5f-9115-6e6c44afe209/edit?invitationId=inv_ 07b44d-8fd4-4aa1-aad2-e20ed5303f9d&page=0_0#