¿Problemas de visión? En Tecsify nos importa la inclusión de personas con discapacidad, por eso, ahora puedes esuchar los articulos narrados en tiempo real
El lenguaje de consulta estructurado o SQL (por sus siglas en inglés Structured Query Language) es un lenguaje declarativo de acceso a bases de datos relacionales que permite especificar diversos tipos de operaciones en ellas, en esta ocasión te explicaremos que es SQL y cuales son sus concepto y comandos básicos.
Podemos decir que SQL se trata de un lenguaje universal empleado en cualquier sistema gestor de bases de datos relacional, cuenta con un estándar definido a partir del cual cada sistema gestor ha desarrollado una versión propia, además, una de sus características es el manejo del álgebra y el cálculo relacional que permiten efectuar consultas con el fin de recuperar de forma sencilla información de interés de bases de datos, así como hacer cambios en ella.
También puede interesarte: Que son los códigos de estado HTTP y cuál es su significado
Primeramente clasifiquemos las instrucciones SQL según su propósito:
Existen tres tipos de comandos SQL:
Los DLL(Data Definition Language) que permiten crear y definir nuevas bases de datos, campos e índices. Los DML(Data Manipulation Language) que permiten generar consultas para ordenar, filtrar y extraer datos de la base de datos. Los DCL(Data Control Language) que se encargan de definir las permisos sobre los datos
Ahora que ya sabebmos los tipos de comandos, veamos las sentencias.
Sentencias en SQL:
Estas tienen la característica de que todas deben seguir unos simples patrones:
- Se empiezan por un verbo indicando la acción a realizar.
- Continúan completando con un objeto sobre el cual se realiza la acción.
- Se sigue por una serie de cláusulas, obligatorias y opcionales, que especifican a detalle lo que se quiere hacer.
Lenguaje de definición de datos (DDL):
El lenguaje de definición de datos (en inglés Data Definition Language, o DDL), es el que se encarga de la modificación de la estructura de los objetos de la base de datos. Incluye órdenes para modificar, borrar o definir las tablas en las que se almacenan los datos de la base de datos. Existen cuatro operaciones básicas: CREATE, ALTER, DROP y TRUNCATE.
CREATE (Crear):
Este comando crea un objeto dentro del gestor de base de datos. Puede ser una base de datos, tabla, índice, procedimiento almacenado o vista
La siguiente sentencia nos permite crear una base de datos llamada Frutas, que es nuestro objeto en concreto y luego especificar detalles (opcional):
CREATE DATABASE Vehiculos;
También podemos usar CREATE para crear una tabla, en este caso, la tabla Carros bajo los mismos criterios pero agregando la definición de las columnas de la Tabla en los paréntesis, en este caso creando 3 columnas con distintos tipos de datos:
CREATE TABLE Carros(
id INT,
placa VARCHAR(30),
activo BOOLEAN
);
DROP (Eliminar):
Este comando elimina un objeto de la base de datos. Puede ser una tabla, vista, índice, trigger, función, procedimiento o cualquier otro objeto que el motor de la base de datos soporte. Se puede combinar con la sentencia ALTER.
Estas dos sentencias siguientes permiten borrar la BD o la tabla sin necesidad de más especificaciones:
DROP DATABASE Vehiculos;
DROP TABLE Carros;
ALTER (Modificar):
Este comando permite modificar la estructura de un objeto. Se pueden agregar/quitar campos a una tabla, modificar el tipo de un campo, agregar/quitar índices a una tabla, modificar un trigger, etc.
La siguiente sentencia nos permitirá modificar la definición de la tabla que especifiquemos, en este caso modificamos la tabla para agregar la columna ciudad de tipo varchar:
ALTER TABLE Carros ADD color varchar(30);
Mientras que en esta sentencia podemos modificar la tabla para que la columna seleccionada pase a ser otro tipo de dato.
ALTER TABLE Carros ALTER COLUMN color int;
TRUNCATE:
Este comando trunca todo el contenido de una tabla. La ventaja sobre el comando DROP, es que si se quiere borrar todo el contenido de la tabla, es mucho más rápido, especialmente si la tabla es muy grande. La desventaja es que TRUNCATE sólo sirve cuando se quiere eliminar absolutamente todos los registros, ya que no se permite la cláusula WHERE. Si bien, en un principio, esta sentencia parecería ser DML (Lenguaje de Manipulación de Datos), es en realidad una DDL, ya que internamente, el comando TRUNCATE borra la tabla y la vuelve a crear y no ejecuta ninguna transacción.
TRUNCATE TABLE Carros;
Lenguaje de manipulación de datos DML(Data Manipulation Language):
Un lenguaje de manipulación de datos (Data Manipulation Language, o DML en inglés) es un lenguaje proporcionado por el sistema de gestión de base de datos que permite a los usuarios llevar a cabo las tareas de consulta o manipulación de los datos, organizados por el modelo de datos adecuado. El lenguaje de manipulación de datos más popular hoy día es SQL, usado para recuperar y manipular datos en una base de datos relacional.
En el DML tenemos los siguientes verbos para utilizar sobre los datos almacenados en sentencias:
INSERT (Insertar una nueva fila de datos):
Una sentencia INSERT de SQL agrega uno o más registros a una (y sólo una) tabla en una base de datos relacional.
INSERT INTO Carros (id, placa, activo) VALUES (323, 'P015416985', TRUE);
Si al insertar datos a una tabla estas seguro que vas a utilizar todas las columnas, no es necesario especificarlas y puedes escribir la sentencia ingresando los valores directamente, sin embargo, se debe tener cuidado de poner los valores en el orden de las columnas para que esto funcione.
DELETE (Eliminar filas de datos):
Una sentencia DELETE de SQL borra uno o más registros existentes en una tabla.
DELETE FROM Carros WHERE placa='P015416985';
Se debe tener cuidado con esta sentencia, el WHERE nos indica qué registro o registros se van a eliminar, si la olvidamos, eliminaremos todos los registros de la tabla. En el caso de este ejemplo se está eliminando el registro del empleado que habíamos insertado anteriormente.
UPDATE (Modificar filas de datos):
Una sentencia UPDATE de SQL es utilizada para modificar los valores de un conjunto de registros existentes en una tabla.
UPDATE Carros SET activo=FALSE WHERE placa='P015416985';
Debemos tener el mismo cuidado y utilizar WHERE para especificar el registro que queremos modificar como con DELETE.
SELECT (Seleccionar, obtener):
Las consultas de selección se utilizan para indicar al motor de datos que devuelva información de las bases de datos, esta información es devuelta en forma de conjunto de registros. Este conjunto de registros es modificable.
SELECT id, placa, activo from Carros WHERE placa='P015416985';
En este caso utilizamos el SELECT para seleccionar los datos mencionados de nuestra tabla Carros (con la cláusula FROM) pero solo en el caso en que la placa sea igual a la brindada en la cláusula WHERE
Tipos de Datos:
Las columnas, variables, expresiones y parámetros en SQL están asociados a un tipo de dato. El tipo de dato nos indica el conjunto de valores válidos para los campos definidos de ese tipo. Es decir, nos indica si los valores aceptado se tratan de caracteres, números enteros, números no exactos, valores monetarios(moneda), de fecha y hora, solo de fecha, entre muchos otros.
Los tipos de datos regularmente son organizados en las siguientes categorías:
- Numéricos exactos.
- Cadenas de caracteres Unicode.
- Valores numéricos aproximados.
- Cadenas binarias.
- Fecha y hora.
- Otros tipos de datos.
Cada tipo de dato puede ser usado en una o muchas situaciones así que seleccionar el adecuado dependerá del desarrollador encargado, por lo regular algunos de los más utilizados son varchar, int y datetime pero no podemos descartar la posibilidad de que algún otro sea mejor según cada caso particular.
A continuación les dejo un enlace a la documentación de Microsoft al respecto en donde pueden encontrar una tabla con todos los tipos de datos y una explicación a detalle de cada uno, así no los agobio poniéndolo todo aquí.
Operadores de comparación:
Operador | Uso |
< | Menor que |
> | Mayor que |
<> | Distinto de |
<= | Menor o igual que |
>= | Mayor o igual que |
BETWEEN | Intervalo |
LIKE | Comparación |
In | Especificar |
Operadores Lógicos:
Los operadores lógicos soportados por SQL son:AND, OR, XOR, Eqv, Imp, Is y Not.
A excepción de los dos últimos todos poseen la siguiente sintaxis:
<expresión1> operador <expresión2>
En donde expresión1 y expresión2 son las condiciones a evaluar, el resultado de la operación varía en función del operador lógico:
SELECT * FROM Empleados WHERE Edad > 25 AND Edad < 50;
SELECT * FROM Empleados WHERE (Edad > 25 AND Edad < 50) OR Sueldo = 100;
SELECT * FROM Empleados WHERE NOT Estado = 'Soltero';
SELECT * FROM Empleados WHERE (Sueldo > 100 AND Sueldo < 500) OR (Provincia = 'Madrid' AND Estado = 'Casado');
Operador BETWEEN
Para indicar que deseamos recuperar los registros según el intervalo de valores de un campo emplearemos el operador Between:
SELECT * FROM Pedidos WHERE CodPostal Between 28000 And 28999;
(Devuelve los pedidos realizados en la provincia de Madrid)
SELECT IIf(CodPostal Between 28000 And 28999, 'Provincial', 'Nacional') FROM Editores;
(Devuelve el valor 'Provincial' si el código postal se encuentra en el intervalo,'Nacional' en caso contrario)
Operador LIKE
Se utiliza para comparar una expresión de cadena con un modelo en una expresión SQL. Su sintaxis es:
expresión LIKE modelo
Operador IN
Este operador devuelve aquellos registros cuyo campo indicado coincide con alguno de los indicados en una lista. Su sintaxis es:
SELECT * FROM Pedidos WHERE Provincia In ('Madrid', 'Barcelona', 'Sevilla');
Clausula WHERE
La cláusula WHERE puede usarse para determinar qué registros de las tablas enumeradas en la cláusula FROM aparecerán en los resultados de la instrucción SELECT. WHERE es opcional, pero cuando aparece debe ir a continuación de FROM:
SELECT Apellidos, Salario FROM Empleados WHERE Salario > 21000;
SELECT Id_Producto, Existencias FROM Productos WHERE Existencias <= Nuevo_Pedido;
Agrupamiento de registros (Agregación)
AVG
Calcula la media aritmética de un conjunto de valores contenidos en un campo especificado de una consulta:
Avg(expr)
La función Avg no incluye ningún campo Null en el cálculo. Un ejemplo del funcionamiento de AVG:
SELECT Avg(Gastos) AS Promedio FROM Pedidos WHERE Gastos > 100;
MAX, MIN
Devuelven el mínimo o el máximo de un conjunto de valores contenidos en un campo especifico de una consulta. Su sintaxis es:
Min(expr)
Max(expr)
Un ejemplo de su uso:
SELECT Min(Gastos) AS ElMin FROM Pedidos WHERE Pais = 'Guatemala';
SELECT Max(Gastos) AS ElMax FROM Pedidos WHERE Pais = 'Costa Rica';
SUM
Devuelve la suma del conjunto de valores contenido en un campo especifico de una consulta. Su sintaxis es:
Sum(expr)Sum(expr)
Por ejemplo:
SELECT Sum(PrecioUnidad * Cantidad) AS Total FROM DetallePedido;
GROUP BY
Combina los registros con valores idénticos, en la lista de campos especificados, en un único registro:
SELECT campos FROM tabla WHERE criterio GROUP BY campos del grupo
Todos los campos de la lista de campos de SELECT deben o bien incluirse en la cláusula GROUP BY o como argumentos de una función SQL agregada:
SELECT Id_Familia, Sum(Stock) FROM Productos GROUP BY Id_Familia;
¿Quieres practicar tu SQL con ejercicios? Puedes hacerlo en W3Schools: https://www.w3schools.com/SQl/
¡También puedes ver la infografía que hicimos para este articulo!
¡Eso es todo por hoy! ¿Qué te pareció esta guía? ¡Cuéntanos en los comentarios!
Me gustaría un sobre sql, administración de bases de datos.