Diferència entre revisions de la pàgina «Entrega classe 4-abr-2022»
m |
|||
| (Hi ha 5 revisions intermèdies del mateix usuari que no es mostren) | |||
| Línia 1: | Línia 1: | ||
| − | = | + | __TOC__ |
| + | =Tasques a realitzar= | ||
| + | ==dilluns 4 d'abril== | ||
Faràs tres exemples. Els dos primers ja els hem executat a classe, estan en els apunts: | Faràs tres exemples. Els dos primers ja els hem executat a classe, estan en els apunts: | ||
| Línia 50: | Línia 52: | ||
Amposta (21115);Calafell (27601);... | Amposta (21115);Calafell (27601);... | ||
</pre> | </pre> | ||
| + | |||
| + | '''NOTA''': missatge ''display all 1450 possibilities?'' | ||
| + | *https://stackoverflow.com/questions/15364945/pasting-sql-into-the-mysql-command-line | ||
| + | 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 | ||
| + | *https://www.mysqltutorial.org/mysql-signal-resignal/ | ||
| + | <pre> | ||
| + | CREATE PROCEDURE AddOrderItem(... | ||
| + | |||
| + | CALL AddOrderItem(10,'S10_1678',1,95.7,1); | ||
| + | </pre> | ||
| + | '''P5. ''' Funcions | ||
| + | *https://www.mysqltutorial.org/mysql-stored-function/ | ||
| + | <pre> | ||
| + | CREATE FUNCTION CustomerLevel(... | ||
| + | |||
| + | SHOW FUNCTION STATUS WHERE db = 'classicmodels'; | ||
| + | |||
| + | CREATE PROCEDURE GetCustomerLevel(... | ||
| + | |||
| + | CALL GetCustomerLevel(-131,@customerLevel); | ||
| + | SELECT @customerLevel; | ||
| + | </pre> | ||
| + | '''P6.''' Show functions: | ||
| + | *https://www.mysqltutorial.org/mysql-stored-procedure/mysql-show-function/ | ||
| + | <pre> | ||
| + | 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'; | ||
| + | </pre> | ||
| + | |||
| + | '''P7. ''' Exemple | ||
| + | *https://www.mysqltutorial.org/mysql-stored-procedures-return-multiple-values/ | ||
| + | <pre> | ||
| + | CREATE PROCEDURE get_order_by_cust(... | ||
| + | |||
| + | CALL get_order_by_cust(141,@shipped,@canceled,@resolved,@disputed); | ||
| + | SELECT @shipped,@canceled,@resolved,@disputed; | ||
| + | </pre> | ||
| + | |||
| + | =Entrega= | ||
| + | Entregaràs un pdf amb captures de pantalla conforme que has executat els exercicis proposats. Dins del termini previst. | ||
| + | |||
{{Autor}}, abril 2022 | {{Autor}}, abril 2022 | ||
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