1.Crear un procedimiento almacenado que devuelva el valor de la
hipotenusa
de un triángulo a partir de los
valores de sus lados que se pasan como parámetros.
DELIMITER
$$
DROP PROCEDURE IF EXISTS hipo$$
CREATE
PROCEDURE hipo(a INT, b INT) USE jardinería;
BEGIN CALL hipo (1,2);
SELECT SQRT(POW(a,2)+POW(b,2)) AS hipotenusa;
END;$$
DELIMITER ;
2.Crea un procedimiento que muestre dos cadenas, pasadas como parámetros,
concatenadas y en mayúsculas.
Funciones texto:
DELIMITER
$$
DROP
PROCEDURE IF EXISTS conca$$
CREATE PROCEDURE conca(a CHAR(50), b CHAR(50))
BEGIN
SELECT UPPER(CONCAT(a, ‘ ‘, b)) AS
concatenacion;
END;$$ DELIMITER ;
Crear una función almacenada, para mostrar el día de la semana según
un valor de entrada numérico, de
la siguiente forma: 1 para lunes, 2 para martes, etc.
DELIMITER $$
DROP
FUNCTION IF EXISTS calendario$$
CREATE FUNCTION calendario(n INT) RETURNs
CHAR(10)
NO SQL
BEGIN
DECLARE
s CHAR(10);
CASE n
WHEN 1 THEN SET s = "Lunes";
WHEN 2 THEN SET s = "Martes";
WHEN 3 THEN SET s = "Miércoles";
WHEN 4 THEN SET s = "Jueves";
WHEN 5 THEN SET s = "Viernes";
WHEN 6 THEN SET s = "Sábado";
WHEN 7 THEN SET s = "Domingo";
ELSE SET s = "Error";
END
CASE;
RETURN (s);
END; $$
DELIMITER ;
Funcion almacenada que calcule la suma de 2 numeros
Comprendidos entre dos números introducidos como parámetro.
Los dos números no deben incluirse en la suma.
DELIMITER
$$
DROP
FUNCTION IF EXISTS suma_num$$
CREATE
FUNCTION suma_num(n1 INT, n2 INT) RETURNS INT
NO
SQL
DECLARE
cont, sum INT;
IF
n2 < n1 THEN
BEGIN
SET
sum = n1;
SET
n1=n2;
SET
n2= sum;
END;
END
IF;
SET
sum =0;
SET
cont= n1+1;
b1: WHILE cont <n2 DO
SET
sum= sum+cont;
SET
cont = cont+1;
END
WHILE b1;
RETURN
(sum);
END; $$
DELIMITER;
Crear procedimieinto q reciba 5 numeros como parámetro
Y calcular su media aritmética.
DELIMITER
$$
DROP
PROCEDURE IF EXISTS ejer1$$
CREATE
PROCEDURE eje1(num1 int, num2 int, num3 int,
Num4
int, num5 int)
BEGIN
DECLARE
RESULT INT;
DECLARE
TIMES INT;
SET
TIMES=5;
SET
RESULT=((num1+num2+num3+num4+num5)/TIMES);
SELECT
RESULT AS Resultado; use bd;
END;$$ call ejer1(1,2,3,4,5);
DELIMITER;
Crear procedimiento q reciba 10 numeros como parámetro
E indique cual es mayor y cual es menor.
DELIMITER
$$
DROP
PROCEDURE IF EXISTS ejer2$$
CREATE PROCEDURE ejer2(uno int, dos
int, tres int, cuatro …)
BEGIN
SELECT
GREATEST(uno,dos,tres,cuatro,cinco..) AS Mayor;
SELECT LEAST(uno,dos tres, cuatro,
cinco..) AS Menor;
END;
DELIMITER
$$ use test;
CALL ejer2(1,2,3,4,5,6,7,8,9,10);
Crear función q reciba parámetro un numero y devuelva 0
Si no es primo o un 1 si lo es:
DELIMITER
$$
DROP
FUNCTION EXISTS ejer3$$
CREATE
FUNCTION ejer3(num INT)
RETURNS
INT
BEGIN
DECLARE i INT;
DECLARE primo INT;
SET i=2;
SET primo=1;
IF
num < 2 THEN
SET primo=0;
ELSEIF
num=2 THEN
ELSE primo=1;
ELSE
Bucle:
WHILE i <= SQRT(num) DO
IF
(num%i)= 0 THEN
SET
primo=0;
LEAVE
bucle;
END
IF; use test;
SET
i=i+1; SELECT ejer3(50);
END
WHILE;
RETURN
(primo);
END
IF;
END;$$
SERIE FIBONACCI comienza en 0 y el segundo 1 y resto
Calculan sumando dos números anteriores
N=(n-2)+(n-1).(ej:0,1,2,3,5,8..)
DELIMITER
$$
DROP
PROCEDURE IF EXISTS ejer4$$
CREATE
PROCEDURE ejer4(num INT)
BEGIN
DECLARE
num1 INT;
DECLARE
num2 INT;
DECLARE
CNT INT;
DECLARE
CNT2 INT;
DECLARE
result INT;
DECLARE
FIBONACCI VARCHAR(255);
SET
num1=0;
SET
num2=1;
SET
CNT=0;
SET
FIBO=””;
SET
CNT2=(num-2);
SET
FIBO=CONCAT(FIBO,num1);
SET
FIBO=CONCAT_WS(‘,’,FIBO,num2);
WHILE
CNT < CNT2 DO
SET
result=num1+num2;
SET
FIBO=CONCAT_WS(‘,’,FIBO,result);
SENT
CNT=CNT+1;
SET
num1=num2; call
ejer4(10);
SET
num2=result;
END
WHILE;
SELECT
FIBO AS ‘Serie fibonacci’;
END;$$
DELIMITER $$