Lenguaje SQL: qué es y cómo usarlo

Lenguaje SQL: qué es y cómo usarlo


lenguaje de programación Desarrolladores SQL

 

Structured Query Language, más conocido como SQL, es el lenguaje standard para la manipulación de los Database relacionales. Un Database es una estructura de datos que puede ser más o menos compleja, en la cual memorizar diferentes tipos de información. 

El concepto de almacenamiento ha jugado un papel fundamental en el desarrollo de las tecnologías de información actuales, apoyando la aparición de software y hardware cada vez más potentes que necesitaban seguir un enfoque diferente para organizar los datos.

Se lo debemos al informático Edgar F. Codd, investigador de IBM, quien en la década de 1970 creó la base del enfoque racional, introduciendo el concepto de una tabla basada en un conjunto rígido de reglas. 

Cada tabla se compone de filas, llamadas Record, en las que se almacenan datos.

Podéis imaginarla como un folio excel que organiza las informaciones en filas y columnas.

Ejemplo: tenéis que guardar los datos relativos a los componentes de un aula, cada fila de la tabla será un estudiante, mientras que cada columna representa una información relacionada con el estudiante; Podríamos tener una columna para el Nombre, una para el Apellido y una para el Sexo

Una cosa muy importante, se necesitará una columna para identificar unívocamente a un solo estudiante, para así prevenir casos de homonimia. 

Para resolver este problema, es una práctica común crear un campo que contenga un valor ID único.

Un ejemplo de tabla puede ser la siguiente: 

ID

Nombre

Apellidos

Sexo

1

Jose

López

M

2

Luisa 

López

F

3

Juan

López

M 

 Los datos en las diferentes tablas están relacionados a través de valores conectados entre ellos que permiten cruzar diferentes registros en diferentes tablas; además para facilitar la gestión de cantidades cada vez mayores de datos, han creado los potentes software denominados DBMS (Database Management System), ejemplos que seguramente conoceréis son Oracle, MySQL, SQLite y muchos más. 

Todos estos software se comunican con un solo lenguaje, el lenguaje SQL.

Lenguaje SQL

SQL (Structured Query Language) es un lenguaje que se acerca mucho al lenguaje del ser humano, por este motivo resulta de fácil comprensión incluso para quien está empezando. 

Se utiliza para realizar consultas o query al database, con el objetivo de recuperar datos, incluso entre más tablas, aprovechando las relaciones lógicas y sobre todo los operadores JOIN.

Existen diferentes tipos de operaciones que puede ser realizadas con el lenguaje SQL, las más comunes permiten:

  • Crear un Database y una Tabla del database
  • Añadir datos 
  • Actualizar datos 
  • Cancelar datos 
  • Extraer y leer específicos set de datos  

Estas operaciones entran en la categoría comúnmente conocida como CRUD: Create, Read, Update y Delete; palabra que ha adquirido su significado de carácter general para indicar todo lo que es posible hacer con un conjunto de datos.

Cada una de estas operaciones se conecta con un comando SQL:

  • SELECT: permite extraer datos
  • UPDATE: permite actualizar los datos
  • DELETE: permite cancelar datos
  • CREATE DATABASE: permite crear el database 
  • CREATE TABLE: permite crear tablas
  • INSERT INTO: permite añadir nuevos datos en un database

Otros comando útiles son:

  • CREATE INDEX: crea un índice, útil para acelerar las query
  • DROP INDEX: cancela un específico índice
  • ALTER DATABASE: permite modificar un database
  • ALTER TABLE: permite modificar un tabla

Una cosa muy importante, cada query SQL tiene que terminar con un punto y coma, además SQL es case-insensitive contra sus comandos, esto quiere decir que escribir SELECT o select lleva al mismo resultado. Sin embargo, es case-sensitive cuando se escriben los nombres de las tablas o de los campos de referencia.

Sintaxis del Select

SELECT * FROM students;

el simbolo * indica “todo”, esta select recuperará todos los registros de la tabla students.

Ejemplos de query SQL

Empezando por la creación de la tabla students, analizamos algunas query SQL y su sintaxis.

  • Creación tabla

CREATE TABLE students (

 id INTEGER,

 nombre TEXT,

 apellidos TEXT,

 sexo TEXT

);

Nota: La creación de esta tabla tiene que ser hecha dentro de un database anteriormente creado.

Procedamos ingresando algunos datos.

  • Entrada de Datos

INSERT INTO students (id, nombre, apellidos, sexo)

VALUES (1, 'Jose', 'Lopez', 'M');

  • Lectura de Datos

Select * from students;

Esta query extraerá indiscriminadamente todos los datos de la tabla students. Si por el contrario queremos leer solo un subconjunto, por ejemplo el nombre de los estudiantes, necesitaremos indicar el campo deseado, sustituyéndolo por el asterisco de la siguiente manera:  

Select nombre from students;

  • Modificar la Tabla

Si en el transcurso del trabajo os dais cuenta que necesitáis realizar un seguimiento de otros datos relacionados con los estudiantes, por ejemplo la edad, se necesitará añadir una nueva columna a la tabla estudiantes, para esto usaremos el comando ALTER TABLE:

ALTER TABLE students

ADD COLUMN edad INTEGER;

Ahora que tenemos una nueva columna tendremos que valorar el valor edad para los datos ya añadidos, para hacer esto nos serviremos del comando UPDATE: 

UPDATE students

SET edad = 18

WHERE id = 1;

Señalar que el uso del WHERE, una de las herramientas más potentes de SQL. Se usa para filtrar los recod en base a un criterio, en este caso usamos el identificador único ID, para estar seguros que nos referimos al estudiante buscado por nosotros.

Otro ejemplo de uso del WHERE, imaginemos recuperar todos los estudiantes que se llaman “José”

SELECT * FROM students WHERE nombre = "Giuseppe";

Atención al case-sensitive. Como hemos dicho anteriormente, en la query se necesita poner atención al case-sensitive de los campos añadidos, por ejemplo si en lugar de “José” hubiéramos escrito “josé”, la inicial minúscula, la query hubiera tenido un resultado diferente. ¡SQL es case-insensitive solo para lo que concierne sus comandos de propiedad!

Otro elemento fundamental en el conocimiento del lenguaje SQL son los vínculos.

Vínculos 

Los vínculos sirven para garantizar la integridad de las informaciones presentes en un database (data integrity) y por eso su fiabilidad.

Para garantizar esto, existen diferentes vínculos de integridad, o sea reglas que imponen los valores que pueden ser añadidos; es posible aplicar estas reglas singularmente en cada columna o incluso en más tablas.

Existen 3 tipos de vínculos para tener en mente:

  • Vínculos de integridad de las columnas: especificando los valores que pueden asumir singularmente las columnas. 

Ejemplo: DEFAULT | CHECK | NOT NULL

  • Vínculos de integridad sobre las tablas: especifican restricciones para aplicar sobre todas las filas de una tabla. 

Ejemplo: PRIMARY KEY | UNIQUE | CHECK

  • Vínculos de integridad referencial: imponen restricciones sobre los valores que una columna, en relación con otra columna, puede asumir. 

Ejemplo: FOREIGN KEY | REFERENCES

En la fase de realización del database, será tarea del programador implementar las diversas restricciones que el lenguaje SQL pone a disposición sobre los datos proporcionados.

Haciendo referencia al ejemplo anterior de la creación de la tabla students, probaremos a recrearla esta vez definiendo los vínculos.

CREATE TABLE students (

id INTEGER PRIMARY KEY,

nombre TEXT NOT NULL,

apellidos TEXT NOT NULL,

sexo TEXT,

edad INTEGER DEFAULT 16,

 CHECK (edad >= 16

);

En este ejemplo la PRIMARY KEY, dice a la tabla que aquel campo sirve para identificar de manera única una fila, garantizando que no podrán estar ID con el mismo valor. El vínculo NOT NULL garantiza que en el momento en el que se añaden datos, esos campos tendrán que ser obligatoriamente valorados. El vínculo DEFAULT garantiza que ese campo tenga un valor en el caso de que no se especificase durante la INSERT. Al final tenemos el vínculo CHECK que añade un límite de rango al valor que el campo edad podrá asumir. El incumplimiento de uno de estos vínculos bloqueará el proceso de ejecución de la query.

Hay otras palabras clave que SQL posee y que todos los que estén a punto de convertirse en desarrolladores web tendrían que conocer. 

AS: permite crear un alias para una columna o una tabla.

SELECT edad AS yearsOld

FROM students;

DISTINCT: permite filtrar los duplicados de una columna y devolver solo los valores únicos. 

SELECT DISTINCT nombre

FROM students;

LIKE: usado en el WHERE para confrontar valores que respetan un determinado pattern. En el siguiente ejemplo:

SELECT *

FROM students

WHERE nombre LIKE 'G%';

IS NULL y IS NOT NULL: usado en la WHERE para filtrar esos record que tienen un valor asignado o no asignado al campo indicado después del donde:  

SELECT *

FROM students

WHERE sexo IS NULL;

AND y OR: usado en la WHERE para añadir más criterios de valoración en las condiciones de filtro: 

SELECT *

FROM students

WHERE nombre LIKE 'G%'

AND edad > 16;

Existen otras palabras clave del lenguaje SQL como ORDER BY, LIMIT, BETWEEN etc… razón por la cual os aconsejo profundizar aprovechando los cientos de recursos online gratis y fácilmente accesibles. Mi página preferida es w3schools, donde podréis encontrar un elenco exhaustivo de todas las funcionalidades SQL con ejemplos y casos de uso.

Conclusiones

El conocimiento del lenguaje SQL es una de las competencias más importantes en absoluto para todos los que quieran empezar a trabajar con los datos, entre las cuales la categoría del desarrollador web, independientemente de que poco a poco vayan ganando terreno las bases de datos basadas en NoSQL, o sea que no usan SQL. 

No nos olvidemos de figuras como el Data Scientist o el Data Engineer, dos figuras siempre más requeridas en el mercado nacional e internacional con perspectivas de ganancias sobre la media.

Curso de programación Aulab Hackademy

Conviértete en Desarrollador weben 6 meses

Descubre el bootcamp de programación Hackademy

Programa Completo

© 2020 Aulab. Todos los derechos reservados • P.IVA: IT07647440721 • Política de privacidad