Cómo utilizar partido en sentencias SQL
La integridad referencial implica mantener la consistencia en una base de datos SQL de varias tablas. Usted puede perder la integridad mediante la adición de una fila a una tabla secundaria que no tiene una fila correspondiente en la tabla de los padres del niño. Puede causar problemas similares mediante la supresión de una fila de una tabla principal si existen filas correspondientes a la fila de una tabla secundaria.
Supongamos que su empresa tiene una tabla CLIENTE que realiza un seguimiento de todos sus clientes y una tabla de ventas que registra todas las transacciones de ventas. Usted no desea agregar una fila a VENTAS hasta después de entrar en el cliente de hacer la compra en la tabla CLIENTE. Usted también no desea eliminar un cliente de la tabla CUSTOMER si ese cliente hizo las compras que existen en la tabla VENTAS.
Antes de realizar una inserción o una deleción, es posible que desee comprobar la fila candidata para asegurarse de que la inserción o eliminación de esa fila no causa problemas de integridad. los PARTIDO predicado puede realizar dicha inspección.
Digamos que tienes una tabla de clientes y una mesa de VENTAS. ID de cliente es la clave principal de la tabla cliente y actúa como una clave externa en la tabla VENTAS. Cada fila de la tabla CLIENTE deberá tener un único ID de cliente que no es nulo.
ID de cliente no es único en la tabla de ventas, debido a la repetición de los clientes compran más de una vez. Esta situación se ve fina que no ponga en peligro la integridad porque ID de cliente es una clave externa en lugar de una clave principal en la tabla.
Al parecer, ID de cliente puede ser nulo en la tabla VENTAS, porque alguien puede caminar por la calle, comprar algo, y salir antes de que usted tiene la oportunidad de introducir su nombre y dirección en la tabla CLIENTE. Esta situación puede crear problemas - una fila de la tabla secundaria sin fila correspondiente en la tabla padre.
Para superar este problema, puede crear un cliente genérico en la tabla CLIENTE y asignar todas las ventas anónimas a ese cliente. Digamos que un cliente se acerca a la caja registradora y afirma que ella compró un F-35 Strike Fighter, el 18 de diciembre de 2012. A pesar de que ha perdido a su recibo, ahora quiere volver el avión, ya que aparece como un portaaviones en las pantallas de radar de los oponentes.
Usted puede verificar si compró un F-35 mediante la búsqueda en la base de datos de ventas para un partido. En primer lugar, debe recuperar su ID de cliente en la variable vcustid- entonces usted puede utilizar la siguiente sintaxis:
... DONDE (: vcustid, "F-35", "12/18/2012") PARTIDO (SELECT CustomerID, ProductID, SaleDateFROM VENTAS)
Si el PARTIDO predicado devuelve un valor cierto que la base de datos contiene una venta de los F-35 el 18 de diciembre de 2012, a este cliente de ID de cliente. Recuperar el producto defectuoso y devolver el dinero del cliente. (Nota: Si cualquiera de los valores en el primer argumento de la PARTIDO predicado son nulos, un valor Verdadero siempre vuelve.)
Desarrolladores de SQL añaden el PARTIDO predicado y la UNIQUE predicado por la misma razón - que proporcionan una forma de realizar de forma explícita las pruebas definidas para la integridad de referencia implícita (RI) y UNIQUE restricciones.
La forma general de la PARTIDO predicado es como sigue:
Row_valuePARTIDO [ÚNICA] [SIMPLE | PARCIAL | COMPLETO ] Subconsulta
los UNIQUE, SENCILLO, PARCIAL, y COMPLETO opciones se refieren a normas que entran en juego si la expresión valor de la fila R tiene una o más columnas que son nulos. Las reglas para la PARTIDO predicado son una copia de las correspondientes reglas de integridad referencial.