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 2 revisions intermèdies 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:
  
'''1.'''. SIGNAL
+
'''P4.''' SIGNAL
 
*https://www.mysqltutorial.org/mysql-signal-resignal/
 
*https://www.mysqltutorial.org/mysql-signal-resignal/
 
<pre>
 
<pre>
Línia 66: Línia 66:
 
CALL AddOrderItem(10,'S10_1678',1,95.7,1);
 
CALL AddOrderItem(10,'S10_1678',1,95.7,1);
 
</pre>
 
</pre>
'''2. ''' Funcions
+
'''P5. ''' Funcions
 
*https://www.mysqltutorial.org/mysql-stored-function/
 
*https://www.mysqltutorial.org/mysql-stored-function/
 
<pre>
 
<pre>
Línia 78: Línia 78:
 
SELECT @customerLevel;
 
SELECT @customerLevel;
 
</pre>
 
</pre>
'''3.''' Show functions:
+
'''P6.''' Show functions:
 
*https://www.mysqltutorial.org/mysql-stored-procedure/mysql-show-function/
 
*https://www.mysqltutorial.org/mysql-stored-procedure/mysql-show-function/
 
<pre>
 
<pre>
Línia 90: Línia 90:
 
</pre>
 
</pre>
  
'''4. '''. Exemple
+
'''P7. ''' Exemple
 
*https://www.mysqltutorial.org/mysql-stored-procedures-return-multiple-values/
 
*https://www.mysqltutorial.org/mysql-stored-procedures-return-multiple-values/
 
<pre>
 
<pre>
Línia 98: Línia 98:
 
SELECT @shipped,@canceled,@resolved,@disputed;
 
SELECT @shipped,@canceled,@resolved,@disputed;
 
</pre>
 
</pre>
 +
 
=Entrega=
 
=Entrega=
 
Entregaràs un pdf amb captures de pantalla conforme que has executat els exercicis proposats. Dins del termini previst.
 
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