Tutorial de SQL

Tutorial de SQL: Fundamentos, consultas y buenas prácticas

El Lenguaje de Consulta Estructurado (SQL, por sus siglas en inglés: Structured Query Language) es un lenguaje de programación estándar utilizado para gestionar y manipular bases de datos relacionales. SQL permite realizar una amplia gama de operaciones como consultar, insertar, actualizar y eliminar datos. Es un lenguaje esencial para quienes trabajan con bases de datos, ya que proporciona las herramientas necesarias para interactuar con los datos de manera eficiente.

Este tutorial está diseñado para principiantes que deseen aprender los conceptos fundamentales de SQL. A través de ejemplos prácticos y explicaciones claras, exploraremos cómo utilizar SQL para realizar tareas comunes en la administración de bases de datos.

1. Introducción a SQL

SQL es un lenguaje declarativo, lo que significa que los usuarios especifican lo que desean lograr (por ejemplo, seleccionar datos o modificar registros) sin tener que indicar los pasos detallados para hacerlo. SQL se utiliza principalmente en sistemas de bases de datos como MySQL, PostgreSQL, Microsoft SQL Server, Oracle, entre otros.

Los datos en SQL se organizan en tablas, que son estructuras bidimensionales compuestas por filas y columnas. Cada tabla tiene un conjunto de columnas (campos) que definen los tipos de datos que almacenan (por ejemplo, texto, números, fechas), y cada fila representa un registro o entrada.

2. Sintaxis básica de SQL

Para comenzar a escribir consultas SQL, es fundamental entender la sintaxis básica. A continuación, describimos las palabras clave más comunes utilizadas en SQL:

  • SELECT: Se usa para seleccionar datos de una o más tablas.
  • FROM: Indica la tabla desde la cual se seleccionarán los datos.
  • WHERE: Se utiliza para aplicar filtros a los datos seleccionados.
  • INSERT INTO: Se usa para insertar nuevos registros en una tabla.
  • UPDATE: Permite modificar registros existentes.
  • DELETE: Elimina registros de una tabla.
  • CREATE TABLE: Define una nueva tabla.
  • DROP TABLE: Elimina una tabla de la base de datos.

Ejemplo básico de una consulta SQL:

SELECT nombre, edad
FROM empleados
WHERE ciudad = 'Madrid';

En este ejemplo, la consulta selecciona los campos «nombre» y «edad» de la tabla «empleados» donde la ciudad es «Madrid».

3. Crear y modificar tablas

Las tablas son el componente fundamental de las bases de datos relacionales. Una tabla está compuesta por columnas y cada columna tiene un tipo de datos específico (por ejemplo, entero, texto, fecha). Para crear una tabla, usamos el comando CREATE TABLE seguido de la definición de sus columnas.

Ejemplo de creación de tabla:

CREATE TABLE empleados (
    id INT PRIMARY KEY,
    nombre VARCHAR(100),
    edad INT,
    ciudad VARCHAR(100)
);

En este ejemplo, estamos creando una tabla llamada empleados con cuatro columnas: id, nombre, edad y ciudad. El id es una clave primaria, lo que significa que debe ser único para cada registro.

Modificar una tabla

Si deseas cambiar la estructura de una tabla (agregar, modificar o eliminar columnas), puedes usar el comando ALTER TABLE.

Ejemplo de agregar una columna:

ALTER TABLE empleados
ADD salario DECIMAL(10, 2);

Este comando agrega una columna llamada salario con un tipo de dato decimal a la tabla empleados.

Ejemplo de eliminar una columna:

ALTER TABLE empleados
DROP COLUMN ciudad;

Este comando elimina la columna ciudad de la tabla empleados.

4. Consultas SELECT

La instrucción más común en SQL es SELECT, que se utiliza para consultar datos de una o más tablas. Se puede usar con diferentes cláusulas para filtrar, ordenar o agrupar los resultados.

4.1. Seleccionar datos de una tabla

Para seleccionar todos los registros de una tabla, usamos:

SELECT * FROM empleados;

El asterisco (*) indica que deseamos seleccionar todas las columnas de la tabla.

4.2. Filtrar registros con WHERE

Para obtener un subconjunto de registros, usamos la cláusula WHERE para aplicar condiciones. La sintaxis básica es:

SELECT nombre, edad
FROM empleados
WHERE ciudad = 'Madrid';

En este ejemplo, estamos seleccionando los empleados cuya ciudad es «Madrid».

4.3. Operadores lógicos

SQL admite varios operadores lógicos que pueden combinarse con las condiciones WHERE:

  • AND: Se utiliza para combinar múltiples condiciones.
  • OR: Se utiliza para especificar condiciones alternativas.
  • NOT: Se usa para excluir registros que cumplan con una condición.

Ejemplo de uso de AND y OR:

SELECT nombre, edad
FROM empleados
WHERE ciudad = 'Madrid' AND edad > 30;

Este ejemplo selecciona los empleados de Madrid que tienen más de 30 años.

4.4. Ordenar resultados con ORDER BY

La cláusula ORDER BY se usa para ordenar los resultados de una consulta. Puedes ordenar los resultados en orden ascendente (ASC) o descendente (DESC).

SELECT nombre, edad
FROM empleados
ORDER BY edad DESC;

Este ejemplo ordena los empleados por edad en orden descendente.

4.5. Limitar resultados con LIMIT

El comando LIMIT se usa para restringir la cantidad de resultados devueltos por la consulta:

SELECT nombre, edad
FROM empleados
LIMIT 5;

Este ejemplo selecciona solo los primeros 5 registros de la tabla.

5. Manipulación de datos: INSERT, UPDATE y DELETE

5.1. Insertar registros con INSERT INTO

Para agregar nuevos registros a una tabla, usamos el comando INSERT INTO. La sintaxis básica es:

INSERT INTO empleados (id, nombre, edad, ciudad)
VALUES (1, 'Juan Pérez', 30, 'Madrid');

Este comando inserta un nuevo registro en la tabla empleados con los valores proporcionados.

5.2. Actualizar registros con UPDATE

Si deseas modificar los valores de un registro existente, puedes usar la instrucción UPDATE. La sintaxis básica es:

UPDATE empleados
SET ciudad = 'Barcelona', edad = 35
WHERE id = 1;

Este comando actualiza la ciudad y la edad del empleado con id igual a 1.

5.3. Eliminar registros con DELETE

Para eliminar registros de una tabla, usamos el comando DELETE. La sintaxis básica es:

DELETE FROM empleados
WHERE id = 1;

Este comando elimina el registro de la tabla empleados cuyo id es 1.

Advertencia: Si omites la cláusula WHERE, todos los registros de la tabla serán eliminados.

DELETE FROM empleados;

6. Operadores y funciones en SQL

SQL ofrece una variedad de operadores y funciones que permiten realizar operaciones avanzadas en las consultas. A continuación, se describen algunos de los más comunes.

6.1. Operadores de comparación

  • =: Igual a
  • <> o !=: Diferente de
  • >: Mayor que
  • <: Menor que
  • >=: Mayor o igual que
  • <=: Menor o igual que

6.2. Funciones de agregación

Las funciones de agregación operan sobre un conjunto de valores y devuelven un solo valor. Algunas funciones comunes incluyen:

  • COUNT(): Cuenta el número de registros.
  • SUM(): Suma los valores de una columna.
  • AVG(): Calcula el promedio de los valores de una columna.
  • MIN(): Devuelve el valor mínimo.
  • MAX(): Devuelve el valor máximo.

Ejemplo de uso de funciones de agregación:

SELECT COUNT(*) AS total_empleados
FROM empleados;

Este ejemplo cuenta el número total de empleados en la tabla.

6.3. Agrupar resultados con GROUP BY

El comando GROUP BY se utiliza para agrupar los resultados según una o más columnas. Esto es útil cuando se combinan funciones de agregación.

SELECT ciudad, AVG(edad) AS edad_promedio
FROM empleados
GROUP BY ciudad;

Este ejemplo calcula la edad promedio de los empleados en cada ciudad.

6.4. Filtrar resultados agrupados con HAVING

La cláusula HAVING se utiliza para filtrar los resultados de un GROUP BY:

SELECT ciudad, AVG(edad) AS edad_promedio
FROM empleados
GROUP BY ciudad
HAVING AVG(edad) > 30;

Este ejemplo selecciona las ciudades donde la edad promedio de los empleados es mayor a 30.

7. Buenas prácticas en SQL

A continuación, te proporciono algunas buenas prácticas para escribir consultas SQL eficientes y fáciles de mantener:

  1. Usar nombres significativos para las tablas y columnas: Nombres claros y descriptivos facilitan la comprensión del propósito de la base de datos.
  2. Normalizar las bases de datos: Evita la redundancia de datos y la anomalía de actualizaciones utilizando un diseño adecuado de la base de datos (por ejemplo, dividir las tablas en tablas relacionadas).
  3. Usar índices para mejorar el rendimiento: Los índices ayudan a acelerar las consultas de búsqueda, pero deben ser utilizados con precaución, ya que pueden afectar el rendimiento de las operaciones de inserción, actualización y eliminación.
  4. Evitar el uso de SELECT *: Es recomendable especificar las columnas que realmente necesitas en lugar de seleccionar todas las columnas de una tabla.

Conclusión

SQL es una herramienta poderosa para interactuar con bases de datos. Este tutorial ha cubierto los aspectos fundamentales de SQL, incluyendo la creación de tablas, la consulta de datos, y la manipulación de registros. También hemos explorado funciones y operadores que te permitirán realizar consultas más complejas.

Con una comprensión sólida de estos conceptos, estarás preparado para escribir consultas SQL eficientes y efectivas, lo que es una habilidad crucial para cualquier desarrollador o administrador de bases de datos. A medida que adquieras experiencia, podrás profundizar en conceptos más avanzados, como subconsultas, joins, transacciones y optimización de consultas.