4
FUNCIONES EN MYSQL AUX INF-272 ESTRUCTURA Ejercicio 1 delimiter$$ CREATE [DEFINER = { user | CURRENT_USER }] FUNCTION nombre ([func_parameter[,...]]) RETURNS Tipo de dato LANGUAGE SQL | [NOT] DETERMINISTIC | { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA } | SQL SECURITY { DEFINER | INVOKER } | COMMENT 'string' Begin …. Select.. …. Return END; FUNCION N1 Cuenta cuantos vuelos tomo un turista delimiter $$//IMPORTANTE CREATE FUNCTION cuentat2(xcodturista varchar(15)) RETURNS INT READS SQL DATA BEGIN DECLARE total INT; SELECT COUNT(*) INTO total FROM toma WHERE codturista=xcodturista; RETURN(total); END; EJECUTAR SELECT codturista,

Web viewlanguage sql| [not] deterministic| { contains sql | no sql | reads sql data | modifies sql data }| sql security { definer | invoker }| comment 'string

  • Upload
    votram

  • View
    217

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Web viewlanguage sql| [not] deterministic| { contains sql | no sql | reads sql data | modifies sql data }| sql security { definer | invoker }| comment 'string

FUNCIONES EN MYSQL AUX INF-272

ESTRUCTURA

Ejercicio 1delimiter$$CREATE [DEFINER = { user | CURRENT_USER }]FUNCTION nombre ([func_parameter[,...]])RETURNS Tipo de datoLANGUAGE SQL| [NOT] DETERMINISTIC| { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA }| SQL SECURITY { DEFINER | INVOKER }| COMMENT 'string'Begin…….Select..….Return…END;

FUNCION N1 Cuenta cuantos vuelos tomo un turistadelimiter $$//IMPORTANTECREATE FUNCTION cuentat2(xcodturista varchar(15))RETURNS INT READS SQL DATA BEGIN DECLARE total INT;

SELECT COUNT(*) INTO total FROM toma WHERE codturista=xcodturista;

RETURN(total);END;

EJECUTARSELECT codturista, cuentat2( codturista)FROM turista;

Page 2: Web viewlanguage sql| [not] deterministic| { contains sql | no sql | reads sql data | modifies sql data }| sql security { definer | invoker }| comment 'string

Ejercicio 2

Mostrar cuantos contratos tiene cada agencia

Solution

delimiter $$CREATE FUNCTION calcula (xcodsuc varchar(5)) RETURNS int(11)READS SQL DATABEGINDECLARE sol INT;SELECT COUNT(c.codsuc) INTO solFROM contrata cWHERE c.codsuc=xcodsucGROUP BY c.codsuc;RETURN(sol);END;

***********************************************************SELECT DISTINCT a.codsuc,ifnull(calcula(a.codsuc),0) Num_contratosFROM agencia a;

Ejercicio 3

Mostrar los vuelos que viajaron de “La Paz” a “Cochabamba”

Solucióndelimiter $$CREATE FUNCTION `vuelo_LP_Cbba`(xnumv varchar(5)) RETURNS booleanREADS SQL DATA

BEGINDECLARE sol INT;SELECT COUNT(v.numv) INTO solFROM vuelo vWHERE v.numv=xnumvAND v.origen = 'la paz'AND v.destino = 'cochabamaba';IF(sol >0)

THEN RETURN(true);ELSE RETURN(false);

END IF;END;

*************************************************SELECT DISTINCT v.numv, vuelo_LP_Cbba(v.numv)FROM vuelo v;

Page 3: Web viewlanguage sql| [not] deterministic| { contains sql | no sql | reads sql data | modifies sql data }| sql security { definer | invoker }| comment 'string

Ejercicio Propuesto Calcular el Pago Total (la suma de la cuenta de los hoteles en los que reservo) de

cada turista

Solución delimiter $$CREATE FUNCTION calcula_pago(xcodturista varchar(5))RETURNS double

READS SQL DATABEGIN DECLARE sol double;

SELECT sum((TO_DAYS(r.fecha_s)-TO_DAYS(r.fecha_e)) * h.precio_por_dia) into solFROM reserva r,hotel hwhere r.codhotel = h.codhoteland r.codturista=xcodturistagroup by r.codturista;

return(sol);END;PARA EJECUTARSelect t.codturista,calcula_pago(t.codturista Total_a_Pagar)From turista t;

Resultado

Page 4: Web viewlanguage sql| [not] deterministic| { contains sql | no sql | reads sql data | modifies sql data }| sql security { definer | invoker }| comment 'string