Diferència entre revisions de la pàgina «Entrega classe 4-abr-2022»

De wikijoan
Salta a la navegació Salta a la cerca
m
 
(Hi ha 5 revisions intermèdies del mateix usuari que no es mostren)
Línia 1: Línia 1:
=Tasqies a realitzar=
+
__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