Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Funciones en Postgresql
Funciones en Postgresql
-
Create Table Modalidad_estudio
(
modalidadID int PRIMARY KEY,
descripción_modalidad character varying(100) not null
);
Create Table Tipo_grado
(
tipoID int PRIMARY KEY,
descripción_tipo character varying(100) not null
);
Create Table Grado_docente
(
key_grado int PRIMARY KEY,
deocenteID int not null references Docente,
modalidadID int not null references Modalidad_estudio,
tipoID int not null references Tipo_grado,
universidadID int not null references Universidad,
mencion_grado character varying(200) not null,
situacion character(1) not null,
año_ingreso int not null,
año_egreso int null
);
--2.-
--ALTER TABLE Grado_docente RENAME COLUMN deocenteid TO docenteid
Insert into
Grado_docente(key_grado,docenteid,modalidadid,universidadid,mencion_grado,situacion
,año_ingreso,
año_egreso,año_grado,descripcion_maestria,tipoID)
values(1,1,10,1,'Bachiller en Ciencias de Ingeniería de
sistemas','2',1993,1999,2000,'Ingenieria de sistemas',1)
Insert into
Grado_docente(key_grado,docenteid,modalidadid,universidadid,mencion_grado,situacion
,año_ingreso,
año_egreso,año_grado,descripcion_maestria,tipoID)
values(2,1,10,2,'Maestria en Educacion','1',2017,2019,Null,'Informatica Educativa y
TIC',2)
--3.-
Select * from grupo where semestreid='2019-2' and cursoid=29 and denominacion='A'
--10007
Update Grupo set docente_id=19 where grupoid=10007
update Horario
set dia='Lunes', h_inicio='18:00', h_fin='21:00'
where horarioid=21
update Horario
set dia='Viernes', h_inicio='19:00', h_fin='21:00', ambienteid=2
where horarioid=22
--4.-
Select * from Matricula
--26-09-2019
--FUNCIONES EN POSTGRESQL
--Insert
--V1
Create or replace function fn_insert_modalidad_estudio(codigo int,descr character
varying)
returns VOID as
$$
Declare
Begin
insert into Modalidad_estudio(modalidadid,descripción_modalidad)
values(codigo,descr);
End;
$$ language 'plpgsql'
--V2
Create or replace function fn_insert_modalidad_estudio(descr character varying)
returns VOID as
$$
Declare
cod int; num_filas int;
Begin
select count(*) into num_filas from Modalidad_estudio;
--Generar el valor para el modalidadID
if num_filas=0 then
cod=10;
else
Select max(modalidadid)+10 into cod from Modalidad_estudio;
end if;
insert into Modalidad_estudio(modalidadid,descripción_modalidad)
values(cod,descr);
End;
$$ language 'plpgsql'
-----------------------------------------------------------------------------------
-------
try{
--Instrucciones
}catch(Exception e){
--Manejo del error
}
--Eliminando una funcion
drop function fn_insert_modalidad_estudio(character varying)
--V3
Create or replace function fn_insert_modalidad_estudio(descr character varying)
returns boolean as
$$
Declare
cod int; num_filas int;
Begin
select count(*) into num_filas from Modalidad_estudio;
--Generar el valor para el modalidadID
if num_filas=0 then
cod=10;
else
Select max(modalidadid)+10 into cod from Modalidad_estudio;
end if;
insert into Modalidad_estudio(modalidadid,descripción_modalidad)
values(cod,descr);
return true;
Exception
when others then return false;
End;
8$$ language 'plpgsql'
select fn_delete_modalidad_estudio(20)
--Eliminar
select fn_nombre_mes(30)
--ESTRUCTURAS REPETITIVAS
loop, while, for
--Loop
LOOP
Instrucciones;
EXIT when <Condicion>;
END LOOP;
LOOP
EXIT when <Condicion>;
Instrucciones;
END LOOP;
select fn_ej01(2)