LABOR LABORATO ATORIO RIO 12: 12: CON CONSTR STRUCC UCCII N DE MODE MODELO LOS S DE
BASE DE DATOS
SERVICIO NACIONAL DE APRENDIZAJE SENA
1. Cree una base de datos llamada Laboratoriosql. Creación Base de datos LaboratorioSQL
2. Ubicado en la l a base de datos que se acaba de crear, construy construya a las siguientes ta blas con sus respectivos campos y tipos de datos, Usar base de datos LaboratorioSQL
profesor CREATE table "PROFESOR" ( "DOC_PROF(PK)" "DOC_PROF(PK)" VARCHAR2(11), "NOM_PROF" VARCHAR2(30), "APE_PROF" VARCHAR2(30), "CATE_PROF" INT, "SAL_PROF" INT, constraint "PROFESOR_PK" "PROFESOR_PK" primary key ("DOC_PROF(PK)") ("DOC_PROF(PK)") ) / CREATE trigger "BI_PROFESOR" "BI_PROFESOR" before insert on "PROFESOR" for each row begin if :NEW."DOC_PROF(PK)" is null then select "PROFESOR_SEQ".nextval "PROFESOR_SEQ".nextval into in to :NEW."DOC_PROF(PK)" from dual; end if; end; /
Creación Tabla Profesor
Creación tabla Curso
CURSO CREATE table "CURSO" ( "COD_CURS(PK)" "COD_CURS(PK)" INT, "NOM_CURS" VARCHAR2(100), "HORAS_CUR" INT, "VALOR_CUR" INT, constraint "CURSO_PK" primary primary key ("COD_CURS(PK)" ("COD_CURS(PK)")) ) / CREATE trigger "BI_CURSO" before insert on "CURSO" for each row begin if :NEW."COD_CURS(PK)" is null then select "CURSO_SEQ".nextval "CURSO_SEQ".nextval into i nto :NEW."COD_CURS(PK)" from dual; end if; end; / Creación tabla Estudiante
CREATE TABLE "ESTUDIANTE" ( "DOC_EST(PK)" "DOC_EST(PK)" VARCHAR2(11), "NOM_EST" "NOM_EST" VARCHAR2(30), "APE_EST" VARCHAR2(30), "EDAD_EST" INT, CONSTRAINT "ESTUDIANTE_PK" PRIMARY KEY ("DOC_EST(PK)") ENABLE ); CREATE OR REPLACE REPLACE TRIGGER "BI_ESTUDIANTE" "BI_ESTUDIANTE" before insert on "ESTUDIANTE" for each row begin if :NEW."DOC_EST(PK)" :NEW."DOC_EST(PK)" is null then select "ESTUDIANTE_SEQ".nextval "ESTUDIANTE_SEQ".nextval into :NEW."DOC_EST(PK)" :NEW."DOC_EST(PK)" from dual; end if; end; --------------------------------------------
Creación tabla Cliente
-------------------------------------------------------------CREATE table "CLIENTE" ( "ID_CLI(PK)" VARCHAR2(11), "NOM_CLI" VARCHAR2(30), "APE_CLI" VARCHAR2(30), "DIR_CLI" VARCHAR2(100), "DEP_CLI" VARCHAR2(20), "MES_CUM_CLI" "MES_CUM_CLI" VARCHAR2(10), constraint "CLIENTE_PK" primary key ("ID_CLI(PK)") ("ID_CLI(PK)") ) / CREATE trigger "BI_CLIENTE" before insert on "CLIENTE" for each row begin if :NEW."ID_CLI(PK)" is null then select "CLIENTE_SEQ".nextval "CLIENTE_SEQ".nextval into :NEW."ID_CLI(PK)" from dual; end if; end; / Creación tabla Articulo
CREATE table "ARTICULO" ( "ID_ART(PK)"INT, "TIT_ART" VARCHAR2(100), "AUT_ART" VARCHAR2(100), "EDI_ART" VARCHAR2(300), "PREC_ART" INT, constraint "ARTICULO_PK" primary key ("ID_ART(PK)") ("ID_ART(PK)") ) / CREATE trigger "BI_ARTICULO" before insert on "ARTICULO" for each row begin if :NEW."ID_ART(PK)" is null then select "ARTICULO_SEQ".nextval "ARTICULO_SEQ".nextval into :NEW."ID_ART(PK)" :NEW."ID_ART(PK)" from dual; end if; end; /
Creación tabla Pedido
CREATE table "PEDIDO" ( "ID_PED(PK)" INT, "ID_CLI_(PK)" VARCHAR2(11), "FEC_PED" DATE, "VAL_PED" INT, constraint "PEDIDO_PK" primary key ("ID_PED(PK)") ("ID_PED(PK)") ) / CREATE trigger "BI_PEDIDO" before insert on "PEDIDO" for each row begin if :NEW."ID_PED(PK)" is null then select "PEDIDO_SEQ".nextval "PEDIDO_SEQ".nextval into :NEW."ID_PED(PK)" :NEW."ID_PED(PK)" from dual; end if; end; /
Creación tabla Articuloxpedido
CREATE table "ARTICULOXPEDIDO" "ARTICULOXPEDIDO" ( "ID_PED_ARTPED(FK)" INT "ID_ART_ARTPED(FK)" INT, "CAN_ART_ARTPED"
INT,
"VAL_VEN_ART_ARTPED" "VAL_VEN_ART_ARTPED" INT, constraint "ARTICULOXPEDIDO_PK" "ARTICULOXPEDIDO_PK" primary key ("ID_PED_ARTPED ("ID_PED_ARTPED(FK)") (FK)") ) /
CREATE trigger "BI_ARTICULOXPEDIDO" "BI_ARTICULOXPEDIDO" before insert on "ARTICULOXPEDIDO" for each row begin if :NEW."ID_PED_ARTPED(FK)" :NEW."ID_PED_ARTPED(FK)" is null then select "ARTICULOXPEDIDO_SEQ".nextval "ARTICULOXPEDIDO_SEQ".nextval into :NEW."ID_PED_ARTPED(FK)" :NEW."ID_PED_ARTPED(FK)" from dual; end if; end; / Creación tabla Compañía
CREATE table "COMPANIA" ( "COMNIT" VARCHAR2(11), "COMNOMBRE" VARCHAR2(30), "COMAÑOFUN" INT, "COMREPLEGAL" "COMREPLEGAL" VARCHAR2(100), constraint "COMPANIA_PK" "COMPANIA_PK" primary key ("COMNIT") ("COMNIT") ) /
CREATE trigger "BI_COMPANIA" "BI_COMPANIA" before insert on "COMPANIA" "COMPANIA" for each row begin if :NEW."COMNIT" is null then select "COMPAÑIA_SEQ".nextval "COMPAÑIA_SEQ".nextval into :NEW."COMNIT" :NEW."COMNIT" from dual; end if; end; / Creación tabla Tipos Automotores
CREATE table "TIPOS_AUTOMOTORES" "TIPOS_AUTOMOTORES" ( "AUTTIP(PK)" INT, constraint "AUTOMOTORES_PK" "AUTOMOTORES_PK" primary key ("AUTTIP(PK)") ("AUTTIP(PK)") ) / CREATE trigger "BI_AUTOMOTORES" "BI_AUTOMOTORES" before insert on "AUTOMOTORES" for each row begin if :NEW."AUTTIP(PK)" is null then select "TIPOSAUTOMOTORES_SEQ".nextval "TIPOSAUTOMOTORES_SEQ".nextval into :NEW."AUTTIP(PK)" :NEW."AUTTIP(PK)" from dual; end if; end; / Creación tabla Automotores
CREATE table "AUTOMOTORES1" ( "AUTOPLACA(PK)" VARCHAR2(6), "AUTOMARCA" VARCHAR2(30), "AUTOTIPO(FK)" INT, "AUTOMODELO" INT, "AUTONUMPASAJEROS"INT, "AUTOCILINDRAJE" INT, "AUTNUMCHASIS" VARCHAR2(20), constraint "AUTOMOTORES1_PK" "AUTOMOTORES1_PK" primary key ("AUTOPLACA(PK ("AUTOPLACA(PK)") )") ) / CREATE trigger "BI_AUTOMOTORES1" "BI_AUTOMOTORES1" before insert on "AUTOMOTORES1" "AUTOMOTORES1" for each row begin if :NEW."AUTOPLACA(PK)" :NEW."AUTOPLACA(PK)" is null then select "AUTOMOTORE_SEQ".nextval "AUTOMOTORE_SEQ".nextval into :NEW."AUTOPLACA(PK)" :NEW."AUTOPLACA(PK)" from dual; end if;
end; /
Creación tabla Aseguramientos
"
INT, "ASEPLACA" VARCHAR2(0), constraint "ASEGURAMIENTO_PK" "ASEGURAMIENTO_PK" primary key ("ASECODIGO_(PK)" ("ASECODIGO_(PK)"))
) / CREATE trigger "BI_ASEGURAMIENTO" "BI_ASEGURAMIENTO" before insert on "ASEGURAMIENTO" "ASEGURAMIENTO" for each row begin if :NEW."ASECODIGO_(PK)" :NEW."ASECODIGO_(PK)" is null nul l then select "ASEGURAMIENTO_SEQ".nextval "ASEGURAMIENTO_SEQ".nextval into :NEW."ASECODIGO_(PK)" :NEW."ASECODIGO_(PK)" from dual; end if; end; / Creación tabla incidentes
OSINVOLUCRADOS"INT, constraint "INCIDENTES_PK" "INCIDENTES_PK" primary key ("INCIPLACA(VK)" ("INCIPLACA(VK)")) ) / CREATE trigger "BI_INCIDENTES" "BI_INCIDENTES" before insert on "INCIDENTES" for each row begin if :NEW."INCIPLACA(VK)" is null then select "INCIDENTE_SEQ".nextval "INCIDENTE_SEQ".nextval into :NEW."INCIPLACA(VK)" :NEW."INCIPLACA(VK)" from dual; d ual; end if; end; /
3. Inserte los siguientes registros según las tablas que se presentan:
Tabla Profesor:
Tabla Curso:
Tabla Estudiante:
Tabla Cliente:
Tabla Artículo:
Tabla Pedido:
Tabla Articuloxpedido
Tabla Compañía:
Tabla TiposAutomotores:
Tabla Automotores:
Tabla Aseguramientos:
Tabla Incidentes:
4. Realice las siguientes consultas:
Salarios profesores ordenados por categorías categorías::
Mostrar valor cursos mayores a 500 mil:
Mostrar estudiantes mayores de 22 años:
Muestre el nombre y la edad del estudiante más joven:
Calcule el valor promedio de los cursos cuyas horas sean mayores a 40:
Obtener el sueldo promedio de los profesores de la categoría 1:
Muestre todos o l s campos de la tabla curso en orden ascendente según el valor:
Muestre el nombre del profesor con con menor sueldo:
Visualice los profesores cuyo sueldo este entre $500.000 y $700.000:
Visualizar el nombre, apellido y dirección de todos aquellos cliente clientess que hayan hayan realizado un pedido el día 2012-02-25:
Listar todos los pedidos realizados incluyendo el nombre del artículo:
Visualizar los clientes que cumple cumplen n años en marzo:
Visualizar los datos del pedido 1, incluy incluyend endo o el nombre del cliente, la dirección, la dirección del mismo, nombre y el valor de de los artículos que tiene dicho pedido:
Visualizar el nombre del cliente, fech fecha a y el valor del pedido más costoso:
Mostrar cuantos artículos se tienen en cada editorial:
Mostrar los los pedidos pedid os con los respectivos re spectivos artículo artículoss (código, nombre, valor valor y cantidad cantid ad pedida):
Visualizar todos los clientes organizados por apellidos: apell idos:
Visualizar todos los artículos organizados por autor:
Visualizar Vi sualizar los os pedidos pedid os que se han realizado para el artc í ulo con id 2, el listado debe mostrar el nombre y dirección del cliente, el respectivo número de pedido y la cantidad solicitada:
Visualizar Visuali zar los los datos de las empresas fundadas entre el año 1991 199 1 y 1998:
Listar los datos de los automotores cuya cuya póliza expira en octubre de 2013, este reportes debe visualizar la placa, el modelo, la marca, número de pasajeros, cilindraje, nombre de automotor, el valor de la póliza y el valor asegurado:
Visualizar los datos de los incidentes ocurridos ocurridos el 30-09-2012, 30-09-20 12, con su respectivo número núme ro de póliza, fecha inicio de la póliza, valor asegurado asegurado y valor de la póliza:
Visualizar Vi sualizar los datos da tos de los incidentes incident es que han an tenido un herido, este reporte debe visualizar la placa del automotor, los datos de póliza y su respectiva respectiva fecha de inicio, valor, estado y valor asegurado
Visualizar todos los datos de la póliza mas costosa:
Visualizar los incidentes con el menor número de autos involucrados, de este incidente mostrar el estado de la póliza y el valor asegurado:
Visualizar los incidentes del vehículo con placas “FLL420”, este reporte debe visualizar la fecha, el lugar, la cantidad de heridos, la fecha de inicio y expiración de la póliza y el valor asegurado.
Visualizar Visualizar los datos de la empresa con el Nit 89999999-5:
Visualizar los datos de la póliza cuyo valor asegurado es el más costoso, este este reporte además de visualizar todos los datos de la poliza, debe mostrar todos los datos del vehiculo que tiene dicha poliza.
Visualizar los datos de las pólizas de los los automoto automotores res tipo 1, este reporte debe incluir placa, marca, modelo, cilindraje del vehículo junto con la fecha de inicio y expiración y estado de la póliza: