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 Alumnus;