MySQL: Sentencia Select

mysql-select

En este post de MySQL te explicare cómo usar la sentencia SELECT  en MySQL con sintaxis y ejemplos.

Descripción

La instrucción SELECT de MySQL se utiliza para recuperar registros de una o más tablas en MySQL pudiendo seleccionar cuales campos queremos incluir y excluir.

Sintaxis

En su forma más simple, la sintaxis para la instrucción SELECT en MySQL es:

SELECT campos
FROM tablas
[WHERE condiciones];

Sin embargo, la sintaxis completa de la sentencia SELECT en MySQL puede resultar más extensa.

Esta sentencia esta compuesta por varios elementos, como son:

campos

Las columnas o cálculos que desea recuperar. Utilice el asterisco (*) si desea seleccionar todas las columnas.

tablas

Las tablas de las que desea recuperar los registros. Debe haber al menos una tabla enumerada en la cláusula FROM.

Recuperar todos los campos desde una tabla

Recuperar campos desde dos o más tablas MySQL

Veamos cómo usar una consulta MySQL SELECT para seleccionar todos los campos de una tabla.

SELECT *
FROM categoria

En este ejemplo de la sentencia MySQL SELECT, hemos utilizado * para indicar que deseamos seleccionar todos los campos de la tabla categoría.

IdCategoriaNombreCategoriaDescripcion 
1BebidasGaseosas, café, té, cervezas y maltas 
2CondimentosSalsas dulces y picantes, delicias, comida para un… 
3ReposteríaPostres, dulces y pan dulce 
4LácteosQuesos 
5Granos/CerealesPan, galletas, pasta y cereales 
6CarnesCarnes preparadas 
7Frutas/VerdurasFrutas secas y queso de soja 
8Pescado/MariscoPescados, mariscos y algas 

Recuperar algunos campos desde una tabla

También puede utilizar la instrucción SELECT de MySQL para seleccionar campos individuales de la tabla, a diferencia de todos los campos de la tabla.

SELECT nombreCategoria
FROM categoria

Este ejemplo la consulta o query devolverá sólo el campo nombreCategoria de la tabla categoria.

NombreCategoria
Bebidas
Condimentos
Repostería
Lácteos
Granos/Cereales
Carnes
Frutas/Verduras
Pescado/Marisco

Desplegar un listado con la ciudad, código y el estado de los almacenes (tomar en cuenta que el orden mostrado en el resultado dependerá del orden en que se coloquen en la sentencia SELECT)

SELECT ciudad, codigo, estado   
FROM almacenes 
ciudadcodigoestado
Seattleal-01WA
Seattleal-02WA
Portlandal-03OR
Columbusal-04OH
Trentonal-05NJ
Seattleal-06WA
Seattleal-07WA
Columbusal-08OH
Ordena los resultados con ORDER BY

Eliminar Resultados repetidos con Distinct

En ciertos casos obtendremos como resultado datos que tendran aparencia de estar repetidos, esto es solo apariencia porque la sentencia SELECT recupera las columnas de cada registro de la tabla especificada en el FROM, sin embargo, estos resultados pueden ser el mismo valor para cada uno y puede darse el caso que queramos excluir de los resultados esos valores aparentemente repetidos, para eso necesitamos agregar una clausura a nuestra sentencia SELECT, la clausura DISTINCT.

su sintaxis:

SELECT DISTINCT campos
FROM tabla

Poniendo esto en practica podríamos buscar los estados de una tabla llamada almacenes.

SELECT estado
FROM almacenes

y como resultado tendremos lo siguiente.

estado
WA
WA
OR
OH
NJ
WA
WA
OH

En este resultado es notable que algunos valores como WA y OH se repiten, pero debemos recordar que no es una repetición sino que es el valor de una columna, pero en nuestro ejemplo no queremos resultados duplicados, entonces a la consulta anterior agregaremos la clausura sql llama distinct.

SELECT DISTINCT estado
FROM almacenes
estado
WA
OR
OH
NJ
Elimina resultados repetidos con DISTINTC

Búsqueda condicionada

Ahora bien hasta el momento hemos realizado consulta donde se recuperan todos los registros de la tabla seleccionada en el FROM sin embargo, no siempre es deseable tener todos los registros, sino solo algunos de ellos, para esto necesitamos agregar la clausura sql WHERE.

SELECT campos
FROM tabla
WHERE condicion
OperadorSignificado
=Igual que
>Mayor que
<Menor que
>=Mayor o igual que
<=Menor o igual que
!=Diferente de
BetweenRango
InValores que Coinciden en una Lista

En este post solo daré algunos ejemplos, ya que en mi post operadores de comparación esta muy bien detallado el tema de los operadores.

Si tuviéramos una tabla llama almacenes y quisiéramos solo saber cuales están ubicados en el estado de washington (WA).

SELECT codigo, ciudad, estado
FROM almacenes
WHERE estado = 'WA'
codigociudadestado
al-01SeattleWA
al-02SeattleWA
al-06SeattleWA
al-07SeattleWA

como podemos ver esta tabla tiene más registros, pero solo se recuperaron aquellos que cumplen con la condición aplicada en el where, la cual dice estado = ‘WA’, un detalle que quiero aclarar y es que los textos deben ir en comillas simples, también las fechas, sin embargo los números no necesitan comillas.

Domina la base de datos  MySQL con este mega post

Escribir en un archivo

También puede utilizar la instrucción SELECT de MySQL para escribir el conjunto de resultados en un archivo.

Por Ejemplo:

SELECT orden_id, cantidad, precio_unitario 
FROM detalle_orden
WHERE cantidad < 500
ORDER BY cantidad
INTO OUTFILE 'results.txt'     
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'     
LINES TERMINATED BY '\n';

Este ejemplo de MySQL SELECT devolvería solamente los campos orden_id, cantidad y precio_unitario de la tabla detalle_orden donde la cantidad es menor que 500. Los resultados serían ordenados por cantidad en orden ascendente y escritos en un archivo llamado results.txt.

Espero te haya sido utíl y no te olvides de Compartir en Las Redes. No olvides comentar Y valorar esta entrada.. 🙂

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.