Está en la página 1de 10

USO, CARACTERISTICAS Y EJEMPLO DE TRIGGER, VISTAS, JOIN EN MYSQL.

TRIGGER
Un TRIGGER es un objeto con nombre en una base de datos que se asocia con una tabla, y se activa cuando ocurre un evento en particular para esa tabla.
Sintaxis: CREATE TRIGGER nombre_disp momento_disp evento_disp ON nombre_tabla FOR EACH ROW sentencia_disp;
sentencia_disp: es la sentencia que se ejecuta cuando se activa el TRIGGER. Si se ejecutan mltiples sentencias, deben colocarse entre BEGIN o END, Nombre tabla:: es la tabla a la cual queda asociada el trigger a la tabla Esta debe ser una tabla permanente, no puede ser una tabla TEMPORARY ni una vista.

TRIGGER

momento_disp: es el momento en que el TRIGGER entra en accin. Puede ser BEFORE o AFTER .
evento_disp: indica la clase de sentencia que activa al TRIGGER. Puede ser INSERT, UPDATE, o DELETE.

EJEMPLO TRIGGER
Create database pruebatrigger; CREATE TABLE profesor(idprofesor INT NOT NULL PRIMARY KEY AUTO_INCREMENT, nombre VARCHAR(70),salon INT NOT NULL); CREATE TABLE salon(idsalon INT NOT NULL AUTO_INCREMENT PRIMARY KEY, localizacion VARCHAR(50),idprofesor INT NOT NULL); create trigger inserta_tabla after insert on profesor for each row insert into salon(nombre, salon) values(NEW.nombre, NEW.idprpfesor);

Crear

datos Crear dos tablas (saln, profesor), Crear un trigger para el evento insert.

una base de

Una vista es esencialmente una consulta almacenada que devuelve un conjunto de resultados y a la que se le pone un nombre. Una vista es una tabla virtual, aparece como una tabla ms del esquema, aunque realmente no lo es. Sintaxis: CREATE VIEW view_name [(column_list)] AS sentencia_select;

VISTAS

Condiciones
Las tablas y las vistas comparten el mismo espacio de nombres en la base de datos, por eso, una base de datos no puede contener una tabla y una vista con el mismo nombre.
Los nombres de tablas o vistas sin calificar en la sentencia SELECT se interpretan como pertenecientes a la base de datos actual. Una vista puede hacer referencia a tablas o vistas en otras bases de datos precediendo el nombre de la tabla o vista con el nombre de la base de datos apropiada.

VISTAS

Las vistas pueden crearse a partir de varios tipos de sentencias SELECT. Pueden hacer referencia a tablas o a otras vistas. Pueden usar combinaciones, UNION, y subconsultas. El SELECT inclusive no necesita hacer referencia a otras tablas.

Las columnas devueltas por la sentencia SELECT pueden ser simples referencias a columnas de la tabla, pero tambin pueden ser expresiones conteniendo funciones, constantes, operadores, etc..

EJEMPLO VISTAS
Create view vista as select nombre, apellido as value from profesor;

Crear una base de datos Crear dos tablas (saln, profesor), Crear un view qu mestre solo los datos de tipo varchar para la tabla de profesor.

Select * from vista; +-------------+-----------+ | nombre | VALUE | +------------+------------+ | lina | ruiz | | andres| NULL | +-------------+-----------+

Un join es una combinacin de dos o ms tablas de una base de datos relacional, es una instruccin de lo ms imprescindible si queremos realizar una aplicacin que realice un uso correcto e intensivo de un gestor de Bases de datos cmo MySQL. Sintaxis:select * from r1, r2, r3where r1.id = r2.r1idand r2.id = r3.r2id;

JOIN

Condiciones
LEFT JOIN nos dar el resultado anterior mas los campos de la tabla clientes que no tienen coincidencias. Osea un listado de todos los clientes, con sus tenencias y en el caso que no tengan acciones aparecer NULL

RIGTH JOIN: se listarn todas las tenencias de acciones, tengan o no resultados en sus campos, las que no tengan resultados se vern como NULL

JOIN
UNION y UNION ALL: Podemos combinar el resultado de varias sentencias con UNION o UNION ALL. UNION no nos muestra los resultados duplicados, pero UNION ALL si los muestra.

La sentencia SQL JOIN se utiliza para relacionar varias tablas, veremos algunos ejemplos bsicos de distintos tipos de JOIN

EJEMPLO join

Crear una base de datos Crear dos tablas (saln, profesor), Crear un inner join el cual muestre los registro que tiene el mismo nombre .

Select * from profesor inner join salon on profesor.nombre=salon.nom bre;

También podría gustarte