lunes, 7 de enero de 2008

Practica

--Correr el script y desarrollar las siguientes consultas
-- 1.-Listado de alumnos que viven en el distrito '03' y sean varones
-- 2.-Listado de alumnas mujeres que deben mas de 500 soles
-- 3.-Listado de alumnos varones cuyo promedio de deuda sea mas de 400
-- 4.-Listado de alumnos que viven en el distrito '04' y que deben mas de 500 soles
-- 5.-Listado de alumnos indicando los apellidos y nombres y el promedio de deuda
-- 6.-Listado de alumnos ordenados por deuda total
-- 7.-Listado de alumnos cuyo apellido paterno inicia con 'CA'
-- 8.-Listado de alumnos en cuyo apellido exista 'RR'
-- 9.-Listado de alumnos que viven en el distrito '02', '04' y '05'
--10.-Listado de alumnos cuya deuda1 este entre 200 y 500, deuda2 entre 100 y 1000, deuda3 entre 400 y 800



CREATE TABLE distrito(
iddistrito CHAR(2) PRIMARY KEY,
distrito VARCHAR(30));

INSERT INTO distrito values('01','Lima');
INSERT INTO distrito values('02','Ate');
INSERT INTO distrito values('03','Breña');
INSERT INTO distrito values('04','Comas');
INSERT INTO distrito values('05','Los Olivos');
INSERT INTO distrito values('06','Surquillo');
INSERT INTO distrito values('07','Miraflores');
INSERT INTO distrito values('08','Jesus Maria');

CREATE TABLE alumno(
idalumno char(5) PRIMARY KEY,
paterno varchar(30),
materno varchar(30),
nombre varchar(30),
sexo char(1),
fnac datetime,
deuda1 numeric,
deuda2 numeric,
deuda3 numeric,
iddistrito char(2) REFERENCES distrito
);
INSERT INTO alumno values('10001','SOTO','QUISPE','CESAR','M','20080315',200,800,600,'02');
INSERT INTO alumno values('10002','ROJAS','QUINO','DIANA','F','20080315',1500,200,650,'01');
INSERT INTO alumno values('10003','ALVA','ROJAS','ERIKA','F','20080315',250,300,620,'03');
INSERT INTO alumno values('10004','MEDINA','CASTILLO','KARINA','F','20080315',1250,800,600,'04');
INSERT INTO alumno values('10005','LOSA','CARRILLO','ROGELIO','M','20080315',20,80,620,'05');
INSERT INTO alumno values('10006','SOTELO','MEDINA','FELIPE','M','20080315',1200,800,320,'03');
INSERT INTO alumno values('10007','GARCIA','QUIÑONES','RICHARD','M','20080315',1200,820,210,'02');
INSERT INTO alumno values('10008','CASTRO','ROJAS','LUIS','M','20080315',1280,800,320,'01');
INSERT INTO alumno values('10009','LUCA','BUENO','PEDRO','M','20080315',220,500,240,'03');
INSERT INTO alumno values('10010','CARDENAS','GUERRA','LUIS','M','20080315',125,840,680,'02');
INSERT INTO alumno values('10011','CASTRO','LUCAS','MARIA','F','20080315',100,820,460,'01');
INSERT INTO alumno values('10012','BULEJE','CASTRO','ANA','F','20080315',204,320,360,'07');
INSERT INTO alumno values('10013','LOPEZ','MARTOS','JUAN','M','20080315',216,840,600,'06');

--EJEMPLOS
--1 Listado de alumnos que viven en el distrito '03'
SELECT * FROM alumno WHERE iddistrito='03'
--2 Listado de alumnas mujeres
SELECT * FROM alumno WHERE sexo='F'
--3 Listado de alumnos varones que viven en el distrito '02'
SELECT * FROM alumno WHERE sexo= 'M' and iddistrito='02'
--4 Listado de alumnos cuya deuda1 este entre 100 y 500
select * from alumno where deuda1>100 and deuda1<500
--5 Listado de alumnos mostrando los apellidos, nombres y la deuda total
select paterno,materno,nombre,deuda1+deuda2+deuda3 as total from alumno
--6 Listado de alumnos ordenados alfabeticamente por sexo
select * from alumno ORDER BY sexo,paterno,materno,nombre
--7 Listado de alumnos cuyo nombre inicia con 'L'
select * from alumno where nombre LIKE 'L%'
--8.-Listado de alumnos que viven en el distrito '01' y '02'
select * from alumno where iddistrito='01' or iddistrito='02'

1 comentario:

Alex dijo...

BUENAS NOCHES PROFESOR .PODRIA DECIRME CUAL ES EL SCRIPT PARA MOSTRAR CAMPOS DE VARIAS TABLAS...?
ejemplo:
comparo un campo con otro id de otra tabla y necesito coger la descripcion de la otra tabla..
table1=sexo 1(hombre) 2(mujer)
table2=codigo1 (hombre) 2(mujer)...

seria asi..?
Select upper(concat .......

referencia: parcial del 14/01/08 pregunta 10 de su blog

Espero su pronta respuesta.