Como se ha mencionado anteriormente, el diseño de una base de datos exitosa no solamente se refiere a la cantidad de tablas que la componen, sino a la estructura que pueda mantener la integridad de los datos con el fin de que las empresas tomen las mejores decisiones con respecto a proyectos, área comercial, atención a clientes, etc. Por ello, es sumamente importante definir un medio de comunicación eficiente entre los programadores y la base de datos, de tal manera que se obtenga como resultado información útil.

Lo anterior se da a través de una serie de preguntas y solicitudes que el sistema de BD responderá de acuerdo con ciertas instrucciones, es decir, la comunicación es bidireccional como, por ejemplo, las interacciones que tienes con tu teléfono móvil a través de consultas de información de contactos o de correos electrónicos para comunicarte con otras personas: son accesos directos de los datos a través de este diálogo entre humanos y tecnología. En este tema, conocerás más sobre cómo realizar estas conversaciones a través del lenguaje SQL de manera correcta y eficiente.

Explicación

Estructura de una consulta

De acuerdo con DataScientest (2021), las aplicaciones actuales pueden ser programadas en lenguajes como Python y PHP, entre otros. Sin embargo, la base de todo esto fue el lenguaje SQL, que iniciaba la creación de consultas específicas con lenguajes que solamente comprendían lo que SQL les comunicaba. Hoy en día, este tema ha evolucionado y las cosas han cambiado, pero es crucial comprender las bases de estas consultas para saber cómo se da la comunicación eficiente entre las bases de datos y los programas.

Como ya has visto, las bases de datos se componen por tablas, las cuales, a su vez, se integran por filas y columnas, para representar un conjunto de datos; por lo tanto, SQL permite la creación y manipulación de tablas en sentido básico. Para lograr lo anterior, se utilizan comandos como CREATE DATABASE para crear una base de datos o CREATE TABLE para crear tablas. Por su parte, el comando SELECT se utiliza para la búsqueda y extracción de datos de una base de datos, el comando UPDATE para la edición de los datos y el comando DELETE para el borrado de datos. Estos solamente son algunos ejemplos para que tengas una idea general de cómo funciona el lenguaje SQL, ya que estarás ahondando más en su estructura a lo largo de este tema.

Gracias al uso correcto de estos comandos, se puede obtener información útil de una base de datos. Resulta importante realizar las preguntas correctas y precisas para disminuir los márgenes de error; de tal forma que el manejador de la base de datos entregue información correcta que servirá para crear reportes para apoyar la toma de decisiones estratégicas en las empresas. Para lograr una extracción eficiente de las bases de datos, se deben establecer relaciones confiables en la estructura de la base de datos con el fin de arrojar reportes que contesten a preguntas relevantes del negocio como ¿cuál es el rango de edad de las personas que más consumen nuestros productos? o ¿de qué parte de la República Mexicana se realizan más pedidos? De esta forma, con el diseño adecuado, el gestor de la base de datos tendrá disponible la información una vez ejecutadas las consultas realizadas.

Las acciones que se pueden realizar con lenguaje SQL son lectura, altas, bajas, modificaciones, agrupamiento y ordenamiento de los datos, lo que ayudará a manipular los registros existentes para realizar cambios, consolidar la información cuando se necesite extraer de diferentes tablas o, incluso, eliminarla en caso de que sea obsoleta. Para hacer consultas en el gestor de base de datos, es necesario el uso de los elementos que se explican a continuación (Ebac, 2023).

Sintaxis. Para unificar varios registros que se localizan en una o varias tablas del sistema gestor de base de datos, se utiliza la instrucción SELECT de MySQL, dando flexibilidad al seleccionar los campos que se quieren incluir o excluir. Se presenta la sintaxis más simple:

SELECT campos
FROM tablas
[WHERE condiciones];

En primer lugar, se tienen los campos, que son las columnas o el cálculo que se desea extraer. En caso de querer seleccionar todas las columnas, se escribe un asterisco (*). Ejemplo:

SELECT *
FROM CLIENTES
WHERE ciudad=’Colima’;

De las tablas, se extraerán los registros; se debe especificar cuando menos una. En el ejemplo mencionado, la tabla se llama CLIENTES.

De acuerdo con Hostinger (2023), las principales ventajas al utilizar una consulta son:

  • Poder revisar diferentes tablas de manera simultánea.
  • Hacer el filtrado de registros que solo contengan ciertos campos y con determinados criterios.
  • Automatizar las tareas de gestión de datos y realizar cálculos.

Para la consulta de información de dos o más tablas, necesitarás usar la instrucción SELECT. Deberás tomar en cuenta las llaves predefinidas y las relaciones que existen entre dichas tablas. Esta unión se realiza a través de la instrucción JOIN, que refleja expresamente su unión.

La relación de las tablas se especifica a través del comando JOIN, que permite identificar el tipo de relación entre ellas. Para dos o más tablas, se usa la sintaxis del siguiente ejemplo, en el que se define la relación de las llaves primarias o foráneas que se han especificado para dichas tablas. Por lo tanto, es posible relacionarlas para la ejecución de las consultas.

SELECT tabla1.columna(s), tabla2.columa(s);
FROM tabla1
INNER JOIN tabla2
ON tabla1.columna = tabla2.columna

Ten en cuenta que, para obtener más variaciones de resultados de consultas, puedes combinar los comandos, por ejemplo, el comando SELECT con otros como AND o SUM para agregar datos o combinar resultados. A lo largo de este tema, se explicará a detalle el uso de estos comandos para obtener mejores resultados en consultas (Hostinger, 2023).

Selecciona información simple con SELECT

Según explica Coder (2023), el comando SQL es una sentencia fundamental utilizada para recuperar datos de una o más tablas en una base de datos, teniendo como función principal la extracción de información a través de las consultas creadas con base en las condiciones y criterios que se hayan especificado. Se considera una instrucción esencial para obtener información de la base de datos y presentarla de manera amigable a los usuarios. Su sintaxis básica es la siguiente:

SELECT [columna1, columna2, ...] FROM [tabla];

Donde:

  • Columnas indica las columnas específicas de las que se recuperarán los datos. Recuerda que puedes utilizar un asterisco (*) para especificar todas las columnas de una tabla.
  • Tabla se refiere a la tabla de la cual se recuperarán los datos.

Ejemplo:

SELECT *
FROM EMPLEADOS

El asterisco (*) aparece como un comodín para seleccionar todas las columnas de la tabla; sin embargo, en muchos casos, será necesario especificar las columnas que necesites, ya que esto ayudará a reducir el tiempo y los recursos para ejecutar la consulta.

En caso de buscar los registros de la tabla EMPLEADOS con cada una de sus columnas, la sintaxis se escribiría de la siguiente manera:

SELECT id, nombre, edad, salario, fecha_contratacion, email, estatus
FROM EMPLEADOS;

Cláusulas en una sentencia SELECT

La instrucción SELECT cuenta con la facilidad de realizar la extracción de datos y, tal como se mencionó anteriormente, lo hace a través de condiciones y criterios por medio de cláusulas que se agregan a las sentencias. Las más utilizadas son (Coder, 2023):

  • WHERE
  • JOIN
  • GROUP BY
  • ORDER BY

La cláusula WHERE permite restringir los resultados devueltos por una consulta SQL a aquellos que cumplen con las condiciones establecidas. También se pueden concatenar diferentes condiciones a través del uso de AND y OR. Si quisieras obtener los registros de la tabla EMPLEADOS con estatus “inactivo”, se escribiría de la siguiente manera:

SELECT *
FROM EMPLEADOS;
WHERE estatus=’inactivo’;

O para obtener el listado de todos los empleados mayores de 35 años con un salario superior a $30,000.00, se puede utilizar AND de la siguiente forma:

SELECT *
FROM EMPLEADOS;
WHERE edad>30 AND salario > 30000;

Para el cálculo del total de salarios de los empleados, sería:

SELECT edad, SUM(salario) AS total_salario
FROM EMPLEADOS;

El siguiente ejemplo muestra cómo encontrar la edad y el salario mínimos. Aparece el comando AS, que sirve para guardar en una nueva variable el resultado del criterio que se especifica.

SELECT MIN(edad) AS edad_min, MIN(salario) AS salario_min
FROM EMPLEADOS;

Añade información a tablas con INSERT

El comando INSERT se usa para agregar nuevos registros en una tabla de la base de datos, lo que da como resultado la creación de nuevas filas con sus valores respectivos para cada columna. Su sintaxis básica es la siguiente:

INSERT INTO [tabla] (columna1, columna2, columna3) VALUES (valor1, valor2, valor3);

Donde:

  • Tabla es el nombre de la tabla en la que se realizará la inserción de datos.
  • Columna1, columna2, columna3, son los nombres de las columnas donde se insertarán los valores.
  • Valor1, valor2, valor 3 se refieren a los valores que se insertarán en las columnas correspondientes.

Observa el ejemplo de inserción de valores en la tabla EMPLEADOS:

INSERT INTO EMPLEADOS (nombre, edad, salario, fecha_contratacion, email, estatus)
VALUES ('Ana Martínez', 35, 60000.00, '2023-11-15', 'ana@example.com', activo),
('Juan López', 42, 70000.00, '2023-10-20', 'juan@example.com', inactivo),
('María Rodríguez', 28, 55000.00, '2023-09-05', 'maria@example.com', activo),
('Luisa García', 31, 52000.00, '2023-12-03', 'luisa@example.com', inactivo),
('Pedro Sánchez', 39, 68000.00, '2023-07-25', 'pedro@example.com', activo),
('Marta Fernández', 33, 62000.00, '2023-06-14', 'marta@example.com', inactivo),
('Carlos Pérez', 45, 75000.00, '2023-05-10', 'carlos@example.com', inactivo),
('Sofía Gómez', 27, 51000.00, '2023-04-22', 'sofia@example.com', inactivo),
('Javier Ruiz', 37, 64000.00, '2023-03-18', 'javier@example.com', activo),
('Laura López', 30, 53000.00, '2023-02-09', 'laura@example.com', inactivo);

En este ejemplo, se omite la columna ID porque esa columna se genera automáticamente y de manera consecutiva. También es importante asegurar que los valores que se capturan coincidan con los especificados en la definición de la tabla para evitar errores al momento de capturar información. Las fechas y los valores de texto deben especificarse con comillas simples.

Modifica información en tablas con UPDATE

De acuerdo con Coder (2023), el comando UPDATE se usa para modificar o actualizar los registros existentes en una tabla, permitiendo el cambio de los valores de las columnas en los registros que cumplan con una condición específica, algo útil para actualizar información de clientes, corregir errores o cambiar valores obsoletos. Su sintaxis básica es la siguiente:

UPDATE nombre_tabla
SET columna1 = nuevo_valor1, columna2 = nuevo_valor2, ...
WHERE condicion;

Donde:

  • nombre_tabla se refiere al nombre de la tabla en la que se realizará la actualización.
  • columna1, columna2 son las columnas por actualizar.
  • nuevo_valor1, nuevo_valor2 son los nuevos valores que se asignarán a las columnas.
  • condicion es la expresión que determina las filas que se actualizarán.

Por ejemplo, para actualizar los valores de los salarios de todos los empleados con un 10% de aumento, se escribiría:

UPDATE EMPLEADOS
SET salario = salario * 1.10;

Si se desea actualizar el salario solamente del empleado Pedro Sánchez, se escribe:

UPDATE EMPLEADOS
SET salario = 60000
WHERE nombre = 'Pedro Sánchez';

El uso de los comandos vistos hasta este momento no solo ayuda a extraer información relevante de las tablas de una base de datos, sino también, usándolo con los elementos adecuados, permite la optimización del gestor para realizar las consultas de forma óptima y aprovechar los recursos de la computadora donde se estén realizando, lo que garantizará una mayor rapidez en su ejecución.

Cierre

La extracción de información de las tablas de un sistema de base de datos es una de las actividades más recurrentes que cualquier administrador de bases de datos necesita realizar para proveer información oportuna a las empresas. En este sentido, la actualización constante de la información, la creación de nuevos registros y las consultas optimizadas con funciones especiales se convierten en tareas de gran relevancia por el valor que aportan a cualquier empresa.

Recuerda que en todo momento las consultas deben enfocarse en conseguir la información demandada por los integrantes de la organización y, en caso de que no arrojen los datos como se esperan, es probable que se deba hacer una revisión de su estructura o de la carga de datos para poder realizar una optimización de diseño congruente con las especificaciones de los usuarios.

Checkpoint

Asegúrate de:

  • Entender y aplicar la instrucción SELECT para la realización de consultas de forma adecuada.
  • Identificar los comandos INSERT y UPDATE para manipular los registros de manera exitosa.
  • Aplicar los comandos en consultas optimizadas que arrojen resultados de valor para todos los usuarios.

Referencias bibliográficas

  • Coder, D. (2023). Sentencias DML en SQL (INSERT, SELECT, UPDATE y DELETE). Recuperado de https://medium.com/@diego.coder/sentencias-dml-en-sql-insert-select-update-y-delete-2324e3c7dbb3
  • DataScientest. (2021). SQL: todo lo que necesitas saber sobre el lenguaje de programación de bases de datos. Recuperado de https://datascientest.com/es/sql-todo-lo-que-necesitas-saber-sobre-el-lenguaje-de-programacion-de-bases-de-datos
  • Ebac. (2023). ¿Qué son las consultas SQL y cómo usarlas? Recuperado de https://ebac.mx/blog/consultas-sql
  • Hostinger. (2023). ¿Qué es una consulta en base de datos? Recuperado de https://www.hostinger.mx/tutoriales/que-es-consulta-base-de-datos/

Tecmilenio no guarda relación alguna con las marcas mencionadas como ejemplo. Las marcas son propiedad de sus titulares conforme a la legislación aplicable, estas se utilizan con fines académicos y didácticos, por lo que no existen fines de lucro, relación publicitaria o de patrocinio.

Los siguientes enlaces son externos a la Universidad Tecmilenio, al acceder a ellos considera que debes apegarte a sus términos y condiciones.

Lecturas

Videos

Tecmilenio no guarda relación alguna con las marcas mencionadas como ejemplo. Las marcas son propiedad de sus titulares conforme a la legislación aplicable, estas se utilizan con fines académicos y didácticos, por lo que no existen fines de lucro, relación publicitaria o de patrocinio.