0% encontró este documento útil (0 votos)
47 vistas9 páginas

SQL

Este documento contiene instrucciones SQL para realizar consultas y funciones sobre tablas de una base de datos hospitalaria. Incluye consultas para obtener datos de médicos, empleados, pacientes y más. También incluye la creación de funciones y procedimientos almacenados para resumir y organizar la información de la base de datos.

Cargado por

Alex Jair
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
47 vistas9 páginas

SQL

Este documento contiene instrucciones SQL para realizar consultas y funciones sobre tablas de una base de datos hospitalaria. Incluye consultas para obtener datos de médicos, empleados, pacientes y más. También incluye la creación de funciones y procedimientos almacenados para resumir y organizar la información de la base de datos.

Cargado por

Alex Jair
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 9

SQL

1) Mostrar todas las especialidades que ejercen los médicos ordenados por especialidad
y apellidos.

Select especialidad from doctor

Select especidalidad from doctor

Select especialidad, apellidos froma doctor order by especialidad,apellido

FUNCIONES

2) Contar cuàntos empleados tiene el hospital.

Select count(*) from Emp

3) Mostrar el máximo salario de los empleados


Select max(salario) from emp

Avg=promedio

4) Contar los empleados que son analistas

select count( * ) from emp where oficio = 'analista'

5) Contar cuàntas enfermeras hay en la tabla planilla

select count( * ) from planilla where funcion = 'enfermera'

6) Calcular el total de gastos mensuales de los empleados

Select sum (salario) from emp

7) Total de gastps anuales sin aguinaldo

Select sum(salario*12) from emp

8) Total de gastos anuales con aguinaldo

Select sum(salario*14) from emp

9) Mostrar las cantidades de empleados por eficio

SELECT OFICIO, COUNT( * )FROM EMP GROUP BY OFICIO

SELECT OFICIO, COUNT( * ) AS NUMERO FROM EMP GROUP BY OFICIO

10) Mostrar la cantidad de médicos por especialidad

SELECT ESPECIALIDAD, COUNT( * )FROM EMP GROUP BY ESPECIALIDAD

11) Mostrar la cantidad de enfermos por sexo

SELECT S, COUNT( * )AS NUMERO FROM EMP GROUP BY S

12) Mostrar el total de gastos mensuales de empleados por oficio

SELECT OFICIO, SUM( SALARIO )FROM EMP GROUP BY OFICIO


13) Mostrar el total de gastos mensuales de planilla por función

SELECT NOMBRE,COUNT(NUM_CAMA) FROM SALA GROUP BY NOMBRE

14) Contar el nùmero de camas que existe en cada hospital

SELECT HOSPITAL_COD,COUNT(NUM_CAMA) FROM SALA GROUP BY HOSPITAL_COD

SQL.(4/10/22)

15) Mostrar los oficios con el máximo salario de empleados.

SELECT DISTINCT OFICIO, MAX( SALARIO ) FROM EMP GROUP BY OFICIO LIMIT 0 , 30

16) SELECT TOP


Mostrar los 5 primeros empleados

SELECT APELLIDO FROM EMP LIMIT 5;

17) Mostrar los 2 primeros doctors

SELEC APELLIDO FROM DOCTOR LIMIT 2;

18) Mostrar los 3 primeros enfermos


SELECT APELLIDO
FROM enfermo
LIMIT 6
19) Mostrar el nombre del hospital el doctor y su especialidad de las tablas DOCTOR y
HOSPITAL.

SELECT HOSPITAL.NOMBRE,DOCTOR.APELLIDO,DOCTOR.ESPECIALIDAD FROM DOCTOR INNER


JOIN HOSPITAL ON DOCTOR.HOSPITAL_COD = HOSPITAL.HOSPITAL_COD

20) Mostrar de todos los empleados el nombre de departamento, su apellido y oficio


“TABLAS EMP Y DEP”.

SELECT DEPT.DNOMBRE,EMP.APELLIDO,EMP.OFICIO FROM EMP INNER JOIN DEPT ON


EMP.DEPT_NO = DEPT.DEPT_NO

21) Mostrar de todas las Salas el nombre del hospital el numero de cama(SALA Y
HOSPITA)

SELECT HOSPITAL.NOMBRE,SALA.NOMBRE,SALA.NUM_CAMA FROM SALA INNER JOIN


HOSPITAL ON SALA.HOSPITAL_COD = HOSPITAL.HOSPITAL_COD

22) Mostrar todo el personal de plantilla nombre hospital, apellido ,función (HOSPITAL Y
PLANTILLA)

SELECT HOSPITAL.NOMBRE,PLANTILLA.APELLIDO,PLANTILLA.FUNCION FROM PLANTILLA INNER


JOIN HOSPITAL ON PLANTILLA.HOSPITAL_COD = HOSPITAL.HOSPITAL_COD

23) SELECT APELLIDO, OFICIO, DNOMBRE
FROM EMP
LEFT OUTER JOIN DEPT ON EMP.DEPT_NO = DEPT.DEPT_NO
LIMIT 0 , 30
24) Mostrar los empleados que tienen asociado un departamento o no .
SELECT APELLIDO, OFICIO, DNOMBRE
FROM EMP
RIGHT OUTER JOIN DEPT ON EMP.DEPT_NO = DEPT.DEPT_NO
LIMIT 0 , 30

25) Mostrar todos los departamentos que tiene


empleados o no.
“Cross join o full join” son similares.
SELECT APELLIDO, OFICIO, DNOMBRE
FROM EMP
CROSS JOIN dept
LIMIT 0 , 30

26) Ejercicios : Mostrar los datos de empleados (apellido , oficio , salario, Nº departamento y el nombre de
departamento de los empleados cuyo salario es mayor de 300000).
SELECT APELLIDO, OFICIO, SALARIO, DNOMBRE
FROM EMP
INNER JOIN DEPT ON EMP.DEPT_NO = DEPT.DEPT_NO
WHERE EMP.SALARIO >300000
LIMIT 0 , 30

27) Mostrar todas los nombres de salas con su respectivo nombre de hospital
SELECT sala.nombre, hospital.nombre
FROM hospital
INNER JOIN sala ON hospital.hospital_cod = sala.hospital_cod

Una manera más fácil de hacerlo

SELECT B.nombre, A.nombre
FROM hospital A
INNER JOIN sala B ON A.hospital_cod = b.hospital_cod
28. Calcular cuantos trabajadores hay en cada ciudad
SELECT COUNT( EMP.APELLIDO ) , DEPT.LOC
FROM EMP
INNER JOIN DEPT ON EMP.DEPT_NO = DEPT.DEPT_NO
GROUP BY dept.loc

Las dos son validas

SELECT COUNT( EMP.APELLIDO ) , DEPT.LOC
FROM EMP
RIGHT JOIN DEPT ON EMP.DEPT_NO = DEPT.DEPT_NO
GROUP BY dept.loc

29 Calcular cuantas salas hay en cada hospital . mostrar numero y nombre del hospital.
SELECT COUNT( sala.hospital_cod ) , hospital.nombre
FROM hospital
RIGHT JOIN sala ON sala.hospital_cod = hospital.hospital_cod
GROUP BY hospital.nombre

30 Calcular cuantos empleados hay en cada departamento


SELECT COUNT( emp.dept_no )
FROM emp
INNER JOIN dept ON emp.dept_no = dept.dept_no
GROUP BY dept.dnombre
SUB CONSULTAS .

31. Mostrar los datos del empleado mas antiguo con su fecha de ingreso

SELECT apellido, EMP_NO, fecha_alt
FROM emp
WHERE fecha_alt = (
SELECT MAX( fecha_alt )
FROM emp )

32. Mostrar los datos de los empleados del mismo oficio de Jimenez

SELECT apellido, oficio
FROM emp
WHERE oficio = (
SELECT oficio
FROM emp
WHERE apellido = 'Jimenez' )

33. Mostrar los datos de hospitales que tienen doctores en la especialidades


cardiologia
SELECT * FROM hospital
WHERE hospital_codIN (SELECT hospital_cod
FROM doctor
WHERE especialidad = 'cardiologia)
34. Mostrar todos los enfermos que nacieron antes del Sr.Miller.
SELECT * FROM enfermo
WHERE fecha_nac < (
SELECT fecha_nac
FROM enfermo
WHERE apellido = 'Miller B.' )

Funciones definidas por el usuario

Delimiter $$

Create function fnumEmp( )Return int Deterministie

Begin Declare numero Int;

Select count (*) from emp into numero;

Return numero ;

END

$$

Delimiter;

1. Crear las funciones que devuelvan el total de planilla de empleados


mensualmente
DELIMITER $$
CREATE FUNCTION FPLANILLA ( )RETURNS INT
BEGIN
DECLARE NUMERO INT;
SELECT SUM(SALARIO) FROM PLANILLA INTO NUMERO;
RETURN NUMERO;
END
$$
DELIMITER
2. Crear la función que calcule el total de pagos a los doctores

DELIMITER $$

CREATE FUNCTION FSUMA()RETURNS INT

BEGIN

DECLARE NUMERO INT;

SELECT SUM(SALARIO) FROM PLANTILLA WHERE FUNCION LIKE 'e%' INTO


NUMERO;

RETURN NUMERO;

END

$$

DELIMITER ,,

3. Crear la función que reciba el código del hospital y devuelva el nombre


fnombrehospital

DELIMITER $$

CREATE FUNCTION FNOMBREHOSPITAL ( CODIGO int ) RETURNS VARCHAR(100)

BEGIN

DECLARE HNOMBRE VARCHAR (100);

SELECT NOMBRE FROM HOSPITAL WHERE HOSPITAL_COD = CODIGO INTO


HNOMBRE ;

RETURN HNOMBRE;

END

$$

DELIMITER ;

4. Crear la función que calcule el número de doctores según el código del hospital
FNUMERODOCTORH

5. Crear la función que calcule el numero de salas según el código del hospital
FNUMSALAH

6. Crear la función que calcular el numero de empleados según el nombre de


oficio
FNUMEMP

PROCEDIMIENTO ALMACENADOS

DELIMITER $$
CREATE PROCEDURE SPLISTAEMP ()
BEGIN
SELECT * FROM EMP ;
END
$$
DELIMITER ;

1. Crear el SPLista oficio que muestre los empleados según oficio.

DELIMITER $$
CREATE PROCEDURE SPLISTAEMPLEA ()
BEGIN
SELECT OFICIO FROM EMP ;
END
$$
DELIMITER ;

2. Crear el SPListaDoctor que muestre los doctores según Especialidad.


CREATE PROCEDURE SPListaDoctor( ) BEGIN SELECT APELLIDO, 
ESPECIALIDAD
FROM DOCTOR;

END

3. Crear el Salas que muestre las salas según el código de hospital

DELIMITER $$
CREATE PROCEDURE Sisals ()
BEGIN
SELECT sala.NOMBRE,hospital.Hospital_cod FROM Sala INNER JOIN
HOSPITAL ON sala.hospital_cod = hospital.hospital_cod ;
END
$$
DELIMITER;

4. Crear el SPEnfermo que muestre los enfermos según la fecha enviada.

5. Crear SPPlanilla que muestre los empleados según el turno ingresado.

También podría gustarte