Está en la página 1de 2

create table INICIALES_ESTUDIANTE(

ID_ESTUDIANTE INT PRIMARY KEY,


NOMBRE VARCHAR2(30),
AP_PATERNO VARCHAR2(30),
AP_MATERNO VARCHAR2(30));
SELECT * FROM INICIALES_ESTUDIANTE;

create table INICIALES_CURSA(


ID_CURSA INT,
ID_ESTUDIANTE INT, FOREIGN KEY (ID_ESTUDIANTE) REFERENCES
INICIALES_ESTUDIANTE (ID_ESTUDIANTE),
ID_MATERIA INT,FOREIGN KEY (ID_MATERIA) REFERENCES
INICIALES_MATERIA (ID_MATERIA));
SELECT * FROM INICIALES_CURSA;

create table INICIALES_MATERIA(


ID_MATERIA INT PRIMARY KEY,
NOMBRE VARCHAR2(30));
SELECT * FROM INICIALES_MATERIA;

CREATE SEQUENCE SEQ_ESTUDIANTE INCREMENT BY 10 START WITH 10;

INSERT INTO INICIALES_ESTUDIANTE VALUES(SEQ_ESTUDIANTE.NEXTVAL,


'JUAN','PEREZ','GOMEZ');
INSERT INTO INICIALES_ESTUDIANTE VALUES(SEQ_ESTUDIANTE.NEXTVAL,
'MARIA','SUAREZ','VILLCA');
INSERT INTO INICIALES_ESTUDIANTE VALUES(SEQ_ESTUDIANTE.NEXTVAL,
'JOSUE','CABALLERO','SANCHEZ');
INSERT INTO INICIALES_ESTUDIANTE VALUES(SEQ_ESTUDIANTE.NEXTVAL,
'MARCOS',' ','QUISBERT');
INSERT INTO INICIALES_ESTUDIANTE VALUES(SEQ_ESTUDIANTE.NEXTVAL,
'SUSANA','RAMIREZ','HUALLPARA');
TRUNCATE TABLE INICIALES_ESTUDIANTE;
DROP SEQUENCE SEQ_CURSA;
DELETE FROM INICIALES_CURSA;

CREATE SEQUENCE SEQ_MATERIA INCREMENT BY 10 START WITH 100;

INSERT INTO INICIALES_MATERIA VALUES(SEQ_MATERIA.NEXTVAL,


'PROGRAMACION I');
INSERT INTO INICIALES_MATERIA VALUES(SEQ_MATERIA.NEXTVAL,
'PROGRAMACION II');
INSERT INTO INICIALES_MATERIA VALUES(SEQ_MATERIA.NEXTVAL,
'PROGRAMACION III');

CREATE SEQUENCE SEQ_CURSA INCREMENT BY 1 START WITH 1;


INSERT INTO INICIALES_CURSA VALUES(SEQ_CURSA.NEXTVAL,'10','110');
INSERT INTO INICIALES_CURSA VALUES(SEQ_CURSA.NEXTVAL,'10','120');
INSERT INTO INICIALES_CURSA VALUES(SEQ_CURSA.NEXTVAL,'10','130');
INSERT INTO INICIALES_CURSA VALUES(SEQ_CURSA.NEXTVAL,'20','110');
INSERT INTO INICIALES_CURSA VALUES(SEQ_CURSA.NEXTVAL,'20','120');
INSERT INTO INICIALES_CURSA VALUES(SEQ_CURSA.NEXTVAL,'20','130');
---1---
CREATE VIEW EJ_1 AS
SELECT A.NOMBRE||' '||A.AP_PATERNO||' '||A.AP_MATERNO NOMBRE_APELLIDOS
,C.NOMBRE AS MATERIA
FROM INICIALES_ESTUDIANTE A INNER JOIN INICIALES_CURSA B
ON A.ID_ESTUDIANTE=B.ID_ESTUDIANTE INNER JOIN INICIALES_MATERIA C
ON B.ID_MATERIA=C.ID_MATERIA;

SELECT * FROM EJ_1;


---2---
CREATE VIEW EJ_2 AS
SELECT NOMBRE AS MATERIA, COUNT(ID_ESTUDIANTE)
AS CANTIDAD
FROM INICIALES_MATERIA A INNER JOIN INICIALES_CURSA B
ON A.ID_MATERIA=B.ID_MATERIA GROUP BY NOMBRE;

SELECT * FROM EJ_2;

--3--
CREATE INDEX IDX_INICIALES_EST_AP_PATERNO ON
INICIALES_ESTUDIANTE(AP_PATERNO);

CREATE INDEX IDX_INICIALES_EST_AP_MATERNO ON


INICIALES_ESTUDIANTE(AP_MATERNO);

CREATE INDEX IDX_INICIALES_EST_NOMBRE ON


INICIALES_ESTUDIANTE(NOMBRE);

También podría gustarte