(
CODE NUMBER (3) NOT NULL ,
NOMBRE VARCHAR2 (20) ,
CARRERA VARCHAR2 (30)
) ;
ALTER TABLE ESTUDIANTES ADD CONSTRAINT ESTUDIANTES_PK PRIMARY KEY ( CODE ) ;
CREATE TABLE MATERIAS
( CODM NUMBER (3) NOT NULL , MATERIA VARCHAR2 (30)
) ;
ALTER TABLE MATERIAS ADD CONSTRAINT MATERIAS_PK PRIMARY KEY ( CODM ) ;
CREATE TABLE NOTAS
(
CODE NUMBER (3) NOT NULL ,
CODM NUMBER (3) NOT NULL ,
N1 FLOAT (2) ,
N2 FLOAT (2) ,
N3 FLOAT (2)
) ;
ALTER TABLE NOTAS ADD CONSTRAINT NOTAS_PK PRIMARY KEY ( CODE, CODM ) ;
ALTER TABLE NOTAS ADD CONSTRAINT FK_ASS_1 FOREIGN KEY ( CODE ) REFERENCES ESTUDIANTES ( CODE ) ;
ALTER TABLE NOTAS ADD CONSTRAINT FK_ASS_2 FOREIGN KEY ( CODM ) REFERENCES MATERIAS ( CODM ) ;
INSERTANDO DATOS A LA TABLA
INSERT INTO ESTUDIANTES VALUES
(1,'GOKU','ARTESMARCIALES');
INSERT INTO ESTUDIANTES VALUES
(2,'KRILIN','TAEKONDO');
INSERT INTO ESTUDIANTES VALUES
(3,'PICOLO','BOTANICA');
INSERT INTO MATERIAS VALUES
(10,'BIOLOGIA');
INSERT INTO MATERIAS VALUES
(20,'DEPORTES');
INSERT INTO MATERIAS VALUES
(30,'QUIMICA');
INSERT INTO NOTAS VALUES
(1,10,3.5,4.5,3.9);
INSERT INTO NOTAS VALUES
(1,30,4,3.5,3.8);
INSERT INTO NOTAS VALUES
(2,10,3.9,4.2,4.1);
INSERT INTO NOTAS VALUES
(2,20,4.3,4,4.3);
INSERT INTO NOTAS VALUES
(3,10,3.5,3.2,4.2);
INSERT INTO NOTAS VALUES
(3,30,3.3,4,3);
FUNCIONES Y RESULTADOS
CREATE OR REPLACE FUNCTION DEFINITIVA (n1 NUMBER,n2 NUMBER,n3 NUMBER)
return NUMBER
is
DEF float;
begin
DEF := (N1*0.3+N2*03+N3*0.4);
return DEF;
end DEFINITIVA;
SELECT E.CODE,E.NOMBRE,M.MATERIA ,N.N1 "PRIMERA NOTA",N.N2 "SEGUNDA NOTA",N.N3 "TERCERANOTA",DEFINITIVA (N1/3,N2/3,N3/3) "PROMEDIO ALUMNO"
FROM NOTAS N
INNER JOIN ESTUDIANTES E ON N.CODE = E.CODE
INNER JOIN MATERIAS M ON M.CODM = N.CODM