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.
IdCategoria | NombreCategoria | Descripcion | |
1 | Bebidas | Gaseosas, café, té, cervezas y maltas | |
2 | Condimentos | Salsas dulces y picantes, delicias, comida para un… | |
3 | Repostería | Postres, dulces y pan dulce | |
4 | Lácteos | Quesos | |
5 | Granos/Cereales | Pan, galletas, pasta y cereales | |
6 | Carnes | Carnes preparadas | |
7 | Frutas/Verduras | Frutas secas y queso de soja | |
8 | Pescado/Marisco | Pescados, 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
ciudad | codigo | estado |
Seattle | al-01 | WA |
Seattle | al-02 | WA |
Portland | al-03 | OR |
Columbus | al-04 | OH |
Trenton | al-05 | NJ |
Seattle | al-06 | WA |
Seattle | al-07 | WA |
Columbus | al-08 | OH |
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
Operador | Significado |
= | Igual que |
> | Mayor que |
< | Menor que |
>= | Mayor o igual que |
<= | Menor o igual que |
!= | Diferente de |
Between | Rango |
In | Valores 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'
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.. 🙂