S A D U R I A

DATA ANALYTICS

Data

SQL Conceptos Fundamentales

author
Victoria Navarro Ocampo
09 de Jun. de 2024 | 6 min de lectura
Bienvenidos al blog de Sabiduria.ar, una puerta de entrada al fascinante mundo de Data Analytics, Desarrollo Web, la Inteligencia Artificial para Negocios y la Filosofía.

En esta entrega, exploraremos qué es SQL, cómo se implementa a través de motores de bases de datos, qué tipos de datos existen, su sintaxis básica y operaciones avanzadas como los JOINs. ¡Comencemos!

SQL

SQL es el lenguaje estándar para interactuar con bases de datos relacionales.


¿Qué es SQL?

SQL (Structured Query Language) es el lenguaje estándar para interactuar con bases de datos relacionales, esencial en Desarrollo Web, Data Analytics y otros campos de datos.

Desarrollado por Donald D. Chamberlin y Raymond F. Boyce en la década de 1970 en IBM, inicialmente como SEQUEL (Structured English Query Language), SQL evolucionó para convertirse en el estándar en el manejo de bases de datos relacionales, crucial en aplicaciones empresariales y web para almacenar y recuperar información.

Las bases de datos consisten en tablas o entidades compuestas por filas y columnas, cada una con un esquema que define la estructura de los datos y la entidad del negocio que representan, como "Productos", "Clientes" o "Stock". Para un entendimiento complementario, recomendamos leer un artículo anterior sobre el modelado de datos y otros conceptos clave.

Entidades

Las bases de datos consisten en tablas o entidades compuestas por filas y columnas que se vinculan a través de Claves Primarias y Foráneas.

Entidades

Cada tabla o entidad representa una dimension o área del negocio

SQL se emplea ampliamente en sitios web para gestionar datos de usuarios, artículos y comentarios en tiempo real, mejorando la funcionalidad y permitiendo a los usuarios de sitios y aplicaciones web personalizar su experiencia al adaptar contenido y servicios según sus preferencias. También es muy utilizado en programas de contabilidad, recursos humanos y gestión de inventarios para un acceso eficiente a datos críticos. En sectores financieros como bancos, asegura la gestión eficiente de transacciones y datos de clientes. En el ámbito de la salud, permite el almacenamiento y acceso seguro a historias clínicas y registros médicos, por nombrar solo algunos ejemplos.


Motores y Software

Como lenguaje de programación, se implementa a través de sistemas de gestión de bases de datos (DBMS, por sus siglas en inglés). Estos sistemas permiten a los usuarios interactuar con las bases de datos utilizando SQL para realizar diversas operaciones, como crear tablas, insertar datos, actualizar registros y consultar información.

¿Qué es un motor de bases de datos?
Un motor de bases de datos se refiere al software que permite almacenar, organizar y gestionar grandes cantidades de información de manera estructurada y eficiente. Son intermediarios entre las aplicaciones y los datos, permitiendo a los desarrolladores a traves de sentencias, interactuar con las bases de datos de manera eficiente y segura. Actúan como el corazón de una base de datos, proporcionando la infraestructura necesaria para crear, manipular y acceder a los datos de forma segura y rápida. Cada motor de base de datos está diseñado con características específicas que lo hacen adecuado para diferentes tipos de aplicaciones y necesidades empresariales. Algunos están optimizados para manejar grandes volúmenes de transacciones, como en bancos o comercio electrónico, mientras que otros están diseñados para análisis de datos complejos o para aplicaciones que requieren alta disponibilidad y escalabilidad. Algunos de los motores de bases de datos más populares incluyen:

  • MySQL: Ampliamente utilizado en todo el mundo, conocido por su velocidad y confiabilidad para aplicaciones web. Preferido por gigantes como Facebook, Twitter y YouTube. Más información en MySQL.
  • PostgreSQL: Sistema avanzado de código abierto con soporte integral para transacciones ACID, ideal para aplicaciones que requieren alta integridad de datos y funcionalidades avanzadas. Más información en PostgreSQL.
  • Microsoft SQL Server: Integración perfecta con otros productos de Microsoft, con herramientas avanzadas de análisis y visualización de datos para aplicaciones críticas y complejas. Más información en Microsoft SQL Server.
  • Oracle Database: Excepcional rendimiento y escalabilidad, con características avanzadas de seguridad, ideal para grandes volúmenes de datos en aplicaciones empresariales. Más información en Oracle Database.
  • SQLite: Ligero y autónomo, utilizado en aplicaciones móviles y de escritorio para bases de datos locales. Más información en SQLite.
  • MariaDB: Fork de MySQL con mejoras en rendimiento y seguridad, totalmente de código abierto. Alternativa sólida a MySQL. Más información en MariaDB.
  • MongoDB: Base de datos NoSQL orientada a documentos, flexible y escalable horizontalmente. Ampliamente utilizado en aplicaciones web modernas. Más información en MongoDB.

Cada uno de estos sistemas tiene sus propias fortalezas y está diseñado para diferentes necesidades y requisitos de aplicación. La elección depende de factores como la escalabilidad, el tipo de datos y las características de seguridad y rendimiento necesarias.


Implementación

El primer paso para implementar SQL es instalar un motor de base de datos. Esto generalmente implica descargar el software desde el sitio web del proveedor y seguir las instrucciones de instalación. Por ejemplo, para MySQL o MariaDB, se pueden descargar los instaladores desde sus respectivos sitios web.

Una vez instalado el motor de base de datos, se configura de acuerdo a las necesidades del proyecto. Esto puede incluir la creación de usuarios y roles, la configuración de permisos y la definición de esquemas de base de datos.

Con la base de datos configurada, se puede comenzar a crear las estructuras de datos utilizando sentencias SQL. La siguiente sentencia por ejemplo, crea una base de datos llamada "mi_base_datos" y una tabla de "usuarios", con columnas para id, nombre, edad y email, cada una con su tipo de dato y restricciones:

                    
                    CREATE DATABASE mi_base_datos;
                    USE mi_base_datos;

                    CREATE TABLE usuarios (
                        id INT AUTO_INCREMENT PRIMARY KEY,
                        nombre VARCHAR(100),
                        edad INT,
                        email VARCHAR(100)
                    );
                    
                    

Al comenzar un proyecto es fundamental hacerlo en el orden y los pasos adecuados. Para ello, el lenguaje provee de cuatro sublenguajes que permiten realizar operaciones específicas para cada etapa del proyecto. Veamos de que se tratan...


Sublenguajes

Dentro de SQL, existen sublenguajes que cumplen funciones específicas. Se dividen en cuatro grupos, y se utilizan para realizar operaciones relacionadas con la definición de estructuras de datos, la manipulación de datos, el control de acceso y la gestión de transacciones. Estos sublenguajes son fundamentales para gestionar eficazmente los datos en una base de datos:

  • DDL (Data Definition Language): Define la estructura y organización de las bases de datos. Permite crear, modificar y eliminar esquemas de bases de datos, tablas, índices y otras estructuras. Las sentencias DDL más comunes son CREATE, ALTER y DROP, para crear, modificar y eliminar tablas respectivamente. Sería el equivalente a diseñar el plano de una casa antes de construirla.
  • DML (Data Manipulation Language): El DML es responsable de la gestión de los datos dentro de las estructuras definidas por el DDL. Permite la inserción, actualización, eliminación y consulta de datos en las tablas. Las principales sentencias de DML son SELECT, que recupera datos; INSERT, que agrega nuevos registros; UPDATE, que modifica datos existentes; y DELETE, que elimina registros. Estas operaciones se conocen colectivamente como CRUD, un acrónimo de Create, Read, Update y Delete, y representan las operaciones básicas que se pueden registrar en una base de datos. Un e-commerce, por ejemplo, deberá tener implementado el CRUD para usuarios, productos y pedidos para que poder crear, leer, actualizar y eliminar éstos tipos de registros de su base de datos. Esta parte permite "poblar" la base de datos con registros reales y manipularlos según las necesidades del negocio.
  • DCL (Data Control Language): Controla el acceso a los datos dentro de la base de datos mediante la concesión o revocación de permisos a usuarios y roles. Las sentencias DCL más comunes son GRANT y REVOKE, para otorgar y revocar permisos respectivamente. Esta parte es fundamental para garantizar la seguridad y la integridad de los datos almacenados, permitiendo a los administradores de bases de datos controlar quién puede acceder, modificar y eliminar información sensible.
  • TCL (Transaction Control Language): Maneja las transacciones dentro de la base de datos para asegurar la consistencia y seguridad de las operaciones. Las sentencias TCL más comunes son COMMIT, ROLLBACK y SAVEPOINT, para confirmar, deshacer y marcar puntos de guardado en transacciones respectivamente. Las transacciones son operaciones que se realizan en conjunto y que deben completarse en su totalidad para garantizar la integridad de los datos. Por ejemplo, si se realiza una transferencia de fondos entre cuentas bancarias, es fundamental que se realice de manera completa y segura, sin dejar la base de datos en un estado inconsistente. TCL permite controlar y gestionar estas operaciones de manera efectiva.
SQL Map

Mapa SQL.

Estas sentencias y palabras reservadas son las que conforman el lenguaje SQL. Pueden combinarse y anidarse para realizar operaciones complejas y avanzadas sobre los datos almacenados.


Joins (Uniones)

Como vimos, las bases de datos pueden estar compuestas por múltiples entidades separadas entre sí, pero que pueden complementarse para generar un mayor nivel de información. Los JOINs son operaciones que precisamente permiten combinar filas de dos o más entidades basándose en una condición relacionada entre ellas, generalmente a través de claves primarias y secundarias. Éstas claves son cruciales para lograr coincidencias unicas que vinculen el registro de una entidad con otro registtro de otra. En SQL éstas uniones se hacen a traves de distintos Joins, segun la necesidad del análisis de datos que se requiera. Los Joins más comunes son:

  • LEFT JOIN (o LEFT OUTER JOIN): Devuelve todas las filas de la tabla de la izquierda y las filas coincidentes de la tabla de la derecha. Si no hay coincidencias, se devuelve NULL para las columnas de la tabla de la derecha.
  • RIGHT JOIN (o RIGHT OUTER JOIN): Devuelve todas las filas de la tabla de la derecha y las filas coincidentes de la tabla de la izquierda. Si no hay coincidencias, se devuelve NULL para las columnas de la tabla de la izquierda.
  • FULL JOIN (o FULL OUTER JOIN): Combina el efecto de LEFT JOIN y RIGHT JOIN, devolviendo todas las filas de ambas tablas y completando con NULL donde no hay coincidencias.
  • LEFT EXCLUDING JOIN: Devuelve todas las filas de la tabla de la izquierda que no tienen coincidencias en la tabla de la derecha.
  • RIGHT EXCLUDING JOIN: Devuelve todas las filas de la tabla de la derecha que no tienen coincidencias en la tabla de la izquierda.
  • FULL EXCLUDING JOIN: Devuelve todas las filas de ambas tablas que no tienen coincidencias en la otra tabla.
Joins

Los JOINs son operaciones que permiten combinar filas de dos o más tablas basándose en una condición relacionada entre ellas.

Estos JOINs son esenciales para trabajar con bases de datos relacionales, ya que permiten integrar datos de manera eficiente, facilitando la creación de consultas complejas que pueden extraer y relacionar información de múltiples fuentes de datos.


Tipos de Datos

Los tipos de datos son fundamentales para definir cómo se almacenan y manipulan los valores dentro de una base de datos. Cada tipo de dato tiene características específicas que determinan el tipo de información que puede almacenar y cómo se interpreta. Por ejemplo, los tipos numéricos como INT y DECIMAL se utilizan para almacenar números enteros y decimales respectivamente, mientras que los tipos de cadena como CHAR y VARCHAR se usan para almacenar texto de longitud fija o variable. Además, SQL ofrece tipos de datos para manejar fechas y horas, como DATE y TIMESTAMP, permitiendo almacenar y manipular información temporal de manera precisa. Existen también tipos especializados como BOOLEAN para valores de verdad y BLOB para almacenar datos binarios grandes como imágenes o archivos. La elección del tipo de dato adecuado no solo garantiza la integridad de los datos, sino que también influye en el rendimiento y la eficiencia de las consultas y operaciones realizadas en la base de datos. Es crucial comprender los diferentes tipos de datos disponibles en SQL para diseñar esquemas de base de datos eficientes y efectivos que cumplan con los requisitos de almacenamiento y manipulación de datos de una aplicación o sistema.
Al momento de diseñar la estructura de una tabla con sus respectivos campos, es fundamental elegir el tipo de dato adecuado para cada columna, teniendo en cuenta el tipo de información que se almacenará y la forma en que se utilizará en las consultas y operaciones. Ésto además reduce posibles errores y asegura la integridad de los datos almacenados. Por ejemplo si tenemos el campo para registrar la edad de un usuario, al diseñarlo, especificaremos que solo podra almacenar valores enteros, y no decimales, o si tenemos un campo de email, especificaremos que solo podra almacenar cadenas de texto con un formato de email válido. Veamos los grupos más comunes:

  • Números enteros:
    • INT / INTEGER: Números enteros.
    • SMALLINT: Números enteros pequeños.
    • BIGINT: Números enteros grandes.
  • Números decimales:
    • DECIMAL / NUMERIC: Números decimales precisos.
    • FLOAT / DOUBLE / REAL: Números decimales con coma flotante.
  • Caracteres y cadenas de texto:
    • CHAR: Cadenas de texto de longitud fija.
    • VARCHAR: Cadenas de texto de longitud variable.
    • TEXT: Texto de longitud variable (para cantidades grandes).
  • Fecha y hora:
    • DATE: Fecha (año, mes, día).
    • TIME: Hora (hora, minuto, segundo).
    • DATETIME / TIMESTAMP: Fecha y hora combinadas.
  • Valores lógicos:
    • BOOLEAN / BOOL: Valores de verdad (TRUE, FALSE).
  • Datos binarios:
    • BLOB / BINARY LARGE OBJECT: Datos binarios grandes (imágenes, archivos).
  • Otros tipos especiales:
    • ENUM: Lista de valores permitidos.
    • SET: Conjunto de valores.
    • JSON: Almacena datos JSON.
    • GEOMETRY: Datos espaciales (para sistemas de información geográfica).

Estos tipos de datos varían en su capacidad para almacenar información específica y juegan un papel crucial en el diseño y la optimización de bases de datos SQL. La elección adecuada de tipos de datos asegura la precisión de los datos almacenados y optimiza el rendimiento de las consultas y operaciones sobre la base de datos.


Sintáxis

La sintaxis de SQL es relativamente sencilla. Como vimos anteriormente el lenguaje SQL se compone de una serie de sentencias, palabras reservadas y operadores que permiten realizar operaciones que van desde lo muy simple hasta combinaciones complejas de datos.
Veamos algunas de las sentencias más comunes y su estructura básica:

  1. Crear tabla:
                            CREATE TABLE Usuarios (
                                id INT PRIMARY KEY,
                                nombre VARCHAR(50),
                                edad INT,
                                email VARCHAR(100)
                            );
                          

    Esta sentencia crea una nueva tabla llamada Usuarios con cuatro columnas: id, nombre, edad y email. La columna id se define como clave primaria, lo que garantiza que cada registro tenga un identificador único.

  2. Agregar fila de usuario:
                            INSERT INTO Usuarios (id, nombre, edad, email)
                            VALUES (1, 'Juan Perez', 30, 'juan@example.com');
                                    

    Inserta un nuevo registro en la tabla Usuarios con los valores especificados para id, nombre, edad y email.

  3. Editar usuario con id:
                            UPDATE Usuarios
                            SET edad = 32
                            WHERE id = 1;
                            

    Actualiza el campo edad del usuario con id igual a 1 en la tabla Usuarios. En este caso, cambia la edad de Juan Perez a 32 años.

  4. Borrar usuario:
                            DELETE FROM Usuarios
                            WHERE id = 1;
                           

    Elimina el usuario con id igual a 1 de la tabla Usuarios. Esta operación elimina completamente el registro del usuario Juan Perez de la tabla.

  5. LEFT JOIN entre dos tablas A y B:
                            SELECT *
                            FROM TablaA A
                            LEFT JOIN TablaB B ON A.id = B.id;
                          

    Realiza un LEFT JOIN entre las tablas TablaA (alias A) y TablaB (alias B) utilizando la condición de unión A.id = B.id. Esto devuelve todas las filas de TablaA y las filas correspondientes de TablaB que coinciden en id. Si no hay coincidencia en TablaB, se devuelven valores NULL para las columnas de TablaB.

Estos son solo algunos ejemplos básicos que permiten entender cómo se utilizan las sentencias SQL para crear, insertar, actualizar, eliminar datos y realizar JOINs entre dos tablas. Existen muchas otras sentencias y operadores que permiten realizar consultas complejas y operaciones muy avanzadas sobre los datos existentes.


Conclusión

SQL es un lenguaje esencial para interactuar con bases de datos relacionales, permitiendo a los desarrolladores y analistas gestionar y manipular datos de manera eficiente y segura. Su sintaxis sencilla y potente facilita la creación de estructuras de datos, la inserción y actualización de registros, la consulta de información y la realización de operaciones avanzadas como JOINs entre tablas. No solo es fundamental para la gestión eficiente de datos en aplicaciones web y negocios, sino que también juega un papel crucial en la optimización de procesos, la toma de decisiones estratégicas y la mejora continua de operaciones empresariales. Su versatilidad y poder permiten a las organizaciones adaptarse y prosperar en un entorno cada vez más digital y competitivo.

Aquí concluye nuestro artículo sobre SQL y sus conceptos más fundamentales para comenzar a trabajar con bases de datos. Te esperamos el próximo Domingo para que leas una nueva entrega, donde continuaremos explorando temas de Data Analytics, Desarrollo Web, Inteligencia Artificial y Filosofía!

Si deseas obtener más información, no dudes en seguirnos en redes, y visitar nuestro blog en www.sabiduria.ar ¡Hasta el próximo artículo!

Te puede interesar
¿Te pareció inetersante? ¡Compartilo!
Dejanos tu opinión