MySQL Declaración SELECT con ejemplos

⚡ Resumen inteligente

El MySQL La instrucción SELECT recupera filas de una o más tablas, y cada ejemplo a continuación se ejecuta en la base de datos de ejemplo myflix, pasando de la consulta simple con asterisco a expresiones, alias de columna y funciones de cadena.

  • 🔎 Propósito principal: SELECT recupera filas almacenadas que coinciden con un criterio, desde el símbolo del sistema o desde PHP, Pythony otros idiomas.
  • 🧩 Orden de sintaxis: Las cláusulas SELECT, FROM, WHERE, GROUP BY, HAVING y ORDER BY deben aparecer en esa secuencia fija.
  • Atajo de estrella: SELECT * FROM `members`; devuelve todas las columnas, mientras que nombrar las columnas explícitamente mantiene los conjuntos de resultados más pequeños y rápidos.
  • 🔗 Expresiones: La función CONCAT() une los valores de las columnas y la función LEFT() elimina los caracteres, de modo que los campos calculados aparecen directamente en el conjunto de resultados.
  • 🏷️ Alias ​​de columna: La palabra clave opcional AS renombra cualquier expresión, reemplazando encabezados ilegibles como Concat(`title`) con etiquetas claras.
  • 🖱️ Comparación de bancos de trabajo: MySQL Workbench genera consultas visualmente, pero las sentencias SELECT escritas a mano siguen siendo necesarias para una recuperación de datos compleja y precisa.

¿Qué es una consulta SELECT en MySQL?

Consulta SELECT se utiliza para obtener datos del MySQL base de datos. Las bases de datos almacenan datos para su posterior recuperación. El propósito de MySQL La instrucción SELECT devuelve una o más filas de las tablas de la base de datos que coinciden con un criterio determinado. Una consulta SELECT se puede usar en un lenguaje de programación como PHP o Ruby, o se puede ejecutar desde la línea de comandos.

SELECCIONAR consulta en MySQL

Dado que SELECT es el comando que ejecutarás con mayor frecuencia, conviene aprender su sintaxis antes de trabajar con los datos de ejemplo.

Sintaxis de la sentencia SQL SELECT

SELECT es el comando SQL más utilizado y tiene la siguiente sintaxis general:

SELECT [DISTINCT|ALL] { * | [fieldExpression [AS newName]} FROM tableName [alias] [WHERE condition] [GROUP BY fieldName(s)] [HAVING condition] [ORDER BY fieldName(s)];

AQUÍ

  • SELECT es la palabra clave SQL que le permite a la base de datos saber que desea recuperar datos.
  • [DISTINTO | TODOS] son palabras clave opcionales que permiten ajustar los resultados devueltos por la instrucción SQL SELECT. Si no se especifica nada, se asume ALL como valor predeterminado.
  • {*| [expresión de campo [AS nuevo nombre]} Se debe especificar al menos una parte. “*” selecciona todos los campos de la tabla especificada; fieldExpression realiza cálculos en los campos especificados, como sumar números o unir dos campos de cadena en uno solo.
  • DESDE El campo tableName es obligatorio y debe contener al menos una tabla. Si hay varias tablas, deben separarse con comas o unirse mediante la palabra clave JOIN.
  • Dónde La condición es opcional. Especifica los criterios en el conjunto de resultados devuelto por la consulta.
  • GRUPO POR Se utiliza para juntar registros que tienen los mismos valores de campo.
  • TENIENDO La condición se utiliza para especificar criterios al trabajar con la palabra clave GROUP BY.
  • ORDEN POR se utiliza para especificar el orden de clasificación del conjunto de resultados.

*

El símbolo de estrella selecciona todas las columnas de una tabla. Una sentencia SELECT simple se ve como la que se muestra a continuación.

SELECT * FROM `members`;

La instrucción anterior selecciona todos los campos de la tabla de miembros. El punto y coma sirve para terminar la instrucción. No es obligatorio, pero se considera una buena práctica finalizar las instrucciones de esta manera.

SELECCIONAR DISTINTO y LIMITAR en MySQL

Merecen un análisis más detallado dos palabras clave opcionales en la sintaxis, ya que los principiantes las encuentran en cuanto la tabla crece.

DISTINCT Elimina las filas duplicadas del conjunto de resultados. La tabla de películas almacena varias películas estrenadas en 2007, por lo que una consulta simple repite ese año. DISTINCT devuelve cada valor una sola vez.

SELECT DISTINCT `year_released` FROM `movies`;

LIMITE LAS Limita el número de filas devueltas, lo que protege al cliente de una consulta que, de otro modo, recuperaría millones de registros.

SELECT * FROM `movies` LIMIT 5;
Palabra clave ¿Qué hace? Cuando usarlo
TODOS (predeterminado) Devuelve todas las filas coincidentes, incluyendo los duplicados. Contar o listar registros brutos
DISTINCT Combina filas duplicadas en una sola. Elaboración de una lista de valores únicos
LIMITE LAS Devuelve solo las primeras N filas. Previsualización de datos o paginación de resultados

Una vez definida la sintaxis, la base de datos de ejemplo da vida a estas cláusulas.

Ejemplos prácticos de la sentencia SELECT

Haz clic para descargar La base de datos de Myflix se utilizó para los ejemplos prácticos.

Puedes aprender cómo importar el archivo .sql en MySQL Banco de trabajo.

Los ejemplos se realizan en las dos tablas siguientes.

Tabla 1: miembros mesa

número de socio nombres completos género fecha de nacimiento dirección física direccion postal número de contacto o enviar un email.
1 Janet jones Mujer 21-07-1980 Primera Calle Parcela No 4 Bolsa privada 0759 253 542 janetjones@yagoo.cm
2 Janet Smith Jones Mujer 23-06-1980 Melrose 123 NULL NULL jj@fstreet.com
3 Roberto Phil Hombre 12-07-1989 Calle 3 34 NULL 12345 rm@tstreet.com
4 gloria williams Mujer 14-02-1984 Calle 2 23 NULL NULL NULL

Tabla 2: películas mesa

id_película título director año_de lanzamiento categoria ID
1 Piratas del Caribe 4 Rob Marshall 2011 1
2 Olvidando a Sarah Marshal Nicolás Stoller 2008 2
3 X-Men NULL 2008 NULL
4 Code Nombre Negro Edgar Jimz 2010 NULL
5 Las niñas de papá NULL 2007 8
6 Ángeles y demonios NULL 2007 6
7 Da Vinci Code NULL 2007 6
9 Honey moonERS Juan Schultz 2005 8
16 67% culpable NULL 2012 NULL

Obtener listado de miembros

Supongamos que queremos obtener una lista de todos los miembros registrados de la biblioteca en nuestra base de datos. Para ello, usaríamos el script que se muestra a continuación.

SELECT * FROM `members`;

Ejecutando el script en MySQL Workbench produce los siguientes resultados.

número de socio nombres completos género fecha de nacimiento dirección física direccion postal número de contacto o enviar un email.
1 Janet jones Mujer 21-07-1980 Primera Calle Parcela No 4 Bolsa privada 0759 253 542 janetjones@yagoo.cm
2 Janet Smith Jones Mujer 23-06-1980 Melrose 123 NULL NULL jj@fstreet.com
3 Roberto Phil Hombre 12-07-1989 Calle 3 34 NULL 12345 rm@tstreet.com
4 gloria williams Mujer 14-02-1984 Calle 2 23 NULL NULL NULL

La consulta devolvió todas las filas y columnas de la tabla de miembros.

Selección de columnas específicas

Supongamos que solo nos interesan los campos full_names, gender, physical_address y email. El siguiente script lo consigue.

SELECT `full_names`,`gender`,`physical_address`, `email` FROM `members`;

Ejecutando el script en MySQL Workbench produce los siguientes resultados.

nombres completos género dirección física o enviar un email.
Janet jones Mujer Primera Calle Parcela No 4 janetjones@yagoo.cm
Janet Smith Jones Mujer Melrose 123 jj@fstreet.com
Roberto Phil Hombre Calle 3 34 rm@tstreet.com
gloria williams Mujer Calle 2 23 NULL

Obtener listados de películas con expresiones

También se pueden usar expresiones en las sentencias SELECT. Por ejemplo, si queremos una lista de películas con el título y el nombre del director en un campo, el director entre paréntesis y el año de estreno, el siguiente script lo hará.

SELECT Concat(`title`, ' (', `director`, ')') , `year_released` FROM `movies`;

AQUÍ

  • La función Concat() MySQL Esta función combina los valores de las columnas.
  • La línea “Concat(`title`, ' (', `director`, ')')” obtiene el título, agrega un corchete de apertura seguido del nombre del director y luego agrega el corchete de cierre.
  • Las partes de la cadena se separan mediante comas dentro de la función Concat().

Ejecutando el script en MySQL Workbench produce el siguiente conjunto de resultados.

Concat(`título`, ' (', `director`, ')') año_de lanzamiento
Piratas del Caribe 4 (Rob Marshall) 2011
Olvidando a Sarah Marshal (Nicholas Stoller) 2008
NULL 2008
Code Nombre Black (Edgar Jimz) 2010
NULL 2007
NULL 2007
NULL 2007
Honey mooners (John Schultz) 2005
NULL 2012

Nota: La función Concat() devuelve NULL cuando alguno de sus argumentos es NULL, por eso las películas sin director muestran NULL arriba.

Nombres de campos de alias

El ejemplo anterior devolvió el código de concatenación como nombre del campo. Para usar un nombre de campo más descriptivo en el conjunto de resultados, aplique un alias de columna. A continuación se muestra la sintaxis básica.

SELECT `column_name|value|expression` [AS] `alias_name`;

AQUÍ

  • “SELECT `column_name|value|expression`” es la instrucción SELECT estándar, que puede ser un nombre de columna, un valor o una expresión.
  • "[COMO]" es la palabra clave opcional antes del nombre del alias.
  • “`alias_nombre`” es el alias que se devuelve en el conjunto de resultados como nombre del campo.

La misma consulta con un nombre de columna más significativo:

SELECT Concat(`title`, ' (', `director`, ')') AS `Concat`, `year_released` FROM `movies`;

Obtenemos el siguiente resultado.

concat año_de lanzamiento
Piratas del Caribe 4 (Rob Marshall) 2011
Olvidando a Sarah Marshal (Nicholas Stoller) 2008
NULL 2008
Code Nombre Black (Edgar Jimz) 2010
NULL 2007
NULL 2007
NULL 2007
Honey mooners (John Schultz) 2005
NULL 2012

Obtener la lista de miembros que muestra el año de nacimiento

Supongamos que queremos una lista de todos los miembros que muestre el número de membresía, los nombres completos y el año de nacimiento. Podemos usar la función de cadena LEFT para...tract el año de nacimiento del campo de fecha de nacimiento.

SELECT `membership_number`,`full_names`,LEFT(`date_of_birth`,4) AS `year_of_birth` FROM members;

AQUÍ

  • “IZQUIERDA(`fecha_de_nacimiento`,4)” <font dir="auto" style="vertical-align: inherit;">las </font> Función de cadena IZQUIERDA Acepta la fecha de nacimiento como parámetro y devuelve solo 4 caracteres desde la izquierda.
  • “COMO `año_de_nacimiento`” son los nombre de alias de columna regresó en nuestros resultados. El La palabra clave AS es opcional; puedes omitirlo y la consulta seguirá funcionando.

Ejecutando la consulta en MySQL La comprobación realizada en Workbench con la base de datos myflixdb nos proporciona los resultados que se muestran a continuación.

número de socio nombres completos año de nacimiento
1 Janet jones 1980
2 Janet Smith Jones 1980
3 Roberto Phil 1989
4 gloria williams 1984

Las consultas escritas a mano son solo una de las maneras de obtener un conjunto de resultados. Workbench también puede generar la consulta automáticamente.

SQL usando MySQL Banco de trabajo

ahora vamos a usar MySQL Workbench para generar el script que muestra todos los nombres de los campos de nuestra tabla de categorías.

1. Haga clic con el botón derecho en la tabla Categorías. Haga clic en “Seleccionar filas – Limitar a 1000”.

2. MySQL Workbench crea automáticamente una consulta SQL y la pega en el editor.

3. Los resultados de la consulta se muestran en la cuadrícula que aparece debajo del editor.

SQL utilizando MySQL Banco de trabajo

Como muestra la captura de pantalla, no escribimos nosotros mismos la sentencia SELECT. MySQL Workbench lo generó por nosotros.

¿Por qué usar el comando SQL SELECT cuando tenemos MySQL ¿Banco de trabajo?

Quizás te estés preguntando por qué deberías aprender el comando SQL SELECT cuando una herramienta como MySQL Workbench devuelve los mismos resultados sin ningún conocimiento del lenguaje SQL. Ese atajo es posible, pero aprender el comando SELECT te da mas flexibilidad y control sobre tu Sentencias SELECT de SQL.

MySQL Workbench entra en la categoría de “Consulta por ejemploHerramientas ” (QBE). Su objetivo es generar sentencias SQL más rápidamente y aumentar la productividad del usuario.

Aprender el comando SQL SELECT te permite crear consultas complejas que no se pueden generar fácilmente mediante utilidades de consulta por ejemplo como MySQL Banco de trabajo.

Para mejorar la productividad, puedes generar el código en MySQL Banco de trabajo, luego personalizan a cumplir con sus requisitosEso solo es posible una vez que se comprende cómo funcionan las sentencias SQL.

¡Comprende la MySQL Instrucción SELECT

Preguntas Frecuentes

Generalmente sí. SELECT * lee todas las columnas, incluidos los campos de texto y BLOB grandes que quizás no necesites, y bloquea los índices de cobertura. Nombrar las columnas reduce el tamaño del conjunto de resultados y acelera la consulta.

Las palabras clave como SELECT y FROM no distinguen entre mayúsculas y minúsculas. Las comparaciones de cadenas siguen la intercalación de la columna, por lo que una intercalación que no distingue entre mayúsculas y minúsculas, como utf8mb4_0900_ai_ci, trata a "Janet" y "janet" como iguales.

Un índice faltante es la causa habitual. Ejecute EXPLAIN antes de la consulta para ver si MySQL Realiza un escaneo completo de la tabla, luego indexa las columnas filtradas o unidas y devuelve solo las filas que necesita.

Sí. Los asistentes de conversión de texto a SQL transforman una solicitud simple en una instrucción SELECT una vez que conocen su esquema. RevRevisa las uniones y los filtros generados, porque un modelo de IA puede inventar nombres de columnas que no existen.

No. La IA elabora una consulta rápidamente, pero aún así debes verificar la lógica, las uniones y el rendimiento en MySQL Banco de trabajoConocer SELECT es lo que te permite detectar un resultado erróneo antes de que llegue a producción.

Resumir este post con: