Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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 ;
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 ;
3. Crear un procedimiento almacenado que al ingresar “TOTAL” muestre la suma de todos
los salarios.
DELIMITER $$
CREATE PROCEDURE SPSUMA(
IN SUMA VARCHAR(20))
BEGIN
IF SUMA='TOTAL' THEN
SELECT SUM(SALARIO) FROM EMP ;
END IF;
END
$$
DELIMITER ;
4. Crear un procedimiento almacenado que muestre los hombres y mujeres que hay en la
tabla enfermos.
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 ;
5. Crear un procedimiento almacenado que muestre las tablas de manera ascendente y
descendente de la tabla enfermos
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 ;
6. Crear un procedimiento almacenado que muestre los 3 primeras tablas y las 3 ultimas
tablas.
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. Crear un procedimiento almacenado que liste los doctores que hay en cada
especialidad.
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 ;
8. Crear un procedimiento almacenado que muestre cuantas personas tienen el mismo
oficio.
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 ;
9. Crear un procedimiento almacenado que al ingresar el nombre del oficio muestre la
suma de sus salarios.
10. Crear un procedimiento almacenado que al ingresar el nombre del oficio muestre la
suma de sus salarios.