Hola, ¿cómo están? ¡Bienvenidos! Dando continuidad al curso de MySQL 8; hoy veremos lo que son la consulta de datos utilizando la cláusula SELECT en MySQL.
¡Empecemos!
¿Qué es cláusula SELECT?
La instrucción de selección SELECT es una forma habitual de recuperar información procesada de una base de datos relacional. Es una de las cláusulas más importantes y fundamentales en el lenguaje de consultas estructuradas (SQL) y se utiliza principalmente para realizar consultas y extraer información específica de una o varias tablas en una base de datos.
Sintaxis de la instrucción SELECT
La sintaxis básica de la cláusula SELECT es la siguiente:
SELECT columna1, columna2, ..., columnaN FROM nombre_tabla;
Existen varias estructuras asociadas a la consulta SELECT, y su uso depende mucho de la información que se desea obtener de una base de datos. Las sintaxis de una consulta SELECT pueden ser desde las más básicas hasta las más complejas, utilizando instrucciones como WHERE, ORDER BY, GROUP BY, HAVING, JOIN, UNION, etc.
Una sintaxis más completa de la cláusula SELECT es la siguiente:
SELECT [ ALL / DISTINC ] [ * ] / [Lista_Columnas] AS [Expresion] FROM Nombre_Tabla WHERE Condiciones ORDER BY Lista_Columnas [ ASC | DESC ]
Una sintaxis más compleja de una cláusula SELECT es la siguiente:
SELECT [ ALL / DISTINC ] [ * ] / [Lista_Columnas] AS [Expresion] FROM Nombre_Tabla WHERE Condiciones [AND | OR] GROUP BY Nombre_Campo HAVING Condicion[ AND|OR] ORDER BY Lista_Columnas [ ASC | DESC ]
Ejemplos de sentencias SELECT
Antes de comenzar a realizar consultas a la base de datos, ingresaremos más datos a la tabla “Clientes” y “Servicios” con las siguientes consultas:
INSERT INTO clinica_veterinaria.clientes (`nombre`, `apellido`, `zona`, `direccion`, `telefono`) values ('Ana Maria', 'Villca', 'Zona Central', 'Libertador #142', '767721111');
INSERT INTO clinica_veterinaria.clientes (`nombre`, `apellido`, `zona`, `direccion`, `telefono`) values ('Juan', 'Marc', 'Zona Cartagena', 'Miraflores #222', '7677333333');
INSERT INTO clinica_veterinaria.clientes (`nombre`, `apellido`, `zona`, `direccion`, `telefono`) values ('Hugo', 'Zoto', 'Zona Cartagena', 'Cartagena s/n', '7677444444');
INSERT INTO clinica_veterinaria.clientes (`nombre`, `apellido`, `zona`, `direccion`, `telefono`) values ('Bertha', 'Hernandez', 'Zona Rosales', 'De la rosa #144', '67676666777');
INSERT INTO clinica_veterinaria.clientes (`nombre`, `apellido`, `zona`, `direccion`, `telefono`) values ('Jordy', 'Mane', 'Zona Central', 'Libertador #12333', '7677773333');
INSERT INTO clinica_veterinaria.clientes (`nombre`, `apellido`, `zona`, `direccion`, `telefono`) values ('Carla', 'Oropeza Delgado', 'Zona Rosales', 'Junion #12244', '767711111');
INSERT INTO clinica_veterinaria.clientes (`nombre`, `apellido`, `zona`, `direccion`, `telefono`) values ('Maria', 'Delgado Miral', 'Zona Central', 'Libertador #144', '7644442233');
INSERT INTO clinica_veterinaria.clientes (`nombre`, `apellido`, `zona`, `direccion`, `telefono`) values ('Marco', 'Mane', 'Zona Central', 'Libertador #12333', '767722222221');
INSERT INTO clinica_veterinaria.clientes (`nombre`, `apellido`, `zona`, `direccion`, `telefono`) values ('Juan Manuel Mike', 'Dias Soliz', 'Zona Cartagena', 'Miraflores #144', '761111332233');
INSERT INTO clinica_veterinaria.clientes (`nombre`, `apellido`, `zona`, `direccion`, `telefono`) values ('Daniela', 'del Castillo', 'Zona Cartagena', 'Pasifico #55776', ''); En la tabla “Servicios”
INSERT INTO clinica_veterinaria.servicios (`nombre`, `costo`, `detalle`) values ('Transporte', 50.00, '');
INSERT INTO clinica_veterinaria.servicios (`nombre`, `costo`, `detalle`) values ('Estética y Spa', 150.00, '');
INSERT INTO clinica_veterinaria.servicios (`nombre`, `costo`, `detalle`) values ('Guardería', 30.00, '');
INSERT INTO clinica_veterinaria.servicios (`nombre`, `costo`, `detalle`) values ('Vacunas', 15.00, '');
INSERT INTO clinica_veterinaria.servicios (`nombre`, `costo`, `detalle`) values ('Curaciones', 75.00, ''); Consultas básicas SELECT
Por ejemplo, quiero obtener todos los datos de la tabla “Clientes”:
SELECT * FROM clinica_veterinaria.clientes;
Veamos otro ejemplo, quiero obtener los nombre y apellidos de todos los clientes:
SELECT clinica_veterinaria.clientes.nombre, clinica_veterinaria.clientes.apellido FROM clinica_veterinaria.clientes;
Cláusula WHERE
Las consultas SELECT con cláusula WHERE son instrucciones en SQL que permiten recuperar datos específicos de una base de datos mediante la aplicación de condiciones o filtros. Por ejemplo, quiero obtener los datos de la tabla “Clientes” en la que el “Id” del cliente es igual a 3.
SELECT * FROM clinica_veterinaria.clientes WHERE clinica_veterinaria.clientes.id = 3;
Veamos otro ejemplo, en el caso que se quiera obtener los datos de la tabla “Clientes” en la que el apellido sea igual a “Mane”.
SELECT * FROM clinica_veterinaria.clientes WHERE clinica_veterinaria.clientes.apellido = 'Mane';
También se puede añadir la sentencia LIKE a la consulta para buscar coincidencias; por ejemplo, quiero obtener los datos de la tabla “Clientes” en la que el nombre coincida con “Maria”.
SELECT * FROM clinica_veterinaria.clientes WHERE clinica_veterinaria.clientes.nombre LIKE '%maria%';
Cláusula ORDER BY
De igual forma, se puede añadir la sentencia ORDER BY a la consulta, a fin de ordenar los elementos de la consulta. Por ejemplo, quiero obtener todos los datos de la tabla “Clientes” ordenados de manera ascendente por su nombre.
SELECT * FROM clinica_veterinaria.clientes ORDER BY clinica_veterinaria.clientes.nombre ASC;
Asimismo, se puede añadir la sentencia WHERE para obtener todos los datos de la tabla “Clientes” en la que el campo zona coincida con “central”; los datos aparecerán ordenados de manera ascendente por apellido.
SELECT * FROM clinica_veterinaria.clientes WHERE clinica_veterinaria.clientes.zona like "%central%" ORDER BY clinica_veterinaria.clientes.apellido ASC;
Para ver los resultados de las consultas SELECT podemos utilizar la herramientas de MySQL Workbench.
De esta manera hemos echado un vistazo a ¿Cómo realizar consultas SELECT?. En el futuro, continuaremos practicando con consultas SELECT más complejas, lo que nos permitirá explorar todas las posibilidades que ofrece esta instrucción para recuperar y analizar datos de manera eficiente y precisa.
En la siguiente clase veremos Operadores Relacionales SQL.
¡Te espero en la próxima!
Saludos y éxitos
Victor Peña
Desarrollador de software Backend Developer, experto en Laravel Framework, PHP, JavaScript y MySQL. Creador de contenidos de emprendimiento y desarrollo de software.
