Está en la página 1de 6

Restricciones en tablas

2 tipos de restricciones:
Valor por defecto(Default)
Verificacin(Check)
No son objetos de una BF sino implementaciones a nivel de tabla.
Su alcance slo es local

Restriccin Default

Define un valor por defecto


til si se asocia a un Not null
Ejemplo:
o Create tabla Adminision(
o IdEst char(4) Primary key,
o Apellido varchar(25) not null,
o Nombre vachar(25) not null,
o Edad tinyint not null,
o Ciudad varchar(20) not null
o Constraint D1 Default (Piura),
o Edad tinyint not null,
o Mail varchar(35) not null
o Constraint D2 Default(No tiene)
o )

Reestriccion check

Verifica la consistencia de un valor a ingresar


Ejecuta patrones de comparacin
Ejemplo:
o Create table Ingresantes(
o Codigo char(10) primary key,
o Apellido varchar(30) not null,
o Nombre varchar(30) not null ,
o Edad tinyint not null,
o Escuela varchar(30) not null,
o Semestre char(6) not null,
o Constraint C1 check((Codigo like [0-9][0-9][0-9][0-9][0-9][0-9]
[0-9][0-9])),
o Constraint C2 check((edad between 15 and 60)),
o Constraint C3 check((Escuela in
(Sistema,Civil,Administracion,Contabilidad,Estomatologia
))),
o Constraint C4 check((Semestre like 2[0-9][0-9][0-9]-[12]))
o )

Objeto : Default
Los valores por defecto, como restriccin local, se pueden implementas a
nivel de BD(Es decir poner un valor por defecto a nivel global de BD a todas
las tablas que tengan un campo en comn, es decir con el mismo
nombre).Este uso es independiente de las tablas porque estoy creando un
nuevo objeto.
Permiten:

reutilizacin
Implementacin:
o Create Default nombre
o As valor
Ejemplo:
En una BS se tiene entre otras tablas:
-Postulantes
IdPos
Apellidos
Nombres
Edad
ECivil
Ciudad

-Estudiantes
Codigo
Apellidos
Nombre
Escuela
Edad
ECivil
Ciudad

Crear y enlazar un valor por defecto para el campo


ciudad(valor=Piura)y un valor para el campo ECivil (valor=S).
o
o
o
o
o
o
o
o
o
o

Use BD
GO
Create Default Def_ECivil
As
S
GO
CRAETE Default Def_Ciudad
As
Piura
Go

Para enlazar usamos el procedimiento almacenado de sistema sp_bindefault

Sp_bindefault Def_Ciudad ,Postulantes.Ciudad


GO
Sp_bindefault Def_Ciudad, Estudiantes.Ciudad

GO
Sp_bindefault Def_ECivil, Postulantes.ECivil
GO
sp_bindefault Def_ECivil , Estudiantes.ECivil
GO
Para desenlazar se usa en procedimiento alamacenado de sistema :
Sp_unbindefault
Ejemplo:
Sp_unbindefault Postulantes.Ciudad
GO
Sp_unbindefault Estudiantes.Ciudad

Para elminar se usa DROP


EJmplo:
drop Default Def_ciudad

Para eliminar un default no debe tener ningn enlace

Reglas
Una regla es un objeto de verificacin y validacin.
Como todo objeto es reutilizable e la BD.

Creacion de una regla


o Create rule
o as
o validacin

Variables
Almacenan temporalmente valores.
o
o

@nombre -> variable de usuario


@@nombre -> variable del sistema

Ejemplo: En la BD Industrial se tiene 2 tablas


o

Empleados
o
o
o
o
o
o
o
o

Clientes
o
o
o
o
o
o
o
o

Create table Empleados(


idEmpleado char(4),
apellidos varchar(35)
nombres varchar(35),
edad tinyint,
ciudad varchar(35),
cargo varchar(30),
rea varchar(30));

Create table Clientes(


idCliente char(4),
apellidos varchar(35),
nombres varchar(35),
edad tinyint,
ciudad varchar(35),
direccin varchar(40),
tipo varchar(10));

Para crear la regla:


o Use Industrial
o GO
o Create rule regla_Edad
o As
o @edad >18 and @edad <=65
o GO
Nota1: Slo se puede usar una variable a la vez en la regla, aunque
si es vlida repetirla
Nota2: No es necesario declarar la variable, pues es nica para cada
regla.

Para enlazar la regla


Se usa el procedimiento almacenado sp_bindrule
Sintaxis:
o

Sp_bindrule nombre,tabla.campo

Ejemplo:
o Use Industrial
o GO

o
o
o
o

Sp_bindrule regla_edad,empleados.edad
GO
Sp_bindrule regla_edad,clientes.edad
GO

Desenlazar una rela:

Sp_unbindrule
Ejemplo:
o Use Industrial
o GO
o Sp_unbindrule Empleados.Edad
o GO
o Sp_unbindrule Clientes.Edad

Eliminar regla
Drop rule
Ejemplo
o Drop rule regla_edad
Nota 1:
Para eliminar una regla no debe estar enlazada

Vistas
Son los objetos que implementas consultas.
Sintaxis:
o
o
o

Create view nombre


As
Consulta

Ejemplo
o
o
o
o
o

Use Industrial
GO
Select * from Empleados
Where edad between 20 and 40
GO

o
o
o
o
o

Create view vista2


As
Select * from Productos
Where Ciudad in (Piura,Sullana,Talara)
GO