robot de la enciclopedia para niños

SQL para niños

Enciclopedia para niños
Datos para niños
SQL
Sql data base with logo.svg
SQL ANATOMY wiki.svg
Desarrollador(es)
IBM
https://www.iso.org/standard/76583.html
Información general
Extensiones comunes sql
Paradigma Multiparadigma
Apareció en 1974
Diseñado por Donald D. Chamberlin
Raymond F. Boyce
Última versión estable SQL:2016 (2016)
Sistema de tipos Estático, Fuerte
Implementaciones Varias
Dialectos SQL-85, SQL-88, SQL-91, SQL:1999, SQL:2003, SQL:2006, SQL:2008, SQL:2011, SQL:2016
Influido por Datalog
Ha influido a Agena, CQL, LINQ, Windows PowerShell
Sistema operativo multiplataforma
SQL
Sql data base with logo.svg
Desarrollador
IBM
ISO/IEC 9075-1:2008
Información general
Extensión de archivo .sql
Tipo de MIME application/x-sql
Lanzamiento inicial 1986
Última versión SQL:2012
2012
Tipo de formato Base de datos
Extendido de lógica de primer orden
Estándar(es) ISO/IEC 9075
Formato abierto Sí 

SQL (que significa Structured Query Language en inglés, o "lenguaje de consulta estructurada" en español) es un lenguaje especial. Se usa para hablar con las bases de datos y pedirles información. También sirve para organizar, guardar y cambiar los datos que están dentro de ellas.

Imagina una base de datos como una biblioteca gigante y muy organizada. SQL es el lenguaje que usas para pedirle al bibliotecario (el sistema de gestión de la base de datos) que encuentre un libro, añada uno nuevo o cambie la información de uno que ya está.

SQL es muy importante porque permite manejar grandes cantidades de información de forma sencilla. Puedes pedirle que te muestre solo ciertos datos, que los ordene o que los agrupe.

SQL: El Lenguaje de las Bases de Datos

¿Qué es SQL y para qué sirve?

SQL es un lenguaje diseñado específicamente para trabajar con bases de datos relacionales. Estas bases de datos guardan la información en tablas, como si fueran hojas de cálculo conectadas entre sí.

Con SQL puedes:

  • Insertar datos: Añadir nueva información a una tabla.
  • Consultar datos: Buscar y obtener información específica.
  • Actualizar datos: Cambiar información que ya existe.
  • Borrar datos: Eliminar información de una tabla.
  • Crear y modificar la estructura: Diseñar cómo se guardará la información.

SQL es un lenguaje "declarativo". Esto significa que le dices a la base de datos qué quieres hacer, no cómo hacerlo. La base de datos se encarga de encontrar la mejor manera de realizar tu petición.

Un poco de historia de SQL

Los orígenes de SQL se remontan a los años 70. Un investigador llamado Edgar Frank Codd propuso una nueva forma de organizar los datos, llamada "modelo relacional". La empresa IBM se interesó en esta idea y desarrolló un lenguaje llamado SEQUEL (Structured English Query Language).

SEQUEL fue el antecesor de SQL. En 1979, la empresa Oracle fue la primera en lanzar un producto comercial que usaba este lenguaje. Poco después, SQL se convirtió en el lenguaje más popular para las bases de datos.

En 1986, SQL fue reconocido como un estándar por el Instituto Nacional Estadounidense de Estándares (ANSI). Al año siguiente, la Organización Internacional de Normalización (ISO) también lo adoptó. Desde entonces, el estándar de SQL se ha actualizado varias veces para incluir nuevas funciones.

Aquí puedes ver algunas de las versiones importantes de SQL:

Año Nombre Comentarios
1986 SQL-86 Primera versión estándar.
1989 SQL-89 Pequeña revisión.
1992 SQL-92 Una revisión importante, también conocida como SQL2.
1999 SQL:1999 Se añadieron funciones para búsquedas avanzadas y otras características.
2003 SQL:2003 Incluyó funciones para trabajar con datos XML.
2006 SQL:2006 Mejoró la forma de usar SQL con XML.
2008 SQL:2008 Permitió ordenar resultados de nuevas maneras.
2011 SQL:2011 Mejoras en el manejo de fechas y datos temporales.
2016 SQL:2016 Permite buscar patrones y trabajar con datos en formato JSON.

¿Cómo funciona SQL? Características principales

SQL es un lenguaje muy potente para acceder a las bases de datos. Algunas de sus características clave son:

  • Lenguaje de definición de datos (DDL): Permite crear, modificar o borrar la estructura de las tablas y otros objetos de la base de datos.
  • Lenguaje de manipulación de datos (DML): Sirve para consultar, insertar, actualizar y borrar los datos dentro de las tablas.
  • Integridad: Ayuda a asegurar que los datos guardados sean correctos y cumplan ciertas reglas.
  • Vistas: Permite crear "vistas" de los datos, que son como tablas virtuales que muestran solo una parte de la información.
  • Control de transacciones: Permite agrupar varias operaciones para que se realicen todas juntas o ninguna.
  • SQL incorporado y dinámico: Se puede usar SQL dentro de otros lenguajes de programación como C++, Java o PHP.
  • Autorización: Permite controlar quién puede ver o cambiar qué datos.

Tipos de datos en SQL

Cuando guardas información en una base de datos, debes decirle qué tipo de dato es. Esto ayuda a la base de datos a almacenar y manejar la información correctamente.

Aquí tienes algunos tipos de datos comunes en SQL:

Números enteros:

  • TINYINT: Números pequeños, como la edad de una persona.
  • SMALLINT: Números un poco más grandes.
  • MEDIUMINT: Números medianos.
  • INT: Números enteros comunes, como el número de habitantes de una ciudad.
  • BIGINT: Números muy grandes, para cosas como el número de estrellas en una galaxia.

Números con decimales (punto flotante):

  • FLOAT: Números con decimales pequeños.
  • DOUBLE: Números con decimales más grandes y precisos.
  • DECIMAL: Números con decimales que se guardan de forma muy precisa, ideales para dinero.

Fechas y tiempos:

  • DATE: Solo la fecha (año, mes, día).
  • DATETIME: Fecha y hora juntas.
  • TIMESTAMP: Una marca de tiempo que cuenta los segundos desde un punto de inicio.
  • TIME: Solo la hora (horas, minutos, segundos).
  • YEAR: Solo el año.

Cadenas de caracteres (texto):

  • CHAR (tamaño): Texto con una longitud fija, como un código postal.
  • VARCHAR (tamaño): Texto con una longitud variable, como un nombre.
  • TINYTEXT: Texto corto.
  • TEXT: Texto de longitud media.
  • BLOB: Para guardar datos binarios, como imágenes o archivos.
  • MEDIUMTEXT: Texto más largo.
  • MEDIUMBLOB: Datos binarios más grandes.
  • LONGTEXT: Texto muy largo.
  • LONGBLOB: Datos binarios muy grandes.

Otros tipos:

  • Enum: Permite elegir un valor de una lista predefinida.
  • Set: Similar a Enum, pero puedes elegir varios valores de la lista.
  • bit: Un número que puede ser 0, 1 o nulo.

¿Cómo se optimizan las consultas SQL?

Cuando le pides algo a una base de datos con SQL, no le dices exactamente cómo buscar la información. La base de datos tiene un "optimizador de consultas" que decide la mejor y más rápida manera de encontrar lo que pides.

Por ejemplo, si tienes una lista de nombres muy larga, el optimizador puede decidir usar un "índice" (como el índice de un libro) para encontrar los nombres más rápido. A veces, añadir índices puede hacer que las búsquedas sean más rápidas, pero que guardar nuevos datos sea un poco más lento. El optimizador busca el equilibrio.

Existe una extensión de SQL llamada FSQL (SQL difuso) que permite trabajar con información que no es totalmente precisa, usando la lógica difusa.

Comandos de SQL: Hablando con la Base de Datos

SQL se divide en dos grandes grupos de comandos: el Lenguaje de Definición de Datos (DDL) y el Lenguaje de Manipulación de Datos (DML).

Lenguaje de Definición de Datos (DDL): Construyendo la Base

El DDL se usa para crear y cambiar la estructura de la base de datos. Piensa en ello como diseñar y construir los estantes y secciones de tu biblioteca.

CREATE: Crear cosas nuevas

El comando CREATE te permite hacer cosas nuevas en la base de datos, como crear una nueva base de datos, una tabla o una vista.

Ejemplo (crear una tabla llamada clientes)
CREATE TABLE clientes;
ALTER: Modificar lo que ya existe

El comando ALTER sirve para cambiar la estructura de una tabla o de otros objetos. Por ejemplo, puedes añadir una nueva columna a una tabla o cambiar el tipo de datos de una columna.

Ejemplo (añadir una columna edad a la tabla alumnos)
ALTER TABLE alumnos ADD edad INT UNSIGNED;
DROP: Eliminar objetos

El comando DROP elimina objetos completos de la base de datos, como una tabla, una vista o un índice.

Ejemplo (eliminar la tabla alumnos)
DROP TABLE alumnos;
TRUNCATE: Borrar todo el contenido de una tabla

El comando TRUNCATE borra todos los datos de una tabla, pero deja la tabla vacía lista para usar. Es mucho más rápido que el comando DELETE si quieres borrar todos los registros.

Ejemplo (vaciar la tabla nombre_tabla)
 TRUNCATE TABLE nombre_tabla;

Lenguaje de Manipulación de Datos (DML): Usando la Información

El DML se usa para trabajar con los datos que ya están en la base de datos. Esto incluye buscar, añadir, cambiar y borrar la información.

SELECT: Buscando información

La sentencia SELECT es una de las más usadas. Te permite buscar y obtener datos de una o varias tablas.

Cómo usar SELECT: La forma básica
SELECT [{ALL|DISTINCT}]
    <nombre_campo>[, <nombre_campo>...]

FROM {<nombre_tabla>|<nombre_vista>}[,
    {<nombre_tabla>|<nombre_vista>}...]

[WHERE <condición> [{AND|OR} <condición>...]]

[GROUP BY <nombre_campo>[, <nombre_campo>...]]

[HAVING <condición> [{AND|OR} <condición>...]]

[ORDER BY {<nombre_campo>|<indice_campo>} [{ASC|DESC}][,
    {<nombre_campo>|<indice_campo>} [{ASC|DESC}]]];


  • SELECT: Indica qué columnas quieres ver. Puedes poner `*` para ver todas las columnas.
  • FROM: Indica de qué tabla o tablas quieres obtener los datos.
  • WHERE: Filtra los resultados, mostrando solo los que cumplen una condición.
  • GROUP BY: Agrupa filas que tienen los mismos valores en una o más columnas.
  • HAVING: Filtra los grupos creados por GROUP BY.
  • ORDER BY: Ordena los resultados. `ASC` es ascendente (A-Z, 0-9) y `DESC` es descendente (Z-A, 9-0).

Ejemplo: Para ver la matrícula, marca, modelo, color, kilómetros y número de plazas de los coches, ordenados por marca y luego por modelo:

SELECT
    matricula,
    marca,
    modelo,
    color,
    numero_kilometros,
    num_plazas
FROM
    coches
ORDER BY
    marca,
    modelo;

Si quieres ver todas las columnas, puedes usar `*`:

SELECT *
FROM
    coches
ORDER BY
    marca,
    modelo;
Filtrando con WHERE

La cláusula WHERE es como un filtro. Te permite obtener solo la información que te interesa.

Ejemplo: Para encontrar coches con una matrícula específica:

SELECT
    matricula,
    marca,
    modelo,
    color,
    numero_kilometros,
    num_plazas
FROM
    coches
WHERE
    matricula = 'MF-234-ZD'
    OR matricula = 'FK-938-ZL';

Esto mostrará los coches con matrícula 'MF-234-ZD' o 'FK-938-ZL'.

Puedes usar `NOT` para excluir resultados. Esta consulta mostrará todos los coches excepto el de matrícula 'MF-234-ZD':

SELECT
    matricula,
    marca,
    modelo,
    color,
    numero_kilometros,
    num_plazas
FROM
    coches
WHERE
    NOT matricula = 'MF-234-ZD';

La palabra clave DISTINCT se usa para mostrar solo valores únicos, eliminando duplicados.

SELECT DISTINCT marca, modelo FROM coches;

Esto mostrará cada combinación única de marca y modelo de coche.

Ordenando resultados con ORDER BY

La cláusula ORDER BY te permite decidir en qué orden se mostrarán los resultados. Puedes ordenar de forma ascendente (`ASC`) o descendente (`DESC`). Si no especificas nada, el orden es ascendente por defecto.

Ejemplo: Ordenar por marca ascendente y modelo descendente:

SELECT
    matricula,
    marca,
    modelo,
    color,
    numero_kilometros,
    num_plazas
FROM
    coches
ORDER BY
    marca ASC,
    modelo DESC;

También puedes ordenar por el número de la columna en la lista SELECT:

SELECT
    matricula,
    marca,
    modelo,
    color,
    numero_kilometros,
    num_plazas
FROM
    coches
ORDER BY 2;

Aquí, `ORDER BY 2` ordena por la segunda columna, que es marca.

Subconsultas: Preguntas dentro de preguntas

Una subconsulta es una sentencia SELECT que se usa dentro de otra sentencia SQL. Es como hacer una pregunta para obtener una respuesta, y luego usar esa respuesta para hacer otra pregunta más grande.

Ejemplo: Seleccionar matrículas y modelos de coches que tienen multas de más de 100 dólares:

SELECT c.matricula, c.modelo
FROM   coches AS c
WHERE  c.matricula IN
    (
        SELECT m.matricula
        FROM   multas AS m
        WHERE  m.importe > 100
    );

Primero, la consulta interna busca las matrículas de los coches con multas grandes. Luego, la consulta principal usa esas matrículas para encontrar los modelos de esos coches.

INSERT: Añadiendo nuevos datos

La sentencia INSERT se usa para añadir uno o más registros (filas) a una tabla en la base de datos.

Forma básica
INSERT INTO
    tabla(columnaA, [columnaB, ...])
VALUES
    ('valor1', ['valor2', ...]);

-- O también se puede utilizar como:
INSERT INTO tabla VALUES ('valor1', 'valor2');
Ejemplo (añadir un contacto a una agenda telefónica)
INSERT INTO agenda_telefonica (nombre, numero)
VALUES ('Roberto Jeldrez', 4886850);

También puedes añadir varias filas a la vez:

INSERT INTO
    agenda_telefonica
VALUES
    ('Roberto Fernández', '4886850'),
    ('Alejandro Sosa', '4556550');

Puedes copiar datos de una tabla a otra:

INSERT INTO phone_book2

SELECT *
FROM phone_book
WHERE name IN ('John Doe', 'Peter Doe');
UPDATE: Cambiando datos existentes

La sentencia UPDATE se usa para modificar los valores de registros que ya existen en una tabla.

Ejemplo (cambiar un valor en una tabla)
UPDATE My_table SET field1 = 'updated value' WHERE field2 = 'N';
DELETE: Eliminando datos

La sentencia DELETE borra uno o más registros de una tabla.

Forma básica
DELETE FROM tabla WHERE columna1 = 'valor1';
Ejemplo (borrar un registro específico)
DELETE FROM mi_tabla WHERE columna2 = 'N';

¿Qué son los disparadores (Triggers)?

Los disparadores o triggers son acciones automáticas que se ejecutan cuando ocurre algo en la base de datos. Por ejemplo, puedes configurar un disparador para que cada vez que se añada un nuevo registro a una tabla, se guarde automáticamente la fecha y hora de esa acción en otra tabla.

Sistemas de Bases de Datos que usan SQL

Muchos sistemas de gestión de bases de datos usan SQL. Algunos de los más conocidos son:

¿Por qué el SQL no es siempre igual en todas partes?

Aunque SQL es un estándar, no todas las bases de datos lo implementan exactamente igual. Es como si cada marca de coche tuviera su propio dialecto del español. Esto significa que un código SQL que funciona perfectamente en un sistema de base de datos podría necesitar pequeños ajustes para funcionar en otro.

Las razones de estas diferencias incluyen:

  • El estándar SQL es muy grande y complejo, y no todas las bases de datos lo implementan por completo.
  • Algunas partes del estándar no especifican cómo deben comportarse las bases de datos en ciertas situaciones, dejando que cada una decida.
  • Las empresas de bases de datos a veces prefieren mantener la compatibilidad con versiones anteriores de sus propios productos, en lugar de seguir el estándar al pie de la letra.
  • Los usuarios a menudo valoran más el rendimiento que la compatibilidad perfecta con el estándar.

Para ayudar con esto, existe un estándar llamado ODBC (Open Database Connectivity). Permite que las aplicaciones se conecten a diferentes bases de datos sin tener que preocuparse por las pequeñas diferencias en el lenguaje SQL.

Véase también

  • Lenguaje de definición de datos
  • Modelo de base de datos
  • Inyección SQL
kids search engine
SQL para Niños. Enciclopedia Kiddle.