SlideShare una empresa de Scribd logo
1 de 12
NOMBRE: IVAN QUISPE CHOQUE FECHA26/11/01 
CI: 6034249 
PRACTICA DE SQL 
1. Alterar la tabla personas cambiando el nombre de las siguientes columnas: 
DEPARTAMENTO=ID_PEDARTAMENTO 
SEXO=ID_SEXO 
EST_CIV=ID_EST_CI 
R. ALTER TABLE PERSONA RENAME COLUMN DEPARTAMENTO TO ID_DEPARTAMENTO 
ALTER TABLE PERSONA RENAME COLUMN SEXO TO ID_SEXO 
ALTER TABLE PERSONA RENAME COLUMN EST_CIV TO ID_EST_CIV 
2. Alterar la tabla estudiante y docente cambiando el nombre de las siguientes columnas 
periodo=id_periodo 
tipo_admision=id_tipo_admision 
ALTER TABLE ESTUDIANTE RENAME COLUMN PERIODO TO ID_PERIDO 
ALTER TABLE ESTUDIANTE RENAME COLUMN TIPO_ADMISION TO ID_TIPO_ADMISION
3. Completar la base de datos bdacademico con las sigueintes tablas, las mismas que estan re lacionadas con la 
tabla persona y la primera columna de cada tabla es llave primaria. 
CREATE TABLE sexo 
( 
id_sexo character varying(2) NOT NULL, 
sexo character varying(20), 
CONSTRAINT sexo_pkey PRIMARY KEY (id_sexo ) 
) 
CREATE TABLE est_civil 
( 
id_est_civil character varying(2) NOT NULL, 
est_civil character varying(20), 
CONSTRAINT est_civil_pkey PRIMARY KEY (id_est_civil ) 
) 
CREATE TABLE periodo 
( 
id_periodo character varying(2) NOT NULL, 
periodo character varying(50), 
CONSTRAINT periodo_pkey PRIMARY KEY (id_periodo )
) 
CREATE TABLE tipo_admision 
( 
id_tipo_admision character varying(2) NOT NULL, 
tipo_admision character varying(50), 
CONSTRAINT tipo_admision_pkey PRIMARY KEY (id_tipo_admision ) 
) 
4. Mostrar los datos personales incluyendo el departamento de procedencia, sexo y estado civil 
SELECT P.NOMBRES, P.PATERNO, P.MATERNO,P.CI, P.NACIONALIDAD,P.LUG_NAC, D.DEPARTAMENTO, 
S.SEXO,E.EST_CIVIL 
FROM PERSONAS P, DEPARTAMENTO D, SEXO S, EST_CIVIL E 
WHERE P.ID_DEPARTAMENTO=D. ID_DEPARTAMENTO AND S.ID_SEXO=P.ID_SEXO AND 
P.ID_EST_CIV=E.ID_EST_CIVIL 
5. Mostrar los datos personales de las personas incluyendo el departamento de procedencia, sexo y el estado 
civil, ordenados por apellidos 
SELECT P.PATERNO,P.NOMBRES, P.MATERNO,P.CI, P.NACIONALIDAD,P.LUG_NAC, D.DEPARTAMENTO, 
S.SEXO,E.EST_CIVIL 
FROM PERSONAS P, DEPARTAMENTO D, SEXO S, EST_CIVIL E 
WHERE P.ID_DEPARTAMENTO=D. ID_DEPARTAMENTO AND S.ID_SEXO=P.ID_SEXO AND 
P.ID_EST_CIV=E.ID_EST_CIVIL 
ORDER BY P.PATERNO
6. Realizar un listado de los datos personales que contengan la palabra 'CARLA' en su nombre 
SELECT * 
FROM PERSONAS 
WHERE NOMBRES LIKE '%JUAN %' 
7. Listar todas las personas cuyo nombre empieza con 'd' 
SELECT * 
FROM PERSONAS 
WHERE NOMBRES LIKE 'd%'
8. Listar todas las personas cuyo nombre no empieza con 'd' 
SELECT * 
FROM PERSONAS 
WHERE NOMBRES NOT LIKE 'D%' 
9. Listar todas las personas que hayan nacio el año 1986 
SELECT * 
FROM PERSONAS 
WHERE EXTRACT(YEAR FROM FEC_NAC)='1986'
10. Mostrar todas las personas que hayan nacido en el mes de enero 
SELECT * 
FROM PERSONAS 
WHERE EXTRACT(MONTH FROM FEC_NAC)='01' 
11. Mostrar todas las personas que hayan nacido en el mes de enero de 1985 
SELECT * 
FROM PERSONAS 
WHERE EXTRACT(MONTH FROM FEC_NAC)='01' AND EXTRACT(YEAR FROM FEC_NAC)='1986' 
me dara vacio pues no tengo esas coincidencia 
SELECT * 
FROM PERSONAS
WHERE EXTRACT(MONTH FROM FEC_NAC)='01' AND EXTRACT(YEAR FROM FEC_NAC)='1987' 
12. Listar las personas que hayan nacido en el mes de enero y agosto de 1985 
select * 
from PERSONAS 
where EXTRACT(MONTH FROM FEC_NAC)>'01' and EXTRACT(MONTH FROM FEC_NAC)<'08'; 
and extract (year from fec_nac)=1985 
select * 
from PERSONAS 
where EXTRACT(MONTH FROM FEC_NAC)>'01' and EXTRACT(MONTH FROM FEC_NAC)<'08' and extract (year 
from fec_nac)='1987'
13. Cual es la nota maxima 
SELECT MAX(NOTA) 
FROM NOTAS 
14. Cual es la nota maxima y minima 
SELECT MAX(NOTA) NOTA_MAX, MIN(NOTA) NOTA_MIN 
FROM NOTAS 
15. Mostrar el promedio de todas las notas obtenidas 
SELECT AVG(NOTA) 
FROM NOTAS
16. Mostrar el promedio de todas las notas obtenidas solo de los aprobados 
SELECT AVG(NOTA) 
FROM NOTAS 
WHERE NOTA>51 
17. Mostrar todas las notas de los estudiantes cuya nota esta vacia 
SELECT * 
FROM NOTAS 
WHERE NOTA IS NULL 
18. Mostrar todas las notas de los estudiantes cuya nota no sea nula 
SELECT * 
FROM NOTAS 
WHERE NOTA IS NOT NULL
19. Mostrar un reporte de estudiantes y sus notas con la sigla y el nombre de la materia respectiva 
SELECT P.PATERNO, P.MATERNO, P.NOMBRES, N.NOTA, PE.SIGLA, PE.DESCRIPCION 
FROM PERSONAS P, ESTUDIANTE E, NOTAS N, PENSUM PE 
WHERE P.ID_PERSONA=E.ID_PERSONA AND E.ID_EST=N.ID_EST AND PE.ID_MATERIA=N.ID_MATERIA 
20. Mostrar las notas de estudiantes aprobados incluyendo la materia y el plan 
SELECT PER.PATERNO, PER.MATERNO, PER.NOMBRES,N.NOTA, PE.DESCRIPCION, PE.DESCRIPCION, 
PA.PLAN_ACAD, PA.OBS 
FROM NOTAS N, PENSUM PE,PLAN_ACAD PA, ESTUDIANTE E, PERSONAS PER 
WHERE N.NOTA>51 AND PE.ID_MATERIA=N.ID_MATERIA AND PE.ID_PLAN =PA.ID_PLAN AND 
E.ID_EST=N.ID_EST AND PER.ID_PERSONA=E.ID_PERSONA
21. Mostrar las personas que son estudiantes y cuantas materias han aprobado a la fecha 
SELECT P.ID_PERSONA, P.NOMBRES, P.PATERNO, COUNT(P.ID_PERSONA) 
FROM PERSONAS P, ESTUDIANTE E, NOTAS N 
WHERE P.ID_PERSONA=E.ID_PERSONA AND E.ID_EST=N.ID_EST AND N.NOTA>50 
GROUP BY P.ID_PERSONA 
22. Listar los estudiantes agrupados por carrera ordenados solo de los aprobados 
23. Mostrar las cantidades de notas de todos los estudiantes ordenados descendentemente 
SELECT P.ID_PERSONA, P.NOMBRES, P.PATERNO, COUNT(P.ID_PERSONA) 
FROM PERSONAS P, ESTUDIANTE E, NOTAS N 
WHERE P.ID_PERSONA=E.ID_PERSONA AND E.ID_EST=N.ID_EST 
GROUP BY P.ID_PERSONA
ORDER BY P.PATERNO

Más contenido relacionado

Similar a Practica sql (16)

Bd2 ejer02 joins y funciones_solucion
Bd2 ejer02 joins y funciones_solucionBd2 ejer02 joins y funciones_solucion
Bd2 ejer02 joins y funciones_solucion
 
Consultas2
Consultas2Consultas2
Consultas2
 
Primer Informe sistemas
Primer Informe sistemasPrimer Informe sistemas
Primer Informe sistemas
 
Dokumen.site ejercicios resueltos-sqlpdf
Dokumen.site ejercicios resueltos-sqlpdfDokumen.site ejercicios resueltos-sqlpdf
Dokumen.site ejercicios resueltos-sqlpdf
 
Proyecto 3er. parcial (navicat) (1)
Proyecto 3er. parcial (navicat) (1)Proyecto 3er. parcial (navicat) (1)
Proyecto 3er. parcial (navicat) (1)
 
Tarea 1
Tarea 1Tarea 1
Tarea 1
 
Practica
PracticaPractica
Practica
 
Tarea sia 30-04-12
Tarea sia 30-04-12Tarea sia 30-04-12
Tarea sia 30-04-12
 
Tarea sia 30-04-12
Tarea sia 30-04-12Tarea sia 30-04-12
Tarea sia 30-04-12
 
Proyecto BD parcial 3 ♥ ISSA ♥ VELEZ♥ MORALES
Proyecto BD parcial 3 ♥ ISSA ♥ VELEZ♥ MORALESProyecto BD parcial 3 ♥ ISSA ♥ VELEZ♥ MORALES
Proyecto BD parcial 3 ♥ ISSA ♥ VELEZ♥ MORALES
 
Laboratorio Nº 2 SIA
Laboratorio Nº 2 SIALaboratorio Nº 2 SIA
Laboratorio Nº 2 SIA
 
Laboratorio N° 2
Laboratorio N° 2Laboratorio N° 2
Laboratorio N° 2
 
Laboratorio n 2 (1)
Laboratorio n 2 (1)Laboratorio n 2 (1)
Laboratorio n 2 (1)
 
Ayudantia 2 sia
Ayudantia 2 siaAyudantia 2 sia
Ayudantia 2 sia
 
Ayudantia 2 sia
Ayudantia 2 siaAyudantia 2 sia
Ayudantia 2 sia
 
PLSQL
PLSQLPLSQL
PLSQL
 

Practica sql

  • 1. NOMBRE: IVAN QUISPE CHOQUE FECHA26/11/01 CI: 6034249 PRACTICA DE SQL 1. Alterar la tabla personas cambiando el nombre de las siguientes columnas: DEPARTAMENTO=ID_PEDARTAMENTO SEXO=ID_SEXO EST_CIV=ID_EST_CI R. ALTER TABLE PERSONA RENAME COLUMN DEPARTAMENTO TO ID_DEPARTAMENTO ALTER TABLE PERSONA RENAME COLUMN SEXO TO ID_SEXO ALTER TABLE PERSONA RENAME COLUMN EST_CIV TO ID_EST_CIV 2. Alterar la tabla estudiante y docente cambiando el nombre de las siguientes columnas periodo=id_periodo tipo_admision=id_tipo_admision ALTER TABLE ESTUDIANTE RENAME COLUMN PERIODO TO ID_PERIDO ALTER TABLE ESTUDIANTE RENAME COLUMN TIPO_ADMISION TO ID_TIPO_ADMISION
  • 2. 3. Completar la base de datos bdacademico con las sigueintes tablas, las mismas que estan re lacionadas con la tabla persona y la primera columna de cada tabla es llave primaria. CREATE TABLE sexo ( id_sexo character varying(2) NOT NULL, sexo character varying(20), CONSTRAINT sexo_pkey PRIMARY KEY (id_sexo ) ) CREATE TABLE est_civil ( id_est_civil character varying(2) NOT NULL, est_civil character varying(20), CONSTRAINT est_civil_pkey PRIMARY KEY (id_est_civil ) ) CREATE TABLE periodo ( id_periodo character varying(2) NOT NULL, periodo character varying(50), CONSTRAINT periodo_pkey PRIMARY KEY (id_periodo )
  • 3. ) CREATE TABLE tipo_admision ( id_tipo_admision character varying(2) NOT NULL, tipo_admision character varying(50), CONSTRAINT tipo_admision_pkey PRIMARY KEY (id_tipo_admision ) ) 4. Mostrar los datos personales incluyendo el departamento de procedencia, sexo y estado civil SELECT P.NOMBRES, P.PATERNO, P.MATERNO,P.CI, P.NACIONALIDAD,P.LUG_NAC, D.DEPARTAMENTO, S.SEXO,E.EST_CIVIL FROM PERSONAS P, DEPARTAMENTO D, SEXO S, EST_CIVIL E WHERE P.ID_DEPARTAMENTO=D. ID_DEPARTAMENTO AND S.ID_SEXO=P.ID_SEXO AND P.ID_EST_CIV=E.ID_EST_CIVIL 5. Mostrar los datos personales de las personas incluyendo el departamento de procedencia, sexo y el estado civil, ordenados por apellidos SELECT P.PATERNO,P.NOMBRES, P.MATERNO,P.CI, P.NACIONALIDAD,P.LUG_NAC, D.DEPARTAMENTO, S.SEXO,E.EST_CIVIL FROM PERSONAS P, DEPARTAMENTO D, SEXO S, EST_CIVIL E WHERE P.ID_DEPARTAMENTO=D. ID_DEPARTAMENTO AND S.ID_SEXO=P.ID_SEXO AND P.ID_EST_CIV=E.ID_EST_CIVIL ORDER BY P.PATERNO
  • 4. 6. Realizar un listado de los datos personales que contengan la palabra 'CARLA' en su nombre SELECT * FROM PERSONAS WHERE NOMBRES LIKE '%JUAN %' 7. Listar todas las personas cuyo nombre empieza con 'd' SELECT * FROM PERSONAS WHERE NOMBRES LIKE 'd%'
  • 5. 8. Listar todas las personas cuyo nombre no empieza con 'd' SELECT * FROM PERSONAS WHERE NOMBRES NOT LIKE 'D%' 9. Listar todas las personas que hayan nacio el año 1986 SELECT * FROM PERSONAS WHERE EXTRACT(YEAR FROM FEC_NAC)='1986'
  • 6. 10. Mostrar todas las personas que hayan nacido en el mes de enero SELECT * FROM PERSONAS WHERE EXTRACT(MONTH FROM FEC_NAC)='01' 11. Mostrar todas las personas que hayan nacido en el mes de enero de 1985 SELECT * FROM PERSONAS WHERE EXTRACT(MONTH FROM FEC_NAC)='01' AND EXTRACT(YEAR FROM FEC_NAC)='1986' me dara vacio pues no tengo esas coincidencia SELECT * FROM PERSONAS
  • 7. WHERE EXTRACT(MONTH FROM FEC_NAC)='01' AND EXTRACT(YEAR FROM FEC_NAC)='1987' 12. Listar las personas que hayan nacido en el mes de enero y agosto de 1985 select * from PERSONAS where EXTRACT(MONTH FROM FEC_NAC)>'01' and EXTRACT(MONTH FROM FEC_NAC)<'08'; and extract (year from fec_nac)=1985 select * from PERSONAS where EXTRACT(MONTH FROM FEC_NAC)>'01' and EXTRACT(MONTH FROM FEC_NAC)<'08' and extract (year from fec_nac)='1987'
  • 8. 13. Cual es la nota maxima SELECT MAX(NOTA) FROM NOTAS 14. Cual es la nota maxima y minima SELECT MAX(NOTA) NOTA_MAX, MIN(NOTA) NOTA_MIN FROM NOTAS 15. Mostrar el promedio de todas las notas obtenidas SELECT AVG(NOTA) FROM NOTAS
  • 9. 16. Mostrar el promedio de todas las notas obtenidas solo de los aprobados SELECT AVG(NOTA) FROM NOTAS WHERE NOTA>51 17. Mostrar todas las notas de los estudiantes cuya nota esta vacia SELECT * FROM NOTAS WHERE NOTA IS NULL 18. Mostrar todas las notas de los estudiantes cuya nota no sea nula SELECT * FROM NOTAS WHERE NOTA IS NOT NULL
  • 10. 19. Mostrar un reporte de estudiantes y sus notas con la sigla y el nombre de la materia respectiva SELECT P.PATERNO, P.MATERNO, P.NOMBRES, N.NOTA, PE.SIGLA, PE.DESCRIPCION FROM PERSONAS P, ESTUDIANTE E, NOTAS N, PENSUM PE WHERE P.ID_PERSONA=E.ID_PERSONA AND E.ID_EST=N.ID_EST AND PE.ID_MATERIA=N.ID_MATERIA 20. Mostrar las notas de estudiantes aprobados incluyendo la materia y el plan SELECT PER.PATERNO, PER.MATERNO, PER.NOMBRES,N.NOTA, PE.DESCRIPCION, PE.DESCRIPCION, PA.PLAN_ACAD, PA.OBS FROM NOTAS N, PENSUM PE,PLAN_ACAD PA, ESTUDIANTE E, PERSONAS PER WHERE N.NOTA>51 AND PE.ID_MATERIA=N.ID_MATERIA AND PE.ID_PLAN =PA.ID_PLAN AND E.ID_EST=N.ID_EST AND PER.ID_PERSONA=E.ID_PERSONA
  • 11. 21. Mostrar las personas que son estudiantes y cuantas materias han aprobado a la fecha SELECT P.ID_PERSONA, P.NOMBRES, P.PATERNO, COUNT(P.ID_PERSONA) FROM PERSONAS P, ESTUDIANTE E, NOTAS N WHERE P.ID_PERSONA=E.ID_PERSONA AND E.ID_EST=N.ID_EST AND N.NOTA>50 GROUP BY P.ID_PERSONA 22. Listar los estudiantes agrupados por carrera ordenados solo de los aprobados 23. Mostrar las cantidades de notas de todos los estudiantes ordenados descendentemente SELECT P.ID_PERSONA, P.NOMBRES, P.PATERNO, COUNT(P.ID_PERSONA) FROM PERSONAS P, ESTUDIANTE E, NOTAS N WHERE P.ID_PERSONA=E.ID_PERSONA AND E.ID_EST=N.ID_EST GROUP BY P.ID_PERSONA