Sunteți pe pagina 1din 8

AÑO DE LA UNION NACIONAL FRENTE A LA CRISIS EXTERNA

UNIVERSIDAD NACIONAL DEL CENTRO DEL PERU

FACULTAD DE INGENIERÍA DE SISTEMAS

ASIGNATURA: MODELAMIENTO DE BASE DE DATOS

TEMA: PRACTICA 01

PROFESOR: ING RICHARD MERCADO RIVAS

ALUMNO: DANIEL GONZALO LANDEO RIVERA

SEMESTRE: SÉPTIMO

AÑO ACADÉMICO: 2009-II

HUANCAYO-PERU
PRACTICA DE SQL

1. Crear una base de datos llamada Práctica


 SOLUCION:

Para crear una base de datos denominada practica en el programa SQL


SERVER 2005, hacer anticlick en la carpeta Databases y luego en la opción
New Database…, ingresar el nombre de la base de datos y aceptar.
Otra forma de crear la base de datos llamada “Practica“es mediante el
siguiente código en SQL:

Create Database Practica ON PRIMARY-- crea la base de datos “Practica”


(
NAME=Practica_data,
FILENAME=’C:\Practica.mdf’,--directorio del archivo
SIZE=5MB,--Tamaño inicial
MAXSIZE=10MB,-- Tamaño máximo
FILEGROWTH=1MB -- crecimiento del archivo
)
LOG ON
(
NAME=Practica_log,
FILENAME=’C:\Practica.ldf’,
SIZE=5MB,
MAXSIZE=10MB,
FILEGROWTH=1MB
)
2. Crear las siguientes tablas con código, puede variar el tipo de dato dependiendo del
SGBD que utilice

 SOLUCION:
-- crear la tabla DEPT
create table DEPT(
DEPTNO char(2) not null primary key,
DEP_NOM char(35) not null);

-- crear la tabla EMPLEADO


create table EMPLEADO(
EMP_NOM char(35) not null,
EMP_ID char(5) not null primary key,
EMP_SAL numeric (12,2) not null,
EMP_FE_ING datetime not null,
EMP_TITULO char(20) not null,
EMP_JEFE char(5) not null,
DEPTNO char(2) not null references DEPT);

--agrega una llave foránea que referencia a EMPLEADO


Alter table EMPLEADO
Add constraint manager foreign key(EMP_JEFE) references EMPLEADO

3. Inserte los siguientes datos para cada tabla con código

 SOLUCION:
--dato de la tabla DEPT
insert into DEPT (DEPTNO,DEP_NOM)
values ('10','GFASE1');
insert into DEPT (DEPTNO,DEP_NOM)
values ('20','PFASE2');
insert into DEPT (DEPTNO,DEP_NOM)
values ('30','PFASE3');
--datos de la tabla EMPLEADO
insert into EMPLEADO(EMP_NOM, EMP_ID, EMP_SAL,
EMP_FE_ING,EMP_TITULO,EMP_JEFE,DEPTNO)
values ('Juan','20002',800,10/04/2005,'INGENIERO','50001','10');

insert into EMPLEADO (EMP_NOM, EMP_ID, EMP_SAL,


EMP_FE_ING,EMP_TITULO,EMP_JEFE,DEPTNO)
values ('Luis','20003',400,11/04/2005,'DOCTOR','50002','10');

insert into EMPLEADO (EMP_NOM, EMP_ID, EMP_SAL,


EMP_FE_ING,EMP_TITULO,EMP_JEFE,DEPTNO)
values ('Pepe','20004',1200,12/04/2005,'ABOGADO','50001','10');

insert into EMPLEADO (EMP_NOM, EMP_ID, EMP_SAL,


EMP_FE_ING,EMP_TITULO,EMP_JEFE,DEPTNO)
values ('Pedro','20005',900,13/04/2005,'INGENIERO','50003','20');

insert into EMPLEADO (EMP_NOM, EMP_ID, EMP_SAL,


EMP_FE_ING,EMP_TITULO,EMP_JEFE,DEPTNO)
values ('Saul','20006',700,14/04/2005,'ABOGADO','50004','20');

insert into EMPLEADO (EMP_NOM, EMP_ID, EMP_SAL,


EMP_FE_ING,EMP_TITULO,EMP_JEFE,DEPTNO)
values('Luisa','50001',1000,15/04/2005,'ADMINISTRADORA','50002','30');

4. Usando el comando SELECT SQL, visualice el contenido de la tabla empleado

 SOLUCION:
--visualiza todos los campos de la tabla EMPLEADO
select * from EMPLEADO

5. Usando el comando SELECT SQL, visualice el contenido del campo EMP_TITULO


de la tabla empleado de manera que no se obtengan registros repetidos.
 SOLUCION:
--visualiza el campo EMP_TITULO de la tabla EMPLEADO, sin filas
repetidas
select distinct EMP_TITULO “TITULO DEL EMPLEADO” from EMPLEADO

6. Usando el comando SELECTSQL, visualice el contenido de la tabla empleado de


aquellos trabajadores cuyo jefe sea el que tiene código (EMP_JEFE)=’50001’
 SOLUCION:

--visualiza los campos de la tabla EMPLEADO, donde EMP_JEFE=50001


select * from EMPLEADO
where EMP_JEFE=’50001’
7. Usando el comando SELECTSQL, visualice el contenido de la tabla empleado de
aquellos trabajadores cuyo jefe no sea el que tiene código (EMP_JEFE)=50001

 SOLUCION:
--visualiza cada campos de la tabla EMPLEADO,donde EMP_JEFE no es 50001
select * from EMPLEADO
where EMP_JEFE<>’50001’

8. Usando el comando SELECT SQL, visualice el contenido de los campos EMP_NOM,


EMP_ID, EMP_SAL de la tabla empleado de aquellos trabajadores cuyo salario
(EMP_SAL) sea mayor que 800 o menor que 500.

 SOLUCION:

--visualiza los campos EMP_NOM, EMP_ID, EMP_SAL de la tabla EMPLEADO,


--donde 800<salario o salario<500
select EMP_NOM “Nombres”, EMP_ID ”ID del empleado”, EMP_SAL “Salario
” from EMPLEADO
where EMP_SAL > 800 or EMP_SAL<500

9. Usando el comando SELECT SQL, visualice el contenido de los campos EMP_NOM,


EMP_ID, EMP_SAL de la tabla empleado de aquellos trabajadores cuyo
salario(EMP_SAL) este entre 800 y 500 (incluidos)

 SOLUCION:
--visualiza los campos EMP_NOM ”Nombre del empleado”, EMP_ID “ID del
empleado”, EMP_SAL “Salario del empleado” de la tabla EMPLEADO,
--donde 500<=salario<=800 usando “entre c1 y c2”
select EMP_NOM ”nombres”, EMP_ID “identificacion”, EMP_SAL “Salario”
from EMPLEADO
where EMP_SAL between 500 and 800

10. Usando el comando SELECT SQL, visualice el contenido de los campos EMP_NOM,
EMP_ID, EMP_SAL de la tabla empleado ordenado por el nombre del
empleado(EMP_NOM)

 SOLUCION:
--visualiza los campos EMP_NOM, EMP_ID, EMP_SAL de la tabla EMPLEADO,
--ordenados por defecto según los nombres de los empleados
select EMP_NOM ”Nombre del empleado”, EMP_ID “ID del empleado”,
EMP_SAL “Salario del empleado” from EMPLEADO
order by EMP_NOM
11. Usando el comando SELECT SQL, visualice el contenido de los campos EMP_NOM,
EMP_ID, EMP_SAL de la tabla empleado ordenado por el salario del empleado
(EMP_SAL)

 SOLUCION:
--visualiza los campos EMP_NOM, EMP_ID, EMP_SAL de la tabla EMPLEADO,
--ordenados por defecto según los salarios de los empleados
select EMP_NOM ”Nombre del empleado”, EMP_ID ”ID del empleado”,
EMP_SAL “Salario del empleado” from EMPLEADO
order by EMP_SAL

12. Usando el comando SELECT SQL, visualice el contenido de los campos EMP_NOM,
EMP_ID, EMP_SAL de la tabla empleado ordenado por el salario del empleado
(EMP_SAL) descendentemente.

 SOLUCION:
--visualiza los campos EMP_NOM, EMP_ID, EMP_SAL de la tabla EMPLEADO,
--ordenados en descendente por el salario de los empleados
select EMP_NOM “Nombre del empleado”, EMP_ID ”ID del empleado”,
EMP_SAL ”Sueldo del empleado” from EMPLEADO
order by EMP_SAL desc

13. Usando el comando SELECT SQL, visualice el contenido de los campos EMP_NOM,
EMP_ID, EMP_SAL de la tabla empleado ordenado descendentemente por el salario
(EMP_SAL) y nombre de empleado(EMP_NOM)

 SOLUCION:
--visualiza los campos EMP_NOM, EMP_ID, EMP_SAL de la tabla EMPLEADO,
--ordenados en descendente por el salario y el nombre de los empleados
select EMP_NOM “NOMBRE DEL EMPLEADO”, EMP_ID “ID DEL EMPLEADO”,
EMP_SAL ”SALARIO DEL EMPLEADO”
from EMPLEADO
order by EMP_SAL desc, EMP_NOM desc

14. Usando el comando SELECT SQL, visualice el contenido de la tabla empleado y


dept. de manera que los datos correspondientes a un mismo trabajador se vean como
un registro.

 SOLUCION:
--las dos tablas como una sola
select EMP_ID,EMP_NOM,
EMP_SAL, EMP_FE_ING,
EMP_TITULO, EMP_JEFE,
DEPT.DEPTNO, DEP_NOM from EMPLEADO, DEPT
where EMPLEADO.DEPTNO=DEPT.DEPTNO
15. Usando el comando SELECT SQL, visualice los registros de aquellos trabajadores
que ganan más que sus jefes.

 SOLUCION:
--Mostrar los empleados que ganan más que sus jefes
select * from EMPLEADO e1
where EMP_SAL>(select EMP_SAL
from EMPLEADO e2
where e2.EMP_ID=e1.EMP_JEFE);

16. Usando el comando SELECT SQL, visualice el nombre del departamento y la


cantidad de trabajadores que tiene.

 SOLUCION:
--Mostrar el departamento y la cantidad de trabajadores que tiene
select DEP_NOM “DEPARTAMENTO”, COUNT(DEP_NOM) “CANTIDAD DE
TRABAJADORES”
from EMPLEADO, DEPT
where EMPLEADO.DEPTNO=DEPT.DEPTNO
group by DEP_NOM

17. Usando el comando SELECT SQL, visualice el nombre del departamento y la


cantidad de trabajadores de cada departamento cuyo nombre no comience con G

 SOLUCION

--visualiza la cantidad de trabajadores en los departamentos cuyo


nombre no comienza con G
select DEP_NOM ”DEPARTAMENTO”,COUNT(DEP_NOM)"NUMERO DE EMPLEADOS"
from EMPLEADO, DEPT
where EMPLEADO.DEPTNO=DEPT.DEPTNO and DEPT.DEP_NOM not like 'G%'
group by DEP_NOM

18. Usando el comando SELECT SQL, visualice el nombre del empleado y su titulo de
aquellos empleados cuyo título coincida con el empleado cuya identificación es
20002

 SOLUCION:
--visualiza el nombre y titulo
--de los empleados cuyo titulo coincide
--con el del empleado cuyo ID es 20002
select EMP_NOM ”Nombre del empleado”, EMP_TITULO “Titulo del empleado”
from EMPLEADO
where EMP_TITULO=(
select EMP_TITULO
FROM EMPLEADO
where
EMP_ID=’20002’)and EMP_ID<>’20002’;
19. Usando el comando SELECT SQL, visualice el nombre del empleado y su titulo de
aquellos empleados cuyo título coincida con el del empleado cuya identificación es
20002 o igual a 2006

 SOLUCION:
--visualiza el nombre y titulo
--de los empleados cuyo titulo coincide
--con el del empleado cuyo ID es 20002 0 20006
select EMP_NOM “Nombre del empleado”, EMP_TITULO “Titulo del empleado”
from EMPLEADO
where EMP_TITULO=(
select EMP_TITULO
FROM EMPLEADO
where
EMP_ID='20002')

or EMP_TITULO=(
select EMP_TITULO
FROM EMPLEADO
where
EMP_ID='20006')

20. Usando el comando SELECT SQL, visualice el nombre del departamento, el nombre
del empleado y su titulo de aquellos empleados cuyo salario sea mayor o igual al
promedio de los salarios del departamento donde trabaja.

 SOLUCION:
select DEP_NOM “Nombre del Departamento”,
EMP_NOM “Nombre del empleado”,EMP_TITULO “Titulo del empleado”
from EMPLEADO e1,DEPT
where DEPT.DEPTNO=e1.DEPTNO
and EMP_SAL >(
select AVG(EMP_SAL)----sueldo promedio por departamento
from EMPLEADO, DEPT
where e1.DEPTNO=DEPT.DEPTNO
group by DEP_NOM)

S-ar putea să vă placă și