SQL

¿Qué es SQL y por qué es importante?

SQL, o Structured Query Language (Lenguaje de Consulta Estructurada), es el lenguaje estándar utilizado para interactuar con bases de datos relacionales. Con SQL, puedes realizar una amplia variedad de operaciones, desde la consulta y manipulación de datos hasta la definición y control de la estructura de la base de datos.

¿Para qué sirve SQL?

SQL es esencial para gestionar datos de manera eficiente. Entre sus principales usos se incluyen:

  • Consulta de datos: Recuperar información específica de la base de datos.

  • Manipulación de datos: Insertar, actualizar y eliminar datos.

  • Definición de datos: Crear y modificar la estructura de las bases de datos, como tablas y vistas.

  • Control de acceso: Gestionar los permisos de los usuarios.

  • Gestión de transacciones: Asegurar la integridad y coherencia de los datos mediante el control de transacciones.

Breve Historia de SQL

SQL fue desarrollado en la década de 1970 por IBM, originalmente bajo el nombre SEQUEL (Structured English Query Language). Este lenguaje formó parte del proyecto System R de IBM, diseñado para demostrar el uso de bases de datos relacionales. En 1986, SQL fue adoptado como un estándar por el American National Standards Institute (ANSI), y desde entonces ha evolucionado con nuevas actualizaciones y mejoras.

Componentes Principales de SQL

Para entender mejor cómo funciona SQL, es útil conocer sus principales componentes:

Comandos (Commands)

  • DDL (Data Definition Language): Incluye comandos como CREATE, ALTER y DROP para definir y modificar la estructura de la base de datos.

  • DML (Data Manipulation Language): Incluye comandos como SELECT, INSERT, UPDATE y DELETE para manipular los datos dentro de la base de datos.

  • DCL (Data Control Language): Incluye comandos como GRANT y REVOKE para gestionar los permisos de los usuarios.

  • TCL (Transaction Control Language): Incluye comandos como COMMIT, ROLLBACK y SAVEPOINT para gestionar las transacciones en la base de datos.

Cláusulas

  • SELECT: Especifica las columnas que se desean recuperar.

  • FROM: Indica la tabla de la cual se recuperan los datos.

  • WHERE: Filtra los registros basados en condiciones específicas.

  • ORDER BY: Ordena los resultados de la consulta.

  • GROUP BY: Agrupa los registros por columnas específicas.

  • HAVING: Filtra los grupos de registros.

  • JOIN: Combina filas de dos o más tablas.

Funciones

  • Funciones de agregación: AVG(), COUNT(), MAX(), MIN(), SUM().

  • Funciones de cadena: CONCAT(), LENGTH(), UPPER(), LOWER().

  • Funciones de fecha y hora: NOW(), DATEADD(), DATEDIFF().

Índice (Index)

  • Mejoran la velocidad de recuperación de datos.

CREATE INDEX idx_nombre ON usuarios(nombre);

Vista (View)

  • Tablas virtuales basadas en el resultado de una consulta.

CREATE VIEW vista_usuarios_activos AS
SELECT nombre, edad FROM usuarios WHERE activo = true;

Procedimiento almacenado (Procedure)

  • Conjuntos de instrucciones SQL almacenadas que se ejecutan como una unidad.

CREATE PROCEDURE agregar_usuario (IN nombre VARCHAR(50), IN edad INT)
BEGIN
    INSERT INTO usuarios (nombre, edad) VALUES (nombre, edad);
END;

Trigger (Disparador)

  • Instrucciones SQL que se ejecutan automáticamente en respuesta a ciertos eventos.

CREATE TRIGGER actualizar_fecha_modificacion
BEFORE UPDATE ON usuarios
FOR EACH ROW
SET NEW.fecha_modificacion = NOW();

Transacción (Transaction)

  • Conjuntos de operaciones SQL que se ejecutan de manera atómica.

START TRANSACTION;
UPDATE cuentas SET saldo = saldo - 100 WHERE id = 1;
UPDATE cuentas SET saldo = saldo + 100 WHERE id = 2;
COMMIT;

Last updated