Entrega classe 4-abr-2022

De wikijoan
Salta a la navegació Salta a la cerca

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