SlideShare una empresa de Scribd logo
1 de 3
Descargar para leer sin conexión
Resolución - Ejercicios N°3 – SQL Básico
Utilizando la base de datos RRHH:
1. Muestre la cantidad de clientes y promedio de Salario agrupado por el Nombre del
departamento y por la descripción del puesto.
SELECT NOMBRE_DPTO,NOMBRE_CARGO,COUNT(ID_EMPLEADO) AS CANT_EMPL,
AVG(SUELDO)AS PROM_SUELDO
FROM CL_EMPLEADOS A
INNER JOIN CL_DEPARTAMENTOS B ON A.ID_DPTO=B.ID_DPTO
INNER JOIN CL_CARGOS C ON A.ID_CARGOS=C.ID_CARGOS
GROUP BY NOMBRE_DPTO,NOMBRE_CARGO
2. Ahora muestre las mismas variables agrupadas por nombre de Región y de País.
SELECT NOMBRE_REGION,NOMBRE_PAIS,COUNT(ID_EMPLEADO) AS
CANT_EMPL, AVG(SUELDO)AS PROM_SUELDO
FROM CL_EMPLEADOS A
INNER JOIN CL_DEPARTAMENTOS B ON A.ID_DPTO=B.ID_DPTO
INNER JOIN CL_LOCALIDAD C ON B.ID_LOCALIDAD=C.ID_LOCALIDAD
INNER JOIN CL_PAISES D ON C.ID_PAIS = D.ID_PAIS
INNER JOIN CL_REGIONES E ON D.ID_REGION = E.ID_REGION
GROUP BY NOMBRE_REGION,NOMBRE_PAIS
3. Se quiere realizar una encuesta de satisfacción y se desea tomar 20 empleados al azar para
realizarla. Realice el código para la extracción de esta muestra. Que el detalle incluya nombres
y apellidos, correo electrónico y teléfono, además que se encuentre ordenada por apellidos y
por área funcional.
SELECT TOP 20*
INTO TABLA_EJERC3
FROM CL_EMPLEADOS
GO
SELECT NOMBRE_DPTO, APELLIDOS, NOMBRES, EMAIL, TELEFONO
FROM TABLA_EJERC3 A
INNER JOIN CL_DEPARTAMENTOS D ON A.ID_DPTO = D.ID_DPTO
ORDER BY APELLIDOS ASC, NOMBRE_DPTO ASC
4. Realice la extracción de la muestra para la encuesta, pero ahora tomando los 2 empleados que
más ganan por área funcional.
SELECT *
FROM
(SELECT NOMBRE_DPTO,SUELDO, APELLIDOS, NOMBRES,
ROW_NUMBER()OVER (PARTITION BY NOMBRE_DPTO ORDER BY SUELDO DESC)
AS POSICION
FROM CL_EMPLEADOS E
INNER JOIN CL_DEPARTAMENTOS D ON E.ID_DPTO=D.ID_DPTO) AS TOP2
WHERE TOP2.POSICION <=2
5. En base a la tabla de empleados, crear una tabla que contenga a los trabajadores que tengan
25 años o menos. Adicione una restricción en la variable ID_EMPLEADO como PRIMARY KEY
SELECT *
INTO MENORES_25_COPIA
FROM CL_EMPLEADOS
WHERE EDAD <= 25
GO
ALTER TABLE MENORES_25_COPIA
ALTER COLUMN ID_EMPLEADO VARCHAR(50) NOT NULL
GO
ALTER TABLE MENORES_25_COPIA
ADD CONSTRAINT RESTR_ID_EMPL
PRIMARY KEY (ID_EMPLEADO)
GO
6. Adicione a la tabla del punto anterior la variable EDAD (que sólo admita valores entre 10 y 110
años) y la variable ECIVIL (que sólo admita los valores C (casado), S (soltero) y O (otro)
ALTER TABLE MENORES_25_COPIA
ADD ECIVIL VARCHAR(50),
CONSTRAINT ECIVIL CHECK (ECIVIL='C' OR ECIVIL = 'S' OR ECIVIL =
'O'),
CONSTRAINT EDAD CHECK (EDAD>=10 and EDAD<=110)
GO
7. Finalmente agregarle la restricción a la fecha de ingreso para que tenga como valor por defecto
(DEFAULT) la fecha actual del sistema.
ALTER TABLE MENORES_25_COPIA
ADD CONSTRAINT RESTR_FECHA
DEFAULT GETDATE() FOR FECHA_INGRESO
8. Invente un empleado nuevo el ingréselo, mostrando que están funcionando correctamente las
restricciones de la parte 5 a la 7, para ello pruebe inserciones que no cumplan con los
supuestos y muestre la salida resultante de la falla de la inserción. Finalmente muestre una
inserción satisfactoria (no coloque fecha de ingreso del empleado).
----INSERCIÓN NO SATISFACTORIA (ID_EMPLEADO)---
INSERT INTO MENORES_25_COPIA
VALUES (NULL, 'STEFANY', 'SALAZAR',
'STE.SAL@EMPRESA.COM.PE','6890789654',
DEFAULT,'MK_REP','3000','0.2','103','20','20','STEFANY
SALAZAR','2800','S')
---INSERCIÓN NO SATISFACTORIA (EDAD)---
INSERT INTO MENORES_25_ORIG
VALUES ('203', 'STEFANY', 'SALAZAR',
'STE.SAL@EMPRESA.COM.PE','6890789654',
DEFAULT,'MK_REP','3000','0.2','103','20',120,'STEFANY
SALAZAR','2800','S')
----INSERCIÓN NO SATISFACTORIA (ECIVIL)---
INSERT INTO MENORES_25_COPIA
VALUES('203','STEFANY', 'SALAZAR',
'STE.SAL@EMPRESA.COM.PE','6890789654',
DEFAULT,'MK_REP','3000','0.2','103','20',20,'STEFANY
SALAZAR','2800','D')
---INSERCIÓN SATISFACTORIA - CUMPLE CON TODAS LAS RESTRICCIONES--
INSERT INTO MENORES_25_COPIA
VALUES ('203', 'STEFANY', 'SALAZAR',
'STE.SAL@EMPRESA.COM.PE','6.890.789.654',DEFAULT
,'MK_REP','3000','0.2','103','20','20','STEFANY
SALAZAR','2880','S')
9. A la tabla anterior, adicionarle el nombre del departamento y el nombre del cargo del
empleado. Para ello crear los campos y luego actualizarlos cruzando la tabla empleados con la
tabla correspondiente.
ALTER TABLE MENORES_25_COPIA
ADD NOMBRE_DPTO varchar(50), NOMBRE_CARGO varchar(50)
GO
UPDATE MENORES_25_COPIA
SET MENORES_25_COPIA.NOMBRE_CARGO=dbo.CL_CARGOS.NOMBRE_CARGO,
MENORES_25_COPIA.NOMBRE_DPTO=dbo.CL_DEPARTAMENTOS.NOMBRE_DPTO
FROM MENORES_25_COPIA JOIN CL_DEPARTAMENTOS ON
MENORES_25_COPIA.ID_DPTO=CL_DEPARTAMENTOS.ID_DPTO
JOIN CL_CARGOS ON MENORES_25_COPIA.ID_CARGOS=CL_CARGOS.ID_CARGOS
GO
SELECT*
FROM MENORES_25_COPIA
ORDER BY ID_EMPLEADO

Más contenido relacionado

La actualidad más candente (10)

Algoritmica i clase06 practica 6 solucionario
Algoritmica i clase06 practica 6 solucionarioAlgoritmica i clase06 practica 6 solucionario
Algoritmica i clase06 practica 6 solucionario
 
Funciones+sql+server
Funciones+sql+serverFunciones+sql+server
Funciones+sql+server
 
Informatica
InformaticaInformatica
Informatica
 
Programa suma y multiplicacion alexander freites
Programa suma y multiplicacion alexander freitesPrograma suma y multiplicacion alexander freites
Programa suma y multiplicacion alexander freites
 
Excel practica-10-laboratorio de quimica
Excel practica-10-laboratorio de quimicaExcel practica-10-laboratorio de quimica
Excel practica-10-laboratorio de quimica
 
Prolog 2011 2
Prolog 2011 2Prolog 2011 2
Prolog 2011 2
 
Programación de ejercicios de consola y gráficos en GAMBAS
Programación de ejercicios de consola y gráficos en GAMBASProgramación de ejercicios de consola y gráficos en GAMBAS
Programación de ejercicios de consola y gráficos en GAMBAS
 
Programas operadores
Programas operadoresProgramas operadores
Programas operadores
 
Ejercicio filtros bases datos excel
Ejercicio filtros bases datos excelEjercicio filtros bases datos excel
Ejercicio filtros bases datos excel
 
Resultado de una raiz
Resultado de una raizResultado de una raiz
Resultado de una raiz
 

Similar a Soluciones ejercicios 3

Similar a Soluciones ejercicios 3 (20)

SQL-DDL
SQL-DDLSQL-DDL
SQL-DDL
 
Ejercicios resueltos de_pl-sql
Ejercicios resueltos de_pl-sqlEjercicios resueltos de_pl-sql
Ejercicios resueltos de_pl-sql
 
Consultas-SQL.pdf
Consultas-SQL.pdfConsultas-SQL.pdf
Consultas-SQL.pdf
 
Consultas sql
Consultas sqlConsultas sql
Consultas sql
 
Base datos mysql y visual basic
Base datos mysql y visual basicBase datos mysql y visual basic
Base datos mysql y visual basic
 
Trabajando con sql (parte 2)
Trabajando con sql (parte 2)Trabajando con sql (parte 2)
Trabajando con sql (parte 2)
 
Sql2
Sql2Sql2
Sql2
 
Guia de ejercicios para resolver sql
Guia de ejercicios para resolver sqlGuia de ejercicios para resolver sql
Guia de ejercicios para resolver sql
 
Complemento del manual de programacion iii sql
Complemento del manual de programacion iii sqlComplemento del manual de programacion iii sql
Complemento del manual de programacion iii sql
 
Sentencia select
Sentencia selectSentencia select
Sentencia select
 
Manual sql server
Manual sql serverManual sql server
Manual sql server
 
Manualsqlserverparte
ManualsqlserverparteManualsqlserverparte
Manualsqlserverparte
 
Consultas en SQL
Consultas en SQLConsultas en SQL
Consultas en SQL
 
Computo movil ejercicio clases resuelto
Computo movil ejercicio clases resueltoComputo movil ejercicio clases resuelto
Computo movil ejercicio clases resuelto
 
Ti. Sql.Caso1al9.Consultas
Ti. Sql.Caso1al9.ConsultasTi. Sql.Caso1al9.Consultas
Ti. Sql.Caso1al9.Consultas
 
Ejercicios sql access
Ejercicios sql accessEjercicios sql access
Ejercicios sql access
 
Ejercicios sql access
Ejercicios sql accessEjercicios sql access
Ejercicios sql access
 
Ejercicios sql access
Ejercicios sql accessEjercicios sql access
Ejercicios sql access
 
Ejercicios sql access
Ejercicios sql accessEjercicios sql access
Ejercicios sql access
 
Ejercicios sql access
Ejercicios sql accessEjercicios sql access
Ejercicios sql access
 

Último

COMPETENCIAS CIUDADANASadadadadadadada .pdf
COMPETENCIAS CIUDADANASadadadadadadada .pdfCOMPETENCIAS CIUDADANASadadadadadadada .pdf
COMPETENCIAS CIUDADANASadadadadadadada .pdfOscarBlas6
 
Buscadores, SEM SEO: el desafío de ser visto en la web
Buscadores, SEM SEO: el desafío de ser visto en la webBuscadores, SEM SEO: el desafío de ser visto en la web
Buscadores, SEM SEO: el desafío de ser visto en la webDecaunlz
 
COMOGANARAMIGODPARACRISTOIGLESIAADVENTISTANECOCLI,COM
COMOGANARAMIGODPARACRISTOIGLESIAADVENTISTANECOCLI,COMCOMOGANARAMIGODPARACRISTOIGLESIAADVENTISTANECOCLI,COM
COMOGANARAMIGODPARACRISTOIGLESIAADVENTISTANECOCLI,COMcespitiacardales
 
12 Clasificacion de las Computadoras.pdf
12 Clasificacion de las Computadoras.pdf12 Clasificacion de las Computadoras.pdf
12 Clasificacion de las Computadoras.pdfedwinmelgarschlink2
 
libro de Ciencias Sociales_6to grado.pdf
libro de Ciencias Sociales_6to grado.pdflibro de Ciencias Sociales_6to grado.pdf
libro de Ciencias Sociales_6to grado.pdfFAUSTODANILOCRUZCAST
 
institucion educativa la esperanza sede magdalena
institucion educativa la esperanza sede magdalenainstitucion educativa la esperanza sede magdalena
institucion educativa la esperanza sede magdalenajuniorcuellargomez
 
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdfNUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdfisrael garcia
 
Institucion educativa la esperanza sede la magdalena
Institucion educativa la esperanza sede la magdalenaInstitucion educativa la esperanza sede la magdalena
Institucion educativa la esperanza sede la magdalenadanielaerazok
 
INSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENA
INSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENAINSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENA
INSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENAdanielaerazok
 
Guia para el registro en el sitio slideshare.pdf
Guia para el registro en el sitio slideshare.pdfGuia para el registro en el sitio slideshare.pdf
Guia para el registro en el sitio slideshare.pdflauradbernals
 

Último (10)

COMPETENCIAS CIUDADANASadadadadadadada .pdf
COMPETENCIAS CIUDADANASadadadadadadada .pdfCOMPETENCIAS CIUDADANASadadadadadadada .pdf
COMPETENCIAS CIUDADANASadadadadadadada .pdf
 
Buscadores, SEM SEO: el desafío de ser visto en la web
Buscadores, SEM SEO: el desafío de ser visto en la webBuscadores, SEM SEO: el desafío de ser visto en la web
Buscadores, SEM SEO: el desafío de ser visto en la web
 
COMOGANARAMIGODPARACRISTOIGLESIAADVENTISTANECOCLI,COM
COMOGANARAMIGODPARACRISTOIGLESIAADVENTISTANECOCLI,COMCOMOGANARAMIGODPARACRISTOIGLESIAADVENTISTANECOCLI,COM
COMOGANARAMIGODPARACRISTOIGLESIAADVENTISTANECOCLI,COM
 
12 Clasificacion de las Computadoras.pdf
12 Clasificacion de las Computadoras.pdf12 Clasificacion de las Computadoras.pdf
12 Clasificacion de las Computadoras.pdf
 
libro de Ciencias Sociales_6to grado.pdf
libro de Ciencias Sociales_6to grado.pdflibro de Ciencias Sociales_6to grado.pdf
libro de Ciencias Sociales_6to grado.pdf
 
institucion educativa la esperanza sede magdalena
institucion educativa la esperanza sede magdalenainstitucion educativa la esperanza sede magdalena
institucion educativa la esperanza sede magdalena
 
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdfNUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
 
Institucion educativa la esperanza sede la magdalena
Institucion educativa la esperanza sede la magdalenaInstitucion educativa la esperanza sede la magdalena
Institucion educativa la esperanza sede la magdalena
 
INSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENA
INSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENAINSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENA
INSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENA
 
Guia para el registro en el sitio slideshare.pdf
Guia para el registro en el sitio slideshare.pdfGuia para el registro en el sitio slideshare.pdf
Guia para el registro en el sitio slideshare.pdf
 

Soluciones ejercicios 3

  • 1. Resolución - Ejercicios N°3 – SQL Básico Utilizando la base de datos RRHH: 1. Muestre la cantidad de clientes y promedio de Salario agrupado por el Nombre del departamento y por la descripción del puesto. SELECT NOMBRE_DPTO,NOMBRE_CARGO,COUNT(ID_EMPLEADO) AS CANT_EMPL, AVG(SUELDO)AS PROM_SUELDO FROM CL_EMPLEADOS A INNER JOIN CL_DEPARTAMENTOS B ON A.ID_DPTO=B.ID_DPTO INNER JOIN CL_CARGOS C ON A.ID_CARGOS=C.ID_CARGOS GROUP BY NOMBRE_DPTO,NOMBRE_CARGO 2. Ahora muestre las mismas variables agrupadas por nombre de Región y de País. SELECT NOMBRE_REGION,NOMBRE_PAIS,COUNT(ID_EMPLEADO) AS CANT_EMPL, AVG(SUELDO)AS PROM_SUELDO FROM CL_EMPLEADOS A INNER JOIN CL_DEPARTAMENTOS B ON A.ID_DPTO=B.ID_DPTO INNER JOIN CL_LOCALIDAD C ON B.ID_LOCALIDAD=C.ID_LOCALIDAD INNER JOIN CL_PAISES D ON C.ID_PAIS = D.ID_PAIS INNER JOIN CL_REGIONES E ON D.ID_REGION = E.ID_REGION GROUP BY NOMBRE_REGION,NOMBRE_PAIS 3. Se quiere realizar una encuesta de satisfacción y se desea tomar 20 empleados al azar para realizarla. Realice el código para la extracción de esta muestra. Que el detalle incluya nombres y apellidos, correo electrónico y teléfono, además que se encuentre ordenada por apellidos y por área funcional. SELECT TOP 20* INTO TABLA_EJERC3 FROM CL_EMPLEADOS GO SELECT NOMBRE_DPTO, APELLIDOS, NOMBRES, EMAIL, TELEFONO FROM TABLA_EJERC3 A INNER JOIN CL_DEPARTAMENTOS D ON A.ID_DPTO = D.ID_DPTO ORDER BY APELLIDOS ASC, NOMBRE_DPTO ASC 4. Realice la extracción de la muestra para la encuesta, pero ahora tomando los 2 empleados que más ganan por área funcional. SELECT * FROM (SELECT NOMBRE_DPTO,SUELDO, APELLIDOS, NOMBRES, ROW_NUMBER()OVER (PARTITION BY NOMBRE_DPTO ORDER BY SUELDO DESC) AS POSICION FROM CL_EMPLEADOS E INNER JOIN CL_DEPARTAMENTOS D ON E.ID_DPTO=D.ID_DPTO) AS TOP2 WHERE TOP2.POSICION <=2 5. En base a la tabla de empleados, crear una tabla que contenga a los trabajadores que tengan 25 años o menos. Adicione una restricción en la variable ID_EMPLEADO como PRIMARY KEY SELECT *
  • 2. INTO MENORES_25_COPIA FROM CL_EMPLEADOS WHERE EDAD <= 25 GO ALTER TABLE MENORES_25_COPIA ALTER COLUMN ID_EMPLEADO VARCHAR(50) NOT NULL GO ALTER TABLE MENORES_25_COPIA ADD CONSTRAINT RESTR_ID_EMPL PRIMARY KEY (ID_EMPLEADO) GO 6. Adicione a la tabla del punto anterior la variable EDAD (que sólo admita valores entre 10 y 110 años) y la variable ECIVIL (que sólo admita los valores C (casado), S (soltero) y O (otro) ALTER TABLE MENORES_25_COPIA ADD ECIVIL VARCHAR(50), CONSTRAINT ECIVIL CHECK (ECIVIL='C' OR ECIVIL = 'S' OR ECIVIL = 'O'), CONSTRAINT EDAD CHECK (EDAD>=10 and EDAD<=110) GO 7. Finalmente agregarle la restricción a la fecha de ingreso para que tenga como valor por defecto (DEFAULT) la fecha actual del sistema. ALTER TABLE MENORES_25_COPIA ADD CONSTRAINT RESTR_FECHA DEFAULT GETDATE() FOR FECHA_INGRESO 8. Invente un empleado nuevo el ingréselo, mostrando que están funcionando correctamente las restricciones de la parte 5 a la 7, para ello pruebe inserciones que no cumplan con los supuestos y muestre la salida resultante de la falla de la inserción. Finalmente muestre una inserción satisfactoria (no coloque fecha de ingreso del empleado). ----INSERCIÓN NO SATISFACTORIA (ID_EMPLEADO)--- INSERT INTO MENORES_25_COPIA VALUES (NULL, 'STEFANY', 'SALAZAR', 'STE.SAL@EMPRESA.COM.PE','6890789654', DEFAULT,'MK_REP','3000','0.2','103','20','20','STEFANY SALAZAR','2800','S') ---INSERCIÓN NO SATISFACTORIA (EDAD)--- INSERT INTO MENORES_25_ORIG VALUES ('203', 'STEFANY', 'SALAZAR', 'STE.SAL@EMPRESA.COM.PE','6890789654', DEFAULT,'MK_REP','3000','0.2','103','20',120,'STEFANY SALAZAR','2800','S') ----INSERCIÓN NO SATISFACTORIA (ECIVIL)--- INSERT INTO MENORES_25_COPIA VALUES('203','STEFANY', 'SALAZAR', 'STE.SAL@EMPRESA.COM.PE','6890789654', DEFAULT,'MK_REP','3000','0.2','103','20',20,'STEFANY SALAZAR','2800','D') ---INSERCIÓN SATISFACTORIA - CUMPLE CON TODAS LAS RESTRICCIONES--
  • 3. INSERT INTO MENORES_25_COPIA VALUES ('203', 'STEFANY', 'SALAZAR', 'STE.SAL@EMPRESA.COM.PE','6.890.789.654',DEFAULT ,'MK_REP','3000','0.2','103','20','20','STEFANY SALAZAR','2880','S') 9. A la tabla anterior, adicionarle el nombre del departamento y el nombre del cargo del empleado. Para ello crear los campos y luego actualizarlos cruzando la tabla empleados con la tabla correspondiente. ALTER TABLE MENORES_25_COPIA ADD NOMBRE_DPTO varchar(50), NOMBRE_CARGO varchar(50) GO UPDATE MENORES_25_COPIA SET MENORES_25_COPIA.NOMBRE_CARGO=dbo.CL_CARGOS.NOMBRE_CARGO, MENORES_25_COPIA.NOMBRE_DPTO=dbo.CL_DEPARTAMENTOS.NOMBRE_DPTO FROM MENORES_25_COPIA JOIN CL_DEPARTAMENTOS ON MENORES_25_COPIA.ID_DPTO=CL_DEPARTAMENTOS.ID_DPTO JOIN CL_CARGOS ON MENORES_25_COPIA.ID_CARGOS=CL_CARGOS.ID_CARGOS GO SELECT* FROM MENORES_25_COPIA ORDER BY ID_EMPLEADO