miércoles, 23 de enero de 2019

JOIN SQL Server

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
SQL INNER JOINSQL LEFT JOIN

SQL RIGHT JOIN


















SQL combinación externa completa

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
INNER JOIN Customers ON Orders.CustomerID = Customers.CustomerID;

Nota: en la unión interna de palabras clave se seleccionan todas las filas de ambas tablas siempre que haya una coincidencia entre las columnas. Si hay registros en la tabla de "órdenes" que no tienen coincidencias en "Clientes", estas órdenes no se mostrarán!

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;



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.

Nota: combinación externa completa pueden devolver potencialmente muy grandes conjuntos de resultados!

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;


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')





Transaction SQL Server

Resultado de imagen para transacciones en sql server




Qué es una transacción?

Una transacción es un conjunto de operaciones tratadas como una sola. Este conjunto de operaciones debe marcarse como transacción para que todas las operaciones que la conforman tengan éxito o todos fracase.

La sentencia que se utiliza para dar o indicar el comiendo de una transacción es "Begin Transaction".

CONSULTAS BÁSICAS EN SQL SERVER

CONSULTAS DE SELECCIÓN
Estas 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.

CONSULTAS BÁSICAS
La sintaxis básica de una consulta es la siguiente:
SELECT campos FROM tablas
SELECT * FROM tablas

En donde "CAMPOS" es la lista de campos que se deseen recuperar, si fuese todos los campos a utilizar colocar "*" y después "TABLA", es el origen de los mismos, por ejemplo:

SELECT nombres, teléfono FROM empleados

Esta sentencia devuelve un conjunto de resultados con el campo "NOMBRES" y "TELÉFONO" de la tabla "EMPLEADOS".

CONSULTAS CON PREDICADO
El predicado se incluye entre la cláusula y el primer nombre del campo a recuperar, el posible predicado es :

PREDICADO DE DESCRIPCIÓN  
(*) Es el que devuelve todos los campos de la tabla.
(TOP) Es el que devuelve determinado numero de registros de la tabla.
(DISTINCT) Omite los registros cuyos campos seleccionados coincidan totalmente.

CONSULTAS DE ACCIÓN
Son aquellas que no devuelven ningún registro, son las encargadas de acciones como añadir, borrar y modificar registros.

(DELETE)
Crea una consulta de eliminación que elimina los registros de una o mas de las tablas listadas en la cláusula FROM que satisfagan la cláusula WHERE. No es posible eliminar el contenido de algún campo en concreto. Su sintaxis es:

DELETE FROM tabla WHERE criterio

Una vez eliminado los registros utilizando una consulta de borrado, no puede deshacer la operación. Si quiere saber que registros se eliminarán, primero tiene que examinar los resultados de una consulta de selección que utilice el mismo criterio y después ejecutar la consulta de borrado.

Qué es el Rollback?

Si alguna de las operaciones de una transacción falla, hay que deshacer la transacción en su totalidad para volver al estado inicial en el que estaba la base de datos antes de empezar. Esto se consigue con la sentencia "RollBack Transaction".

START TRANSACTION
SELECT * FROM suppliers
WHERE supplier_name like '%bob%';
ROLLBACK TRANSACTION;

Qué es el Commit?

Si todas las operaciones de una transacción se completa con éxito hay que marcar el fin de una transacción para que la base de datos vuelva a estar en un estado consistente con la sentencia "Commit Transaction".

START TRANSACTION;
SELECT * FROM suppliers
WHERE supplier_name LIKE '%bob%';
COMMIT TRANSACTION;

Cuáles son los roles de un usuario?

En Plesk con Micreosoft SQL Server, los usuarios pueden seleccionar roles (Lectura y escritura, sólo lectura, sólo escritura), pero no pueden añadir o eliminar permisos de forma independiente.

Este rol actúa como plantillas que facilitan la asignación de permisos a un usuario de base de datos. Cada rol representa un conjunto de privilegios predeterminados que se conceden al usuario de la base de datos al que se le asigne. Si lo desea, puede editar los conjuntos de privilegios correspondientes a los distintos roles. 

Qué es una migración de datos?

Llamamos migración de datos al proceso que necesitamos hacer para transferir los datos de un sistema a otro mientras cambiamos el sistema de almacenamiento donde se encuentran los datos, o bien mientras se practican las modificaciones necesarias en la base de datos o la aplicación que los gestiona.