Componentes de SQL.

El lenguaje SQL está compuesto por comandos, cláusulas, operadores y funciones de agregado. Estos elementos se combinan en las instrucciones para crear, actualizar y manipular las bases de datos.

Comandos

Existen dos tipos de comandos SQL:

·DDL que permiten crear y definir nuevas bases de datos, campos e índices.
·DML que permiten generar consultas para ordenar, filtrar, extraer y actualizar datos de la base de datos.

Comandos DDL

CREATE: Utilizado para crear nuevas tablas, campos e índices.
DROP: Empleado para eliminar tablas e índices.
ALTER: Utilizado para modificar las tablas agregando campos o cambiando la definición de los campos.

Comandos DML

SELECT: Utilizado para consultar registros de la base de datos que satisfagan un criterio determinado.
INSERT: Utilizado para cargar lotes de datos en la base de datos en una única operación.
UPDATE: Utilizado para modificar los valores de los campos y registros especificados.
DELETE: Utilizado para eliminar registros de una tabla de una base de datos.

Cláusulas

Las cláusulas son condiciones de modificación utilizadas para definir los datos que desea seleccionar o manipular.

FROM: Utilizada para especificar la tabla de la cual se van a seleccionar los registros.

WHERE: Utilizada para especificar las condiciones que deben reunir los registros que se van a seleccionar.

GROUP BY: Utilizada para separar los registros seleccionados en grupos específicos.

HAVING: Utilizada para expresar la condición que debe satisfacer cada grupo.

ORDER BY: Utilizada para ordenar los registros seleccionados de acuerdo con un orden específico.

Operadores Lógicos

AND: Es el "y" lógico. Evalúa dos condiciones y devuelve un valor de verdad sólo si ambas son ciertas.

OR: Es el "o" lógico. Evalúa dos condiciones y devuelve un valor de verdad si alguna de las dos es cierta.

NOT: Negación lógica. Devuelve el valor contrario de la expresión.

Operadores de Comparación

< Menor que
> Mayor que
<> Distinto de
<= Menor o igual que
>= Mayor o igual que
= Igual que
BETWEEN Utilizado para especificar un intervalo de valores
LIKE Utilizado en la comparación de un modelo
In Utilizado para especificar registros de una base de datos

Funciones de Agregado

Las funciones de agregado se usan dentro de una cláusula SELECT en grupos de registros para devolver un único valor que se aplica a un grupo de registros.

AVG Utilizada para calcular el promedio de los valores de un campo determinado
COUNT Utilizada para devolver el número de registros de la selección
SUM Utilizada para devolver la suma de todos los valores de un campo determinado
MAX Utilizada para devolver el valor más alto de un campo especificado
MIN Utilizada para devolver el valor más bajo de un campo especificado

Orden de ejecución de los comandos

Dada una sentencia SQL de selección que incluye todas las posibles cláusulas, el orden de ejecución de las mismas es el siguiente:

1. Cláusula FROM
2. Cláusula WHERE
3. Cláusula GROUP BY
4. Cláusula HAVING
5. Cláusula SELECT
6. Cláusula ORDER BY

EJEMPLOS DE INSTRUCCIONES SQL:

SELECT * FROM Empleados WHERE Edad > 25 AND Edad < 50;

SELECT * FROM Empleados WHERE (Edad &qt; 25 AND Edad &qt; 50) OR Sueldo = 100;

SELECT * FROM Empleados WHERE NOT Estado = 'Soltero';

SELECT * FROM Empleados WHERE Provincia = 'Bs.As.' AND Estado = 'Casado' ORDER BY Apellido;

SELECT * FROM Empleados WHERE IsNull(DNI)=True;

SELECT * FROM Pedidos WHERE PrecioTotal Between 200 And 400;

SELECT * FROM Pedidos WHERE Localidad In ('Merlo', 'Padua', 'Libertad');

SELECT Apellidos, Salario FROM Empleados WHERE Salario &qt; 5000;

SELECT Codigo, Descripción, Existencias FROM Productos WHERE Existencias <= StockMinimo;

SELECT Codigo, Descripción, Existencias FROM Productos WHERE Existencias <= StockMinimo And Rubro='Envases';

SELECT * FROM Pedidos WHERE Fecha = #05-30-2005#;

SELECT Apellidos, Nombre FROM Empleados WHERE Apellido = 'Perez';

SELECT Apellidos, Nombre FROM Empleados WHERE Apellidos Like 'G*';

SELECT Apellidos, Salario FROM Empleados WHERE Salario Between 200 And 300;

SELECT IdPedido, FechaPedido FROM Pedidos WHERE FechaPedido Between #01-01-2005# And #01-05-2005#;

SELECT Rubro, Sum(Stock) AS StockActual FROM Productos GROUP BY rubro HAVING Rubro='Envases';

SELECT Avg(Gastos) AS Promedio FROM Pedidos WHERE Gastos > 100;

SELECT Count(*) AS Total FROM Pedidos;

SELECT Count(DISTINCT Localidad) AS Total FROM Pedidos;

SELECT COUNT(Clientes.CodCli) FROM Clientes;

SELECT COUNT(CodCli) FROM Clientes WHERE CodCli IN (SELECT CodCli FROM Facturas);

SELECT COUNT(CodCli) FROM Clientes WHERE CodCli NOT IN (SELECT CodCLi FROM Facturas);

SELECT Min(Gastos) AS ElMin FROM Pedidos WHERE CodCli = '0001';

SELECT Max(Gastos) AS ElMax FROM Pedidos WHERE CodCli= '0001';

SELECT CodCli, MAX(Total) AS MaximaCompra FROM Facturas GROUP BY CodCli;

SELECT CodCli, AVG(Total) AS Promedio FROM Facturas GROUP BY CodCli;

SELECT Sum(PrecioUnidad * Cantidad) AS Total FROM DetallePedido;

UPDATE Clientes SET Descuento=10;

INSERT INTO Productos (Codigo, Descripción, Existencias) VALUES ('0002 ', 'Miel ', 250);

DELETE * FROM Clientes;

CREATE TABLE Empleados (Nombre TEXT (25),Apellidos TEXT (50));

ALTER TABLE Empleados ADD COLUMN Sueldo Double;

ALTER TABLE Empleados DROP COLUMN Salario;

DROP TABLE Alumnos;