practica sql

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

Upload: ivan-quispe

Post on 17-Jul-2015

135 views

Category:

Software


1 download

TRANSCRIPT

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