
Algunas vez ya sea en tus inicios como desarrollador de software o bien sea en tus estudios universitarios, entre otros; te has encontrado con las siglas en Inglés SQL y no tienes muy claro de que trata o te haces la pregunta, ¿para que sirve?. Muy bien no te preocupes en breve te lo explicamos de la manera mas simple y directa, para que puedas desenvolverte en el resto del camino de la programación y no morir en el intento.
Tabla de contenido:
¿Qué es SQL?

El SQL significa lenguaje de consultas estructurado (en Inglés: Structure Query Language), es un lenguaje que se utiliza mayormente en la manipulación de datos y gestión de las base de datos relacional. El lenguaje de dominio especifico paso a ser estándar desde 1986 por el Instituto Nacional Estadounidense de Estándares (ANSI) y y de la Organización Internacional de Normalización (ISO) en 1987.
Uso y diferencias entre los principales sistemas de base de datos
El lenguaje de consultas tienen muchas aplicaciones en el desarrollo de software, ya sea desde aplicaciones web hasta en los aplicativos móviles, ya que en la gran mayoría de proyectos de desarrollo de sistemas informático se requiere guardar y obtener toda la información en una base de datos, con la finalidad de que los sistemas puedan escalar de acuerdo a la necesidad del proyecto. Pero, ¿Dónde se utiliza el lenguaje de consulta SQL?.
Existen diferentes sistema de base de datos, de lo más conocidos son MariaDB, MySQL, PostgreSQL, Microsoft SQL Server y Oracle; pero existen una gran variedad de sistemas de base de datos, algunos de ellos como SQL lite.

Es importante resaltar que para los diferentes tipos de sistema de base de datos tienen algunos cambios entre sentencias y la forma de definir comandos para gestionar la base de datos. Entre ellas es el caso de MySQL, Microsoft SQL Server y Oracle, que pueden tener algunas similitudes en su lenguaje pero tienen características que no son compatibles con los demás.
SQL Server / MS Access:
SELECT TOP 100 nombre, apellido, email, clave
FROM Usuarios
WHERE nombre = 'Carlos';
MySQL:
SELECT nombre, apellido, emial, clave
FROM Usuarios
WHERE nombre = 'Carlos'
LIMIT 100;
Oracle:
SELECT nombre, apellido, emial, clave
FROM Usuarios
WHERE NOWROWS <= 100 AND nombre = 'Carlos';
Sentencias principales
Para poder aprender rápidamente el lenguaje de consultas SQL, vamos a conocer las principales sentencias para poder hacer nuestras primeras consultas en una base de datos ya sea MySQL, PostgreSQL, entre otros.
Antes de empezar repasaremos rápidamente algunos términos técnicos importantes de saber:
Base de dato: Conjunto de datos, donde se guarda toda la información de nuestro sistema
Tablas: Tipo de modelado de datos donde se guardan los datos sobre un tema en concreto.
Registros: Las tablas almacenan registros en los cuales contienen diferentes campos de información
Campos: Es la composición de un registro y puede ser de diferentes tipos de datos, desde números naturales hasta números binarios.
Índices: Es una estructura de datos que mejora la velocidad de las operaciones, por medio de un identificador único de cada fila de una tabla.
Llave primaria: Es un campo especial o combinacion de varios campos de una tabla de base de datos relacional, definida para identificar en forma única cada registro en dicha tabla.
Muy bien ahora sí, empecemos con las sintaxis.
Lo primero que debemos conocer es crear una base de datos y al menos una tabla con diferentes registros, es decir, vamos a crear una base de datos, luego una tabla y finalmente insertar registros para poder hacer consultas.
Para crear una base de datos la sintaxis es la siguiente:
CREATE DATABASE MiPrimeraDB;
Ahora que hemos creado nuestra base de datos, crearemos nuestra primera tabla, que para este ejemplo, crearemos una tabla de usuarios:
CREATE TABLE Usuarios (
UsuarioID int,
Nombre varchar(50),
Apellido varchar(100),
Email varchar(100),
Clave varchar(255)
);
Muy bien en esta sentencia de código observamos que diferentes elementos que lo explicare brevemente a continuación:
CREATE TABLE [NUESTRO NOMBRE DE LA TABLA] (
[NOMBRE CAMPO] [TIPO DE DATO],
[NOMBRE CAMPO] [TIPO DE DATO],
...
);
CREATE TABLE [NOMBRE DE LA TABLA]: aquí estamos definiendo el nombre que va ocupar nuestra tabla.
[NOMBRE CAMPO] : En esta sección vamos a definir el nombre que va poseer el campo, puede obtener cualquier nombre o alias pero no que tenga caracteres especiales (!?”#, etc).
[TIPO DE DATO]: Aquí se define el tipo de datos que va a contener dicho campo, puede obtener enteros, cadena de textos, formato de fechas, entre otros. En algunos datos se requiere establecer una longitud máxima, por ejemplo:
Nombre varchar(50)
Los tipos de datos mas comunes son:
varchar: Cadena de texto
char: caracteres
int: números enteros
decimal: números decimales
datetime: fechas en el formato yyy-mm-dd hh:mm:ss
Para más información de los tipos de datos, lo pueden checar aquí
Finalmente vamos a crear un par de registro y consultaremos la información de la tabla con las siguientes líneas de código:
INSERT INTO Usuarios (`UsuarioID`, `Nombre`, `Apellido`, `Email`, `Clave`) VALUES (1,'Juan','Mendez','juan@correo.com','123456');
INSERT INTO Usuarios (`UsuarioID`, `Nombre`, `Apellido`, `Email`, `Clave`) VALUES (2,'Carlos','Hernandez','carlos@correo.com','654321');
Con esto lograremos registrar, dada la redundancia, dos registros en nuestra tabla de usuarios. Ahora vamos a hacer una consulta para ver los registros insertado anteriormente.
SELECT * FROM Usuarios;
Esto nos arrojara todos los registros de la tabla pero si queremos obtener registros seleccionados, es decir, solo aquellos registros que se llamen Juan, se hace lo siguiente:
SELECT * FROM Usuarios WHERE Nombre = 'Juan';
Diferencia entre SQL y NoSQL
Es posible que durante el aprendizaje de las base de datos con SQL surge la denominación NoSQL, ya que en la búsqueda de soluciones de un determinado problema, durante el desarrollo en algún momento se halla propuesto un sistema de base de datos no relacional (NoSQL). Primero veamos que significa base de dato relacional:

El lenguaje SQL como lo hemos mencionado anteriormente, funciona en los sistema de base de datos relacional, esto quiere decir que una base de datos debe cumplir con el modelo relacional. Las base de datos relacional almacena y proporciona acceso a puntos de datos relacionados entre sí, es decir, la información almacenada en tablas tienden a estar relacionadas en otras tablas compartiendo vistas e índices y de acuerdo a la lógica establecida se puede llevar un control de restricciones y actualizaciones entre los datos de la base de datos.
Pero para no extendernos demasiado ya que es un tema más denso solo basta entender que las base de datos relacionales sirven para guardar similitud con otras secciones de la base de datos, mediante índices que sirven como puente para llegar a una información relacionada entre tablas.
Para el caso de NoSQL ocurre todo lo contrario, las bases de dato no relacionales no tiene algún semejante entre los diferentes secciones o documentos (en NoSQL no existen las tablas, si no documentos) en la base de datos, esto es porque los datos no se le puede emplear índices.
Las bases de datos no relacionales son un sistema de almacenamiento de información que se caracteriza por no usar el lenguaje SQL para las consultas. Esto no significa que no puedan usar el lenguaje SQL, pero no lo hacen como herramienta de consulta, sino como apoyo.
Pero la gran pregunta es ¿Cuál de los dos me conviene?, eso dependerá de las necesidades del sistema y que lo cubriré en otra publicación referente a las base de datos en este sitio web.
Conclusiones
Sin duda el lenguaje SQL es esencial para poder realizar operaciones dentro de una base de datos ya sea relacional o no relacional siempre y cuando el sistema tenga la opción de poder usar el lenguaje de consulta. En la mayoría de los proyectos suelen utilizar base de datos relacionales, por lo cual el aprendizaje de SQL se hace vital para poder ser un desarrollador completo, sin embargo, existen carreras de especialización que solo se dedican en la administración de base de datos y por lo cual aprender este lenguaje de consulta es indispensable.