Documente Academic
Documente Profesional
Documente Cultură
NOMBRE: ______________________________________________________________________________ Pregunta 1: Crear la siguiente tabla a travs de SQL considerando restricciones con nombre y actualizacin a nulo cuando sea necesario. Tanto el tipo de datos como el tamao debe definirlos adecuadamente. Considere adems que el Hab_Ciudad no puede ser 0 o menor, al igual que Km2. Tipo slo pude ser Urbana o Rural. (20 puntos) Nombre de la tabla: Ciudad
CREATE TABLE CIUDAD(COD_CIUDAD NUMBER(5), NOMBRE_CIUDAD VARCHAR2(25) NOT NULL, HAB_CIUDAD NUMBER(7) NOT NULL, KM2 NUMBER(4,2) NOT NULL, TIPO VARCHAR2(6) NOT NULL, HOMBRES NUMBER(7), MUJERES NUMBER(7), CONSTRAINT PKCIU PRIMARY KEY(COD_CIUDAD), CONSTRAINT CHKHCIU CHECK (HAB_CIUDAD > 0), CONSTRAINT CHKKMCIU CHECK (KM2 > 0), CONSTRAINT CHKTCIU CHECK (TIPO IN('Urbana','Rual'));
Pregunta 2: Cree una secuencia llamada Sec_Ciudad, para utilizarlo en el campo Cod_Ciudad de la tabla anterior. Iniciada e incrementada de acuerdo a los valores del campo indicado (ver tabla), no cclico y con un valor mximo de 9999. (5 puntos)
CREATE SEQUENCE SEC_CIUDAD START WITH 1001 INCREMENT BY 1 MAXVALUE 9999 NOCYCLE;
1 BASE DE DATOS / ORACLE 9I
INSTITUTO PROFESIONAL VIRGINIO GMEZ ESCUELA DE INFORMTICA Pregunta 3: Indique la sentencia SQL para insertar los dos primeros registros de la tabla anterior, considerando que se ejecutarn las dos inserciones al mismo tiempo. Para ello debe hacer uso de la secuencia creada en el punto anterior. (10 puntos)
INSERT INTO CIUDAD VALUES(SEC_CIUDAD.NEXTVAL,'LOS ANGELES',117972,27.35,'URBANA',56790,61182); INSERT INTO CIUDAD VALUES(SEC_CIUDAD.NEXTVAL,'Chilln',146701,33.41,'URBANA',NULL,NULL); otra forma: INSERT INTO CIUDAD(COD_CIUDAD, NOMBRE_CIUDAD, HAB_CIUDAD, KM2, TIPO, HOMBRES, MUJERES) VALUES(SEC_CIUDAD.NEXTVAL,'LOS ANGELES',117972,27.35,'URBANA',56790,61182); INSERT INTO CIUDAD(COD_CIUDAD, NOMBRE_CIUDAD, HAB_CIUDAD, KM2, TIPO, HOMBRES, MUJERES) VALUES(SEC_CIUDAD.NEXTVAL,'Chilln',146701,33.41,'URBANA',NULL,NULL); Otra forma para los Nulos. INSERT INTO CIUDAD(COD_CIUDAD, NOMBRE_CIUDAD, HAB_CIUDAD, KM2, TIPO) VALUES(SEC_CIUDAD.NEXTVAL,'Chilln',146701,33.41,'URBANA');
Pregunta 4: Dada la tabla anterior obtenga, por medio de SQL, los siguientes informes o listados a) Un listado de todas las ciudades con ms de cien mil habitantes, donde el nmero de mujeres sea mayor al de hombres. Debe mostrar el Nombre de la Ciudad en maysculas junto a su cdigo separados por el smbolo -, en una sola columna llamada Ciudad, adems debe mostrar el campo Hombres, Mujeres y la diferencia entre ellos (Mujeres Hombres) llamada Diferencia. Todo ordenado por Nombre de la Ciudad (10 puntos) SELECT UPPER(NOMBRE_CIUDAD)||'-'||COD_CIUDAD AS CIUDAD, HOMBRES, MUJERES, (MUJERES - HOMBRES) AS DIFERENCIA FROM CIUDAD WHERE HAB_CIUDAD > 100000 AND MUJERES > HOMBRES ORDER BY NOMBRE_CIUDAD
c) Indique el total de Km2 de las ciudades de Los ngeles y Chilln, considerando que usted no tiene certeza de si los datos estn escritos con maysculas o minsculas. (10 puntos)
SELECT SUM(KM2) FROM CIUDAD WHERE UPPER(NOMBRE_CIUDAD) = 'LOS ANGELES' OR UPPER(NOMBRE_CIUDAD) = 'CHILLAN'
d) Listado de todas las ciudades rurales, cuyos Km2 sean menor a 5. Debe mostrar el Nombre de la Ciudad en minsculas, cantidad de hombres y mujeres, en el caso de que existan valores nulos (en ambos casos) debe aparecer un cero. (15 puntos)
SELECT LOWER(NOMBRE_CIUDAD), NVL(HOMBRES,0), NVL(MUJERES,0) FROM CIUDAD WHERE TIPO = 'Rural' AND KM2 > 12
Pregunta 5: Dado el siguiente modelo, obtenga un listado de todos los buses cuya patente tenga menos de 6 caracteres, que pertenezcan al tramo Chilln y al Tramo Los ngeles, ordenados por marca. Debe mostrar: Patente, Nombre del Tramo y la Marca. (20 puntos)
SELECT NOMBRE, FEC_REV, OBSERVACION, PATENTE FROM REVISION R JOIN SUPERVISOR S ON R.COD_SUP = S.COD_SUP JOIN BUS B ON R.COD_BUS = B.COD_BUS WHERE LENGTH (PATENTE) < 6 AND NOMBRE = 'Chilln' OR NOMBRE = 'LOS ANGELES' ORDER BY MARCA