Parte 1.
Estructura select.
En mysql los select son querys que nos sirven específicamente para hacer consultas de información, su estructura es la siguiente:
  • SELECT * FROM tableName;  
Lo que nos devuelve este query es un listado de todos los registros existentes en una tabla.

Ejemplos de select:

  • SELECT * FROM  tableName WHERE id=1;
  • SELECT * FROM  tableName WHERE nombre='Name'; 
  • SELECT * FROM  Autor WHERE nombre='Daniel';

Parte 2.
Estructura delete.
Los querys que tienen un delete en su estructura nos sirven para eliminar registros de una tabla y se usan de la siguiente manera:

  • DELETE FROM tableName WHERE id=1;
Es importante que siempre se especifique el WHERE en una sentencia DELETE, ya que de lo contrario podríamos borrar registros que no se deseen eliminar lo cual trae consigo una perdida completa de la informacion.

Ejemplos de delete:
  • DELETE FROM  tableName WHERE nombre='Name';
  • DELETE FROM  tableName WHERE fecha=NOW();
  • DELETE FROM  tableName WHERE id>=10;   
  • DELETE FROM  Autor WHERE id=10;
Parte 3.
Estructura update.
La sentencia update nos sirve para hacer actualizaciones en los registros de una tabla.
Su estructura es de la siguiente manera:


  • UPDATE tableName SET columnName='newValue' WHERE columnName=Value;
Ejemplo:

  • UPDATE  Autor SET nombre='Daniel' WHERE id=1;
Parte 4.
Estructura Stored Procedure.
Los procedimientos almacenados (stored procedures) son equivalentes a los métodos que utilizamos en java  ya que reciben parámetros y cumplen con ciertas funciones. A continuación se muestran algunas de las opciones para manejar los stored procedure.


  • CREATE PROCEDURE miproc;
  • SHOW PROCEDURES;
  • DROP PROCEDURE miproc;
  • CALL PROCEDURE miproc;
Ejemplos;

  • DELIMITER // 
  • CREATE PROCEDURE miproc ( )
  • Begin
  • SELECT* FROM personas WHERE nombre='Juan';
  • DELETE FROM personas WHERE id>10;
  • END // 

  • DELIMITER //
  • CREATE PROCEDURE miproc ( OUT salida varchar (100))
  • begin
  • SELECT COUNT(*) INTO salida FROM personas;
  • END // 



  • DELIMITER //
  • CREATE PROCEDURE seguro (IN entrada varchar, IN entrada2 varchar, IN entrada3 varchar, OUT salida varchar )
  • begin
  • DECLARE nom varchar;
  • DECLARE dom varchar;
  • DECLARE ed integer;
  • SET nom = select* from INE where nombre=entrada;
  • SET dom = select* from INE where domicilio=entrada2;
  • SET ed = select* from INE where edad = entrada3;
  •  IF ed>17 THEN
  • select noAfiliado from IMSS im inner join INE i on i.id=im.idINE;
  • select noAfiliado from SeguroPopular sp inner join INE i on sp.idINE=i.INE;
  • ELSE
  • select noAfiliado from SeguroPopular sp inner join INE i on i.id=sp.idINE;
  • END IF 
  • END
  • SELECT COUNT(*) INTO salida FROM personas;
  • END //

Parte 5.
Estructura Triggers.
Los triggers (disparadores) son sentencias que desencadenan un evento después de ejecutar un query, por ejemplo, al insertar un registro en una tabla que llamaremos Productos se guardará automaticamente en otra tabla a la que denominaremos Entrada que usuario registró un nuevo producto y en que fecha y hora lo realizó.
Es importante cambiar siempre el DELIMITER a la hora de crear un trigger para no tener conflictos con los puntos y las comas.

          DELIMITER //

          CREATE TRIGGER triggerName (before or after) (insert, delete, update, etc) INTO
          tableName
          FOR EACH ROW
          BEGIN
          INSERT INTO otherTable (id, nombre, fecha) VALUES (OLD.id, OLD.name,
                                                                                                                                           NOW());
          END //

A continuación se muestra un ejemplo de un trigger el cual guardará en una tabla que usuario borra un producto de una tabla y en que fecha y hora:
          
          DELIMITER //

          CREATE TRIGGER borrar before delete INTO productos
          FOR EACH ROW
          BEGIN
          INSERT INTO registro (usuario, fecha) VALUES (session_user(), NOW());
         
          END //

Claro que este trigger por si solo no hará nada, se disparará hasta que el usuario en turno ejecute una sentencia delete sobre la tabla productos.

Parte 6.
Estructura Vistas. 
Las vistas nos sirven para almacenar información relevante a la que no queremos que tengan acceso nuevos programadores o que puedan manipularla.

Por ejemplo; un query donde tenemos 10 tablas relacionadas y cada una con 20 campos, el query es exponencialmente complejo en tamaño y forma, y asumiendo que tarda alrededor de 10 segundos en ejecutarse, si este query se ejecuta a diario o en su defecto se le da mantenimiento es incomprensible determinar el tiempo de análisis que esto llevará, en cambio si almacenamos este query en una vista su ejecución será mas rápida y cualquier programador puede hacer consultas y modificaciones sin alterar de manera directa las tablas reales.



    DELETE FROM miVista;
    DROP VIEW miVista;

    CREATE VIEW miVista AS SELECT p.nombre, d.domicilio, d.telefono FROM Datos d      INNER JOIN Persona p on p.id=d.idPersona; 

Comentarios