Cómo utilizar restricciones en bases de datos sql multitable

UN restricción es una regla de aplicación que el DBMS hace cumplir en SQL. Después de definir una base de datos, puede incluir restricciones (por ejemplo, NO NULO) En una definición de la tabla. El DBMS se asegura de que nunca se puede cometer cualquier transacción que infringe una restricción.

Tiene tres tipos de restricciones:

  • UN restricción de columna impone una condición en una columna en una tabla.

  • UN restricción de tabla pone una restricción especificada en una tabla entera.

  • Un afirmación Es una restricción que puede afectar a más de una tabla.

restricciones de columna

Un ejemplo de una restricción de columna se muestra en la siguiente declaración Data Definition Language (DDL):

Crear el cliente TABLA (ClientName CHAR (30) NOT NULL, Address1 CHAR (30), Dirección 2 CHAR (30), CityCHAR (25), StateCHAR (2), PostalCode CHAR (10), PhoneCHAR (13), FaxCHAR (13), Persona de contacto CHAR (30)) -

La afirmación se aplica la restricción NO NULO al Nombre del cliente columna, especificando que Nombre del cliente no puede asumir un valor nulo. ÚNICO Otra limitación es que se puede aplicar a una columna. Esta restricción especifica que todos los valores de la columna debe ser único. los COMPROBAR restricción es particularmente útil ya que puede tomar cualquier expresión válida como argumento. Consideremos el siguiente ejemplo:

Video: Como utilizar SQL injection Dumper

Crear pruebas TABLA (TestName CHAR (30) NOT NULL, StandardCharge numérico (6,2) CHECK (StandardCharge gt; = 0.0AND StandardCharge lt; = 200,0)) -

carga estándar de VetLab para una prueba debe ser siempre mayor que o igual a cero. Y ninguna de las pruebas estándar cuesta más de $ 200. los COMPROBAR cláusula se niega a aceptar cualquier entrada que caen fuera del rango 0 lt; = StandardCharge lt; = 200. Otra forma de expresar la misma restricción es la siguiente:

Video: Crear base de datos en SQL con restricciones

CHECK (StandardCharge entre 0,0 y 200,0)

restricciones de tabla

los PRIMARY KEY limitación especifica que la columna a la que se aplica es una clave principal. Esta restricción se aplica a toda la tabla y es equivalente a una combinación de la NO NULO y ÚNICO Las restricciones de campo. Puede especificar esta restricción en una CREAR declaración, como se muestra en el siguiente ejemplo:

Video: SQL SERVER - Restricciones de integridad (Constraints)

Crear el cliente TABLA (ClientName CHAR (30) PRIMARY KEY, Address1 CHAR (30), Dirección 2 CHAR (30), CityCHAR (25), Estado CHAR (2), PostalCode CHAR (10), Teléfono CHAR (13), FaxCHAR (13 ), Persona de contacto CHAR (30)) -

restricciones con nombre pueden tener algunas funciones adicionales. Supongamos por ejemplo, que desea hacer una carga a granel de varios miles de clientes potenciales en su mesa de perspectiva. Tiene un archivo que contiene la mayoría de las perspectivas en los Estados Unidos, pero con algunas perspectivas canadienses espolvoreado todo el archivo.

Normalmente, desea restringir su mesa perspectiva para incluir sólo las perspectivas de Estados Unidos, pero no desea que esta carga a granel para ser interrumpido cada vez que se golpea uno de los registros canadienses. (Códigos postales canadienses incluyen letras y números, pero los códigos postales de Estados Unidos contienen sólo números.) Usted puede optar por no hacer cumplir una restricción en Código postal hasta que la carga a granel es completa, y luego se puede restaurar la aplicación de la restricción más tarde.

Inicialmente, su mesa PERSPECTIVA fue creado con la siguiente CREAR MESA declaración:

CREATE TABLE PROSPECTO (ClientName CHAR (30) PRIMARY KEY, Address1 CHAR (30), Dirección 2 CHAR (30), CityCHAR (25), Estado CHAR (2), PostalCode CHAR (10), Teléfono CHAR (13), FaxCHAR (13 ), Persona de contacto CHAR (30), la restricción postal CHECK (PostalCode entre 0 y 99999)) -

Antes de la carga a granel, puede desactivar la aplicación de la Cremallera restricción:

ALTER TABLE PROSPECTCONSTRAINT NO Zip ENFORCED-

Después de la carga a granel es completa, puede restaurar la aplicación de la restricción:

ALTER TABLE PROSPECTCONSTRAINT ENFORCED- postal

En este punto usted puede eliminar las filas que no cumplen con la restricción:

CANCELACIÓN de PROSPECTWHERE PostalCode NO entre 0 y 99999 -

afirmaciones

Un afirmación especifica una restricción de más de una tabla. En el siguiente ejemplo se utiliza una condición de búsqueda elaborado a partir de dos tablas para crear una afirmación:

Crear órdenes TABLA (OrderNumber INTEGER NOT NULL, ClientName CHAR (30), TestOrdered CHAR (30), Vendedor de CHAR (30), OrderDate fecha) Resultados En la tabla -create (ResultNumber INTEGER NOT NULL, OrderNumber INTEGER, ResultCHAR (50), fecha DateOrdered , PrelimFinal CHAR (1)): Para crear ASSERTIONCHECK (NO EXISTE (SELECCIONAR * DE ÓRDENES, RESULTSWHERE ORDERS.OrderNumber = RESULTS.OrderNumberAND Orders.OrderDate gt; RESULTS.DateReported)) -

Esta afirmación asegura que los resultados de las pruebas no se informan antes de que se ordenó la prueba.

Artículos Relacionados