Diferència entre revisions de la pàgina «Entrega classe 4-abr-2022»
| (Hi ha una revisió intermèdia del mateix usuari que no es mostren) | |||
| Línia 59: | Línia 59: | ||
Realitzaràs els exemples que s'han fet a classe. Concretament: | Realitzaràs els exemples que s'han fet a classe. Concretament: | ||
| − | '''P4.''' | + | '''P4.''' SIGNAL |
*https://www.mysqltutorial.org/mysql-signal-resignal/ | *https://www.mysqltutorial.org/mysql-signal-resignal/ | ||
<pre> | <pre> | ||
| Línia 90: | Línia 90: | ||
</pre> | </pre> | ||
| − | '''P7. ''' | + | '''P7. ''' Exemple |
*https://www.mysqltutorial.org/mysql-stored-procedures-return-multiple-values/ | *https://www.mysqltutorial.org/mysql-stored-procedures-return-multiple-values/ | ||
<pre> | <pre> | ||
Revisió de 15:55, 6 abr 2022
Tasques a realitzar
dilluns 4 d'abril
Faràs tres exemples. Els dos primers ja els hem executat a classe, estan en els apunts:
P1: cursor
DELIMITER $$
CREATE PROCEDURE createEmailList (
INOUT emailList varchar(4000)
)
BEGIN
DECLARE finished INTEGER DEFAULT 0;
DECLARE emailAddress varchar(100) DEFAULT "";
-- declare cursor for employee email
DEClARE curEmail
CURSOR FOR
SELECT email FROM employees;
-- declare NOT FOUND handler
DECLARE CONTINUE HANDLER
FOR NOT FOUND SET finished = 1;
OPEN curEmail;
getEmail: LOOP
FETCH curEmail INTO emailAddress;
IF finished = 1 THEN
LEAVE getEmail;
END IF;
-- build email list
SET emailList = CONCAT(emailAddress,";",emailList);
END LOOP getEmail;
CLOSE curEmail;
END$$
DELIMITER ;
P2:
has de crear la taula SupplierProducts i el procediment InsertSupplierProduct()
Serveix per demostrar la gestió d'errors en el cas de què es produeixi un error de clau primera al fer el insert.
P3: municipis.
Crea el procediment llista_tarragona() que doni com a resultat una cadena dels municipis entre 20000 i 40000 habitants, amb el següent format:
Amposta (21115);Calafell (27601);...
NOTA: missatge display all 1450 possibilities?
La culpa és que el codi que estàs copiant conté tabuladors. No passa res.
dimecres 6 d'abril
Realitzaràs els exemples que s'han fet a classe. Concretament:
P4. SIGNAL
CREATE PROCEDURE AddOrderItem(... CALL AddOrderItem(10,'S10_1678',1,95.7,1);
P5. Funcions
CREATE FUNCTION CustomerLevel(... SHOW FUNCTION STATUS WHERE db = 'classicmodels'; CREATE PROCEDURE GetCustomerLevel(... CALL GetCustomerLevel(-131,@customerLevel); SELECT @customerLevel;
P6. Show functions:
SHOW FUNCTION STATUS WHERE db = 'classicmodels'; SHOW FUNCTION STATUS LIKE '%Customer%'; SELECT routine_name FROM information_schema.routines WHERE routine_type = 'FUNCTION' AND routine_schema = 'classicmodels';
P7. Exemple
CREATE PROCEDURE get_order_by_cust(... CALL get_order_by_cust(141,@shipped,@canceled,@resolved,@disputed); SELECT @shipped,@canceled,@resolved,@disputed;
Entrega
Entregaràs un pdf amb captures de pantalla conforme que has executat els exercicis proposats. Dins del termini previst.
creat per Joan Quintana Compte, abril 2022