Sei sulla pagina 1di 21

LABORATORIO 12: CONSTRUCCIÓN DE MODELOS 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 base de datos que se acaba de crear, construya las siguientes tablas con
sus respectivos campos y tipos de datos,

Usar base de datos LaboratorioSQL

profesor

CREATE table "PROFESOR" (


"DOC_PROF(PK)" VARCHAR2(11),
"NOM_PROF" VARCHAR2(30),
"APE_PROF" VARCHAR2(30),
"CATE_PROF" INT,
"SAL_PROF" INT,
constraint "PROFESOR_PK" primary key ("DOC_PROF(PK)")
)
/

CREATE trigger "BI_PROFESOR"


before insert on "PROFESOR"
for each row
begin
if :NEW."DOC_PROF(PK)" is null then
select "PROFESOR_SEQ".nextval into :NEW."DOC_PROF(PK)" from dual;
end if;
end;
/

Creación Tabla Profesor

Creación tabla Curso


CURSO

CREATE table "CURSO" (


"COD_CURS(PK)" INT,
"NOM_CURS" VARCHAR2(100),
"HORAS_CUR" INT,
"VALOR_CUR" INT,
constraint "CURSO_PK" primary key ("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 into :NEW."COD_CURS(PK)" from dual;
end if;
end;
/

Creación tabla Estudiante

CREATE TABLE "ESTUDIANTE"


( "DOC_EST(PK)" VARCHAR2(11),
"NOM_EST" VARCHAR2(30),
"APE_EST" VARCHAR2(30),
"EDAD_EST" INT,
CONSTRAINT "ESTUDIANTE_PK" PRIMARY KEY ("DOC_EST(PK)") ENABLE
);

CREATE OR REPLACE TRIGGER "BI_ESTUDIANTE"


before insert on "ESTUDIANTE"
for each row
begin
if :NEW."DOC_EST(PK)" is null then
select "ESTUDIANTE_SEQ".nextval into :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" VARCHAR2(10),
constraint "CLIENTE_PK" primary key ("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 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)")
)
/

CREATE trigger "BI_ARTICULO"


before insert on "ARTICULO"
for each row
begin
if :NEW."ID_ART(PK)" is null then
select "ARTICULO_SEQ".nextval into :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)")
)
/

CREATE trigger "BI_PEDIDO"


before insert on "PEDIDO"
for each row
begin
if :NEW."ID_PED(PK)" is null then
select "PEDIDO_SEQ".nextval into :NEW."ID_PED(PK)" from dual;
end if;
end;
/
Creación tabla Articuloxpedido

CREATE table "ARTICULOXPEDIDO" (

"ID_PED_ARTPED(FK)" INT

"ID_ART_ARTPED(FK)" INT,

"CAN_ART_ARTPED" INT,

"VAL_VEN_ART_ARTPED" INT,

constraint "ARTICULOXPEDIDO_PK" primary key ("ID_PED_ARTPED(FK)")

CREATE trigger "BI_ARTICULOXPEDIDO"

before insert on "ARTICULOXPEDIDO"

for each row

begin

if :NEW."ID_PED_ARTPED(FK)" is null then

select "ARTICULOXPEDIDO_SEQ".nextval into :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" VARCHAR2(100),
constraint "COMPANIA_PK" primary key ("COMNIT")
)
/
CREATE trigger "BI_COMPANIA"
before insert on "COMPANIA"
for each row
begin
if :NEW."COMNIT" is null then
select "COMPAÑIA_SEQ".nextval into :NEW."COMNIT" from dual;
end if;
end;
/
Creación tabla Tipos Automotores

CREATE table "TIPOS_AUTOMOTORES" (


"AUTTIP(PK)" INT,
constraint "AUTOMOTORES_PK" primary key ("AUTTIP(PK)")
)
/

CREATE trigger "BI_AUTOMOTORES"


before insert on "AUTOMOTORES"
for each row
begin
if :NEW."AUTTIP(PK)" is null then
select "TIPOSAUTOMOTORES_SEQ".nextval into :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" primary key ("AUTOPLACA(PK)")
)
/

CREATE trigger "BI_AUTOMOTORES1"


before insert on "AUTOMOTORES1"
for each row
begin
if :NEW."AUTOPLACA(PK)" is null then
select "AUTOMOTORE_SEQ".nextval into :NEW."AUTOPLACA(PK)" from dual;
end if;
end;
/
Creación tabla Aseguramientos

" INT,
"ASEPLACA" VARCHAR2(0),
constraint "ASEGURAMIENTO_PK" primary key ("ASECODIGO_(PK)")
)
/

CREATE trigger "BI_ASEGURAMIENTO"


before insert on "ASEGURAMIENTO"
for each row
begin
if :NEW."ASECODIGO_(PK)" is null then
select "ASEGURAMIENTO_SEQ".nextval into :NEW."ASECODIGO_(PK)" from dual;
end if;
end;
/

Creación tabla incidentes

OSINVOLUCRADOS"INT,
constraint "INCIDENTES_PK" primary key ("INCIPLACA(VK)")
)
/

CREATE trigger "BI_INCIDENTES"


before insert on "INCIDENTES"
for each row
begin
if :NEW."INCIPLACA(VK)" is null then
select "INCIDENTE_SEQ".nextval into :NEW."INCIPLACA(VK)" from dual;
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:

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 menor sueldo:


Visualice los profesores cuyo sueldo este entre $500.000 y $700.000:

Visualizar el nombre, apellido y dirección de todos aquellos clientes que 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 cumplen años en marzo:


Visualizar los datos del pedido 1, incluyendo el nombre del cliente, la dirección, la dirección
del mismo, nombre y el valor de los artículos que tiene dicho pedido:

Visualizar el nombre del cliente, fecha y el valor del pedido más costoso:

Mostrar cuantos artículos se tienen en cada editorial:

Mostrar los pedidos con los respectivos artículos (código, nombre, valor y cantidad
pedida):
Visualizar todos los clientes organizados por apellidos:

Visualizar todos los artículos organizados por autor:

Visualizar los pedidos 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 los datos de las empresas fundadas entre el año 1991 y 1998:
Listar los datos de los automotores 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 el 30-09-2012, con su respectivo número de
póliza, fecha inicio de la póliza, valor asegurado y valor de la póliza:

Visualizar los datos de los incidentes que han tenido un herido, este reporte debe
visualizar la placa del automotor, los datos de póliza y su 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 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 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 automotores 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:

Potrebbero piacerti anche