Está en la página 1de 41

CREAR 20 FUNCIONES

-SIMPLES
1)

2)
3)
4)
5)
6)
7)
8)
9)
10)

-PARAM
1)
2)
3)

4)

5)
6)
7)

8)
9)

10)
CREAR 40 SP
-SIMPLES
1)
2)
3)
4)
5)
6)
7)
8)
9)
10)
-PARAM
1)

2)
3)

4)
5)

6)
7)

8)
9)
10)
-IF
1)
DELIMITER $$
CREATE PROCEDURE SPSUMA(
IN SUMA VARCHAR(20))
BEGIN
IF SUMA='TOTAL' THEN
SELECT SUM(SALARIO) FROM EMP ;
END IF;
END
$$
DELIMITER ;

2) DELIMITER $$
CREATE PROCEDURE SPASCDESC(
IN ORDENAR VARCHAR(20))
BEGIN
IF ORDENAR='ASC' THEN
SELECT APELLIDO, FECHA_NAC FROM ENFERMO ORDER BY
apellido ASC;
ELSEIF ORDENAR='DESC' THEN
SELECT APELLIDO, FECHA_CAN FROM ENFERMO ORDER BY
apellido DESC;
END IF;
END
$$
DELIMITER ;

3) DELIMITER $$
CREATE PROCEDURE SPESPECIALIDAD(
IN ORDENAMIENTO VARCHAR(20))
BEGIN
IF ORDENAMIENTO='Psiquiatria' THEN
SELECT apellido ,ESPECIALIDAD FROM
DOCTOR where ESPECIALIDAD ='Psiquiatria';
ELSEIF ORDENAMIENTO='Cardiologia' THEN
SELECT apellido ,ESPECIALIDAD FROM DOCTOR where
ESPECIALIDAD='Cardiologia';
ELSEIF ORDENAMIENTO='Urologia' THEN
SELECT apellido ,ESPECIALIDAD FROM DOCTOR where
ESPECIALIDAD='Urologia';
ELSEIF ORDENAMIENTO='Pediatria' THEN
SELECT apellido ,ESPECIALIDAD FROM DOCTOR where
ESPECIALIDAD='Pediatria';
ELSEIF ORDENAMIENTO='Neurologia' THEN
SELECT apellido ,ESPECIALIDAD FROM DOCTOR where
ESPECIALIDAD='Neurologia';
ELSEIF ORDENAMIENTO='Ginecologia' THEN
SELECT apellido ,ESPECIALIDAD FROM DOCTOR where
ESPECIALIDAD='Ginecologia';
END IF;

END
$$
DELIMITER ;

4) CREATE PROCEDURE SPnum(


IN ORDENAMIENTO VARCHAR(20))
BEGIN
IF ORDENAMIENTO='empleado' THEN
SELECT COUNT(OFICIO) , SUM(SALARIO) FROM EMP where oficio
='empleado' ;
ELSEIF ORDENAMIENTO='vendedor' THEN
SELECT COUNT(oficio) FROM EMP where oficio='vendedor';
ELSEIF ORDENAMIENTO='director' THEN
SELECT COUNT(oficio) ,SUM(SALARIO) FROM EMP where oficio='director';
ELSEIF ORDENAMIENTO='analista' THEN
SELECT COUNT(oficio) , SUM(SALARIO) FROM EMP where oficio='analista';
ELSEIF ORDENAMIENTO='PRESIDENTE' THEN
SELECT COUNT(oficio), SUM(SALARIO) FROM EMP where
oficio='PRESIDENTE';
END IF;
END
$$
DELIMITER ;

5)
DELIMITER $$
CREATE PROCEDURE SPnum(
IN ORDENAMIENTO VARCHAR(20))
BEGIN
IF ORDENAMIENTO='empleado' THEN
SELECT COUNT(OFICIO) FROM EMP where oficio ='empleado' ;
ELSEIF ORDENAMIENTO='vendedor' THEN
SELECT COUNT(oficio) FROM EMP where oficio='vendedor';
ELSEIF ORDENAMIENTO='director' THEN
SELECT COUNT(oficio) FROM EMP where oficio='director';
ELSEIF ORDENAMIENTO='analista' THEN
SELECT COUNT(oficio) FROM EMP where oficio='analista';
ELSEIF ORDENAMIENTO='PRESIDENTE' THEN
SELECT COUNT(oficio)FROM EMP where oficio='PRESIDENTE';
END IF;
END
$$
DELIMITER ;

6) delimiter $$
create procedure SPOFICIO (
in oficio1 varchar(20))
begin
IF oficio1='primeros' then
SELECT * FROM EMP WHERE emp_no LIMIT 3;
ELSEIF OFICIO1='ULTIMOS' then
(SELECT * FROM EMP order by emp_no desc LIMIT 3)order by EMP_NO ASC;
end if;
end
$$
delimiter ;

7) DELIMITER $$
CREATE PROCEDURE SP(
IN ORDENAMIENTO VARCHAR(20))
BEGIN
IF ORDENAMIENTO='MINIMO' THEN
SELECT apellido, MIN(SALARIO) FROM EMP ORDER BY APELLIDO ;
ELSEIF ORDENAMIENTO='MAXIMO' THEN
SELECT APELLIDO,MAX(SALARIO) FROM EMP ORDER BY
APELLIDO ;
END IF;
END
$$
DELIMITER ;
8) DELIMITER $$
CREATE PROCEDURE SPSEXO(
IN ORDENAMIENTO VARCHAR(20))
BEGIN
IF ORDENAMIENTO='MUJERES' THEN
SELECT apellido ,S FROM ENFERMO where S='F ';
ELSEIF ORDENAMIENTO='VARONES' THEN
SELECT apellido ,S FROM ENFERMO where S='M';
END IF;
END
$$
DELIMITER ;

9)
delimiter $$
create procedure SPEMPLEADOS (
in dept1 varchar(20),
in dept2 varchar(20))
begin
declare canti1 int;
declare canti2 int;
select count(*) into canti1 from emp e
join dept d
on d.dept_no=e.dept_NO
where d.dnombre=dept1;
select count(*) into canti2 from emp e
join dept d
on d.dept_no=e.dept_no
where d.dnombre=dept2;
if canti1>canti2 then
select dept1,canti1;
elseif canti2>canti1 then
select dept2,canti2;
else
select dept1,dept2,canti1;
end if;
end $$
delimiter ;

10) DELIMITER $$
CREATE PROCEDURE SPSUMA(
IN SUMA VARCHAR(20))
BEGIN
IF SUMA='TOTAL' THEN
SELECT SUM(SALARIO) FROM EMP ;
END IF;
END
$$
DELIMITER ;

-WHILE
1)
2)
3)
4)
5)
6)
7)
8)
9)
10)

También podría gustarte