-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathProcedimiento,funciones,trigger,vistas.sql
79 lines (67 loc) · 2.76 KB
/
Procedimiento,funciones,trigger,vistas.sql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
#-----------------------------------------------------------------------Procedimiento-----------------------------------------------------------------------
#procedimiento ver datos de la taba
DELIMITER $$
create procedure listarEstudiantesPers()
Begin
select e.Fecha_ingreso,e.Fecha_egreso,e.Estado,p.CodPersona
from Estudiantes e,Personas p
where e.codPersona=p.codPersona;
End $$
DELIMITER ;
CALL listarEstudiantesPers();
#Procedimiento para insertar en persona
DELIMITER $$
CREATE PROCEDURE insertarPersona(
in varCod int,
in varCI varchar(8),
in varNombre varchar (20),
in varA_Primer varchar (20),
in varA_Segundo varchar (20),
in varSexo char (1),
in vartelefono int,
in varDireccion varchar (45))
BEGIN
insert into personas values (varCod,varCI,varNombre,varA_Primer,varA_Segundo,varSexo,vartelefono,varDireccion);
END $$
DELIMITER ;
call insertarPersona (202211546, 13328852, 'Lorena', 'Escobar', 'Rojas', 'f', 76950418, 'Santa cruz de la sierra');
call insertarPersona (202111044, 13328852, 'Carla', 'fernandes', 'toro', 'f', 78900412, 'Santa cruz de la sierra');
call insertarPersona (202121044, 11328852, 'Carla', 'fernandes', 'toro', 'f', 78900512, 'Santa cruz de la sierra');
select * from Personas;
#-----------------------------------------------------------------------Funcion-----------------------------------------------------------------------
DELIMITER $$
create function num_letras (letras char) returns int
begin
declare cantidad int;
select count(*) into cantidad from personas where Nombre like concat('%',letras,'%');
return cantidad;
end $$
DELIMITER ;
#muestra la cantidad de nombre con determinada letra.
select num_letras('m');
#muestra la primer letra de cada nombre.
SELECT LEFT(Nombre, 1) FROM personas;
#muestra la primer letra de cada nombre y cuantas cantidad de veces que la tiene.
select left(Nombre,1),num_letras(left(Nombre,1)) from personas;
#-----------------------------------------------------------------------Trigger-----------------------------------------------------------------------
create table seRegistroLaIncricion(
hostName varchar(50),
fecha timestamp);
select * from seRegistroLaIncricion;
DELIMITER $$
CREATE TRIGGER RegistroDeIncricion
BEFORE INSERT ON Materias
FOR EACH ROW
BEGIN
insert into seRegistroLaIncricion values(@@HOSTNAME,null);
END $$
DELIMITER ;
insert into Materias values(5,'liderasgo','2022-10-05','2022-12-03','inscrito',null,5);
select * from seRegistroLaIncricion;
select * from Materias;
#-----------------------------------------------------------------------Vistas-----------------------------------------------------------------------
CREATE VIEW vistaEstudiantes AS
select e.Fecha_ingreso,e.Fecha_egreso,e.Estado,p.Nombre
from Estudiantes e,Personas p
where e.CodPersona=p.CodPersona;
select * from vistaEstudiantes;