Basededatos 3

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 13

PROFE VIDERMID

Diplomado en Programación
Bases de Datos Relacionales
SQL (MySQL – MariaDB)
Parte 3

@ingenieriadigitalsc
FACILITADOR: ING. ESP. VIDERMID SÁNCHEZ
+584147464801
DML
Data Manipulation Language

Mas diferencias entre Funciones y Procedimientos:

- Los procedimientos pueden retornar varios parámetros de salida y las funciones solo
retornan una sola variable.

- Los parámetros de retorno o de salida en los procedimientos son opcionales y en las


funciones es obligatorio que se tenga que retornar por lo menos un valor.

- Las funciones se pueden llamar en cualquier sentencia de SQL y los procedimientos solo se
pueden llamar mediante call. Incluso se puede llamar una funcion dentro de un
procedimiento.
DML
Data Manipulation Language

Ejemplo de Procedimiento:
delimiter //
create procedure calcular_p(in v1 int,in v2 int,out res_sum int,out res_mul int)
begin
select v1+v2,v1*v2 into res_sum,res_mul;
end//
delimiter ;

Ejecución:
set @suma=0;
set @multi=0;
call calcular_p(4,4,@suma,@multi);
select @suma,@multi;
DML
Data Manipulation Language

Ejemplo de Función:
delimiter //
create function calcularSuma_f(n1 int,n2 int) returns int
begin
set @rSuma=0;
select n1+n2 into @rSuma;
return @rSuma;
end//
delimiter ;

Ejecución:
select calcularSuma_f(6,5);
DML
Data Manipulation Language

Ejemplo de Procedimiento con Función anidada:

drop procedure if exists calcular_p;

delimiter //
create procedure calcular_p(in v1 int,in v2 int,out res_sum int,out res_mul int)
begin
select calcularSuma_f(v1,v2),v1*v2 into res_sum,res_mul;
end//
delimiter ;

Ejecución:
set @suma=0;
set @multi=0;
call calcular_p(6,5,@suma,@multi);
select @suma,@multi;
DDL
Lenguaje de definición de datos
Creando una nueva tabla para registrar la auditoria del sistema:

Ejemplo:

CREATE TABLE `movies`.`auditoria` (


`id_auditoria` INT NOT NULL AUTO_INCREMENT,
`novedad` VARCHAR(150) NOT NULL,
`cuando` DATETIME NULL DEFAULT CURRENT_TIMESTAMP(),
PRIMARY KEY (`id_auditoria`));
DML
Data Manipulation Language
Los Trigger (gatillos o disparadores) son funciones que se ejecutan automáticamente cuando hay un
evento en un cierto momento (before[antes], after[despues]). Los gatillos se pueden usar para insertar,
actualizar o borrar registros de otras tablas o incluso de otras bases de datos cuando se realizan cambios
en la tablas que estamos trabajando. Usos: logs, auditorias, entre otras.
Sintaxis:
delimiter //
create trigger nombre_gatillo momento evento on tabla_que_activa_proceso
for each row
begin
insert into table_proceso(campo) value (‘Valor’);
end//
delimiter ;

Ejemplo:
delimiter //
create trigger visor after insert on actor
for each row
begin
insert into auditoria (novedad)
value (concat('Se ha registrado un nuevo actor con el nombre de: ',new.nombre,
' con el Id: ',new.id_actor));
end//
delimiter ;
DML
Data Manipulation Language

Insertando dos nuevos actores para verificar el gatillo de auditoria

Ejemplo:
INSERT INTO actor (id_actor,nombre,pais,sexo,fecha_nacimiento,comision) VALUES
('000333','VIN DIESEL','USA','M','1978-07-18',9999.99),
('000339','MICHELLE RODRIGUEZ','USA','F','1978-07-12',8888.99);
DCL
Data Control Language
Es un lenguaje que incluye una serie de comandos SQL. Como los anteriores, es
proporcionado por los sistemas gestores de bases de datos. Sus siglas son DCL por su
nombre en inglés, Data Control Language.

• Estos comandos permiten al Administrador del sistema gestor de base de datos,


controlar el acceso a los objetos, es decir, podemos otorgar o denegar permisos a
uno o más roles para realizar determinadas tareas.

• Los privilegios de los Usuarios son los permisos que tiene para actualizar, insertar,
eliminar e incluso consultar los datos de la Base de Datos, además, se contemplan
permisos de administras Bases de Datos y Tablas.
• Hasta este momento hemos utilizado el usuario ”root”, quien tiene la mayor
jerarquía, para gestionar nuestras Bases de Datos y Tablas en MySQL, pero se
recomienda que para trabajo profesional se creen Usuarios con perfiles específicos y
limitados para evitar comprometer la información almacenada en nuestro Servidor
de producción.

Los comandos para controlar los permisos son los siguientes:


GRANT, permite otorgar permisos.
REVOKE, elimina los permisos que previamente se han concedido.
DCL
Data Control Language
Sintaxis:

Crear Usuario
grant usage on db.tabla to usuario@servidor identified by “pass”;

Otorgar Permisos a Usuarios


grant permisos on db.tabla to usuario;

Retirar Permisos a Usuarios


revoke permisos on db.tabla from usuario;

Visualizar Permisos de Usuarios


show grants for usuario;

Eliminar Usuario del Servidor


drop user usuario@servidor;
DCL
Data Control Language
Sintaxis:

Consultar usuarios del servidor


select * from mysql.user;

Crear Usuario para una base de datos especificas y todas sus tablas
grant usage on movies.* to administrador identified by '12345678';
grant usage on movies.* to administrador@127.0.0.1 identified by '12345678';

Eliminar Usuario
drop user administrador@127.0.0.1;

Asignar permisos de consultar a Bases de Datos


grant select on *.* to administrador@127.0.0.1;

Asignar permisos de modificar a Bases de Datos


grant select,update on *.* to administrador@127.0.0.1;

Asignar todos los permisos para la Base de Datos


grant all privileges on *.* to administrador@127.0.0.1;

Asignar varios permisos para la Base de Datos


grant insert,select,update,delete,create,drop on movies.* to administrador@127.0.0.1;
DCL
Data Control Language
Sintaxis:

Quitar permisos
revoke all privileges on *.* from administrador@127.0.0.1;

Actualizar permisos
flush privileges;

Consultar permisos
show grants for administrador@127.0.0.1;
DCL
Data Control Language
Migración de un SGBD a otro

https://www.dbsofts.com/es/

También podría gustarte