duduromeroa.com

Programación web

Sintaxis MySQL: recuperación de datos mediante sentencias select, from, where, order by, para consultas en bases de datos relacionales My SQL


www.duduromeroa.com, animación, lector, gif

Por Eduardo J. Romero Andrade

Guayaquil, Ecuador

Contacto duduromeroa@gmail.com

#SQL, #basededatos, #Guayaquil, #duduromeroa, #datosEstructurados


Puedes hallar reseñas de otros lenguajes informáticos en este vínculo.



El diseño de base de datos es ya una especialización en software, por lo que el tema de las sentencias y otros operandos es extensísimo. Esta sección mostrará solo un ápice de todo lo referente a sintaxis de sentencias. Para profundizar en eso, recomiendo W3C MySQL Sentencias, Sentencias comunes de MySQL, o bibliografía pertinente al tema.

Recuperación de datos mediante sentencias

En la sección anterior revisamos las restricciones de datos, claves primarias, claves foráneas y conexión entre tablas. En esta sección se revisará la razón más importante de toda base de datos: la recuperación de datos mediante consultas.

Es importante también tener presente los tipos de datos que la sintaxis de MySQL permite. Eso es importante para optimizar el espacio de memoria con datos correctos y pertinentes, o rechazar aquellos que no lo son. En esta sección amplío ese tema de tipos de datos.

Teniendo como tabla creada con los siguientes registros:

En MySQL

create database colores;
use colores;

-- Definir datos
create table frios(
frio_id int primary key auto_increment,
nombre varchar(20)
);

-- Definir datos
create table calientes(
calientes_id int primary key auto_increment,
nombre varchar(20)
);

-- INSERTAR REGISTROS DE FRIOS
INSERT INTO frios VALUES ('01', 'celeste');
INSERT INTO frios VALUES ('02', 'violeta');
INSERT INTO frios VALUES ('03', 'verde azulado');

-- INSERTAR REGISTROS DE CALIENTES
INSERT INTO calientes VALUES ('01', 'amarillo');
INSERT INTO calientes VALUES ('02', 'verde');
INSERT INTO calientes VALUES ('03', 'ocres');

Una consulta entre columnas de una tabla es:

En MySQL

-- Consultar columnas 'frios' y 'nombre' de la tabla frios
     select frio_id, nombre from frios;

-- Respuesta
-- '1','celeste'
-- '2','violeta'
-- '3','verde azulado'

Una consulta entre columnas de una tabla, buscando un registro de datos y su clave id:

En MySQL

-- Mostrar columna 'nombre' e 'id' donde el nombre sea igual a violeta
select nombre, frio_id from frios where nombre = "violeta"; 

-- Respuesta
-- 'violeta','2'

Una consulta entre columnas de una tabla, buscando a partir de un posible id:

En MySQL

select nombre from calientes where calientes_id = 1; 
     -- R: amarillo

Ordenando datos a partir de una columna, con sentencia ORDER:

En MySQL

-- Ordenar por el NOMBRE
select frio_id, nombre from frios order by nombre;
-- R:
-- '1','celeste'
-- '3','verde azulado'
-- '2','violeta'

-- Ordenar por el ID
select frio_id, nombre from frios order by frio_id;
-- R:
-- '1', 'celeste'
-- '2', 'violeta'
-- '3', 'verde azulado'

-- Los resultados difieren porque la primera consulta ordena 
-- según letras iniciales (A, B, C...) mientras que la segunda 
-- consulta ordena de menor a mayor según los índices 
-- o claves primarias (1, 2, 3...)

Ordenando datos con sentencia ORDER, según orden descendiente o ascendente (claves desc, asc). Cuando los datos consultados son números, el ordenamiento automático será de menor a mayor, o ascendente.

En MySQL

select frio_id, nombre from frios order by frio_id desc;
-- R:
-- '3', 'verde azulado'
-- '2', 'violeta'
-- '1', 'celeste'

Formatos para visualidad, lectura humana y mantenimiento de código en My SQL: La sintaxis de MySQL es interpretable por el sistema tanto en mayúsculas y en minúsculas, o dando espacios o saltos de línea (tecla Enter). Los formatos son importantes para mantener la legibilidad del código, especialmente cuando más de un codificador interviene en el desarrollo. Lo importante será mantener un solo formato para mejor legibilidad y sin afectar la sintaxis

-- Solo minúsculas  
select columnaA, columnaB, columnaC from tabla;

-- Combinando mayúsculas y minúsculas
SELECT    columnaA,
          columnaB,
          columnaC,
FROM      tabla;

-- Cualquiera de estos formatos serán correctos
CREATE database COLORES;
create DATABASE COLORES;
CREATE database colores;

/* Los comentarios de múltiples líneas pueden 
agregarse de esta forma! Los comentarios de múltiples 
líneas pueden agregarse de esta forma! */

-- Otros comentarios más avanzados son los optimizadores de consulta: 
 /*+ no_index(paises idx1) */