3.SQL Con Heidisql
3.SQL Con Heidisql
- Information_schema
- Mysql
- Performance_schema
- Sys
DDL – Data Definition Language: Conocido como DDL, permite crear y modificar la estructura
de una base de datos.
DML – Data Manipulation Language: Se utiliza para gestionar y manipular datos en una base
de datos relacional. Los comandos de DML se utilizan para insertar, actualizar, eliminar y
recuperar datos de una base de datos.
DCL – Data Control Language: Incluye una serie de comandos SQL que permiten al
administrador controlar el acceso a los datos contenidos en la base de datos.
TCL – Transaction Control Language: Son comandos SQL (COMMIT, ROLLBACK, etc.) que
permiten manejar transacciones en una base de datos relacional.
Instrucción SELECT
Con la sentencia SELECT podemos hacer todo tipo de consultas en una Base de Datos, para
escribir una consulta solo selecciona la BD y da clic en la pestaña que dice “Consulta*” como se
muestra en la imagen:
Para ejecutar una sentencia en Heidi SQL debes dar clic en el botón de color azul que se indica
en la imagen, o puedes presionar la tecla F9.
La mejor manera de unir tablas es con la clausula JOIN, como se muestra en la imagen a
continuación en donde unimos la tabla productos con la tabla ventas_detalle.
Clausula JOIN (Unión de Tablas)
Podemos usar mas de un JOIN en una consulta, miremos el ejemplo a continuación:
La anterior consulta dará como resultado un gran volumen de información con campos de todas
las tablas unidas.
Clausula JOIN (Unión de Tablas)
Dentro de los JOIN podemos agregar mas condiciones, como el ejemplo que se muestra a
continuación que solo traerá:
- los registros que tengan costos superiores a 2000 en el campo VD_Costo de la tabla
ventas_detalle.
- Proveedores que comiencen por el carácter ‘C’ en el campo Prov_Nombre de la tabla
proveedores.
- Y que tenga fechas de venta superiores al 2018-02-15 en el campo Ventas_Fecha de la tabla
Ventas.
Es prácticamente imposible realizar consultas tan precisas con un WHERE, por eso usamos los
JOIN.
Clausula LEFT & RIGHT JOIN
En este ejemplo seleccionamos los campos que se muestran en la imagen, y hacemos un JOIN de
la tabla productos con la tabla ventas_detalle. Lo importante de este ejemplo es que tenemos
que saber que estamos uniendo productos(1) con ventas_detalle(2), entonces podríamos decir
que estamos uniendo la tabla 1 con la tabla 2.
Clausula LEFT & RIGHT JOIN
En el resultado que nos muestra la consulta anterior, tenemos que saber que hay productos que
no saldrán en la consulta porque no tienen unidades vendidas, es decir que solo saldrán
productos que tengan al menos una unidad vendida en la tabla ventas_detalle.
Clausula LEFT & RIGHT JOIN
Ahora supongamos que queremos que en la consulta si o si nos aparezcan todos los productos
así no tengan ni una sola unidad vendida. Es aquí donde nos funcionaria un LEFT JOIN.
En el resultado en pantalla, los productos que nunca han tenido ventas o unidades vendidas,
saldrán en NULL.
Clausula LEFT & RIGHT JOIN
En el caso contrario, que pasaría si aplicamos un RIGHT JOIN a esta misma consulta. Ahora la
tabla de la derecha (ventas_detalle) es la principal y tiene prioridad sobre la tabla de la izquierda
(productos).
Traerá todos los registros que tenga ventas_detalle y solo traerá de la tabla productos los
registros en donde exista una coincidencia entre los campos que están en la clausula ON. Y si no
hay coincidencias entonces pondrá todo en NULL de la tabla izquierda.
Clausula LEFT & RIGHT JOIN
Ahora queremos saber cuales son esos productos que han tenido ventas, y que tienen registros
en la tabla ventas_detalle (derecha), pero que esos productos no han sido registrados en la tabla
de productos (izquierda). Tenemos que hacer el GROUP BY sobre la tabla principal, que en este
momento es ventas_detalle y lo hacemos a través del campo VD_ProdId.
Funciones de MySQL
Utilizamos la función IF para mostrar un texto si una condición se cumple o no.
Funciones de MySQL
También podríamos hacer lo mismo que en el ejemplo anterior pero con la función CASE.
Pero este ejemplo no estaría del todo bien, que pasaría si tenemos mas de un Estado, por
ejemplo 1=Habilitado, 0=Deshabilitado y 2=Por habilitar.
Esta sentencia nos diría que todo lo que es 1 le pondrá Habilitado, y a todo lo demás le pondrá
Deshabilitado, porque no estamos evaluando por ninguna parte el estado (2).
Funciones de MySQL
Que pasaría si tenemos mas de dos estados, por ejemplo 1=Habilitado, 0=Deshabilitado y 2=Por
habilitar, en este caso usaríamos la función CASE END.
Funciones de MySQL
También podríamos agregar subconsultas la función CASE END. Note que cuando el producto
efectivamente tiene Status=1 y si no se ha vendido nada de ese producto, mandara un NULL.
Funciones de MySQL
Soluciones el problema encerrando toda la función anterior dentro de otra nueva función que se
llama IFNULL( ), y le indicamos que si hay un valor NULL lo reemplace con un Cero(0).
Funciones de MySQL
Usamos la función SUBSTR para extraer un carácter de una cadena de caracteres, y le indicamos
a la función CASE que hacer en caso de que se cumpla una o mas condiciones:
Funciones de MySQL
Algunas funciones que nosotros podemos ejecutar en el motor de BD sin necesidad de
mencionar alguna tabla, ósea son SELECT que NO van a tener un FROM.
Funciones de MySQL
Funciones de MySQL
Funciones de MySQL
Funciones de MySQL
Funciones de MySQL
Funciones de MySQL
Funciones de MySQL
Funciones de MySQL
Funciones de MySQL
Funciones de MySQL
Funciones de MySQL
Funciones de MySQL
Funciones de MySQL
Funciones de MySQL
Funciones de MySQL
Instrucción INSERT
Para trabajar con la instrucción INSERT crearemos primero una tabla llamada alumnos con los
campos que se muestran en la siguiente imagen.
Instrucción INSERT
Insertamos el primer registro en la tabla alumnos.
Instrucción INSERT
Podemos hacer un volcado en la tabla alumnos insertando varios registros en la misma consulta.
Instrucción UPDATE
Antes de usar la instrucción UPDATE insertaremos unos registros de ejemplo en la tabla
productos para luego actualizarlos.
Instrucción UPDATE
Actualizamos el campo Prod_Descripcion del registro 6990.
Instrucción UPDATE
Podemos actualizar varios campos a la vez, esta vez lo haremos con el registro 6991.
Instrucción DELETE
La instrucción DELETE se utiliza para eliminar registros existentes en una tabla.
Instrucción DELETE
Es posible eliminar todas las filas de una tabla sin eliminar la tabla en sí. Esto significa que la
estructura, los atributos y los índices de la tabla permanecerán intactos.
Resumen
Estas son las estructuras básicas de las tres instrucciones, INSERT, UPDATE y DELETE.
Subconsultas
Las subconsultas son consultas que se encuentran dentro de otra consulta más grande en una
base de datos. Estas subconsultas se utilizan para obtener un conjunto de datos específico que
se utilizará como parte de la consulta principal. Las subconsultas se pueden aplicar en diferentes
partes de una consulta, como en las cláusulas WHERE, JOIN, HAVING, etc.
Una subconsulta también puede ser insertada en cualquiera de las tres partes de un SELECT, en
la lista de campos, en las tablas o en las condiciones.
Subconsultas
Tenemos la siguiente consulta en donde deseamos saber cual seria la cantidad total vendida de
cada uno de los productos, pero dicha cantidad se encuentra en otra tabla llamada
ventas_detalle.