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

De wikijoan
Salta a la navegació Salta a la cerca
m
Línia 1: Línia 1:
=Tasqies a realitzar=
+
=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 54: Línia 55:
 
*https://stackoverflow.com/questions/15364945/pasting-sql-into-the-mysql-command-line
 
*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.
 
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:
 +
 +
'''1.'''. SIGNAL
 +
*https://www.mysqltutorial.org/mysql-signal-resignal/
 +
<pre>
 +
CREATE PROCEDURE AddOrderItem(...
 +
 +
CALL AddOrderItem(10,'S10_1678',1,95.7,1);
 +
</pre>
 +
'''2. ''' 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>
 +
'''3.''' 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>
 +
 +
'''4. '''. 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>
 +
 
{{Autor}}, abril 2022
 
{{Autor}}, abril 2022

Revisió del 14:37, 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:

1.. SIGNAL

CREATE PROCEDURE AddOrderItem(...

CALL AddOrderItem(10,'S10_1678',1,95.7,1);

2. Funcions

CREATE FUNCTION CustomerLevel(...

SHOW FUNCTION STATUS WHERE db = 'classicmodels';

CREATE PROCEDURE GetCustomerLevel(...

CALL GetCustomerLevel(-131,@customerLevel);
SELECT @customerLevel;

3. 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';

4. . Exemple

CREATE PROCEDURE get_order_by_cust(...

CALL get_order_by_cust(141,@shipped,@canceled,@resolved,@disputed);
SELECT @shipped,@canceled,@resolved,@disputed;

creat per Joan Quintana Compte, abril 2022