SQL JOIN
Una cláusula JOIN se utiliza para combinar filas a partir de dos o más tablas, basado en una columna que se encuentra entre ellos.Veamos una selección de la tabla "pedidos":
A continuación, mira a una selección de la tabla "clientes":
Observe que la columna "CustomerID" en la tabla "Pedidos" se refiere al "CustomerID" en la tabla "Clientes". La relación entre las dos tablas anteriores es la columna "CustomerID".
Entonces, podemos crear la siguiente instrucción SQL (que contiene un INNER JOIN), que selecciona los registros que tienen valores coincidentes en ambas tablas:
Ejemplo:
SELECT Orders.OrderID, Customers.CustomerName, Orders.OrderDate
FROM Orders
INNER JOIN Customers
ON Orders.CustomerID=Customers.CustomerID;
y producirá algo como esto:
Los diferentes tipos de uniones SQL
Estos son los diferentes tipos de las uniones en SQL:
- (Interior) JOIN : Devuelve los registros que tienen valores coincidentes en ambas tablas
- IZQUIERDO (EXTERIOR) JOIN : devolver todos los registros de la tabla de la izquierda, y los registros coincidentes de la tabla derecha
- DERECHO (EXTERIOR) JOIN : devolver todos los registros de la tabla de la derecha, y los registros coincidentes de la tabla izquierda
- COMPLETO (EXTERIOR) JOIN : devolver todos los registros cuando hay un partido en cualquiera de las tablas izquierda o hacia la derecha
El INNER JOIN
Palabra clave selecciona los registros que tienen valores coincidentes en ambas tablas.
Ejemplo: La siguiente instrucción SQL selecciona todos los pedidos con la información de los clientes:
SELECT Orders.OrderID, Customers.CustomerName
FROM Orders
SQL LEFT JOIN palabra clave
La izquierda JOIN devuelve la palabra clave todos los registros de la tabla izquierda (Tabla 1), y los registros coincidentes de la tabla derecha (Tabla 2). El resultado es NULL desde la banda derecha, si no hay ninguna coincidencia.
Ejemplo: La siguiente sentencia SQL seleccionará todos los clientes, y cualquier orden que podría tener:
SELECT Customers.CustomerName, Orders.OrderID
FROM Customers
LEFT JOIN Orders
ON Customers.CustomerID=Orders.CustomerID
ORDER BY Customers.CustomerName;
SQL RIGHT JOIN palabra clave
El DERECHO JOIN devuelve la palabra clave todos los registros de la tabla derecha (Tabla 2), y los registros coincidentes de la tabla izquierda (tabla 1). El resultado es NULL desde el lado izquierdo, cuando no hay ninguna coincidencia.
Ejemplo:La siguiente sentencia SQL devolverá todos los empleados, y cualquier orden que podría haber colocado:
SELECT Orders.OrderID, Employees.LastName, Employees.FirstName
FROM Orders
RIGHT JOIN Employees ON Orders.EmployeeID = Employees.EmployeeID
ORDER BY Orders.OrderID;
FROM Orders
RIGHT JOIN Employees ON Orders.EmployeeID = Employees.EmployeeID
ORDER BY Orders.OrderID;
SQL combinación externa completa de palabras clave
El FULL OUTER JOIN palabra clave todos los registros de retorno cuando hay un partido en cualquiera izquierdo (tabla 1) o registros (Tabla 2) tabla de la derecha.
Ejemplo: La siguiente instrucción SQL selecciona todos los clientes, y todos los órdenes:
SELECT Customers.CustomerName, Orders.OrderID
FROM Customers
FULL OUTER JOIN Orders ON Customers.CustomerID=Orders.CustomerID
ORDER BY Customers.CustomerName;
FROM Customers
FULL OUTER JOIN Orders ON Customers.CustomerID=Orders.CustomerID
ORDER BY Customers.CustomerName;
PROCEDIMIENTO ALMACENADO:
Es un conjunto de comandos que pueden ser ejecutados directamente en el servidor, es decir, sera ejecutado por el servidor de base de datos y no por el programa cliente que lo accede. Permitiendo la ejecución de una acción o conjunto de acciones especificas.
Ejemplo:
CREATE PROCEDURE pr_Ejemplo
AS
SELECT*FROM Empleados
WHERE Ciudad= 'La Vega'
AND Vigente= 'Activo'
GO
EXC pr_Ejemplo
DISPARADORES O TRIGGER:
Es una especie de script de programación SQL para base de datos.
Los TRIGGER son procedimientos que se ejecutaran según nuestras indicaciones cuando se realicen operaciones sobre la información de la base de datos. Estas operaciones pueden ser de actualización (UPDATE), insercion (INSERT) y borrar (DELETE).
Ejemplo:
CREATE TRIGGER tr_Insert_Emp
ON Empleados
FOR INSERT
AS
PRINT 'Usted a insertado un nuevo registro'
GO
INSERT INTO Empleado (Id, Nombre, Apellidos)
VALUES ('8', 'Carlos', 'Peña')