restricciones en tablas

7

Click here to load reader

Upload: fernando-palacios

Post on 10-Feb-2016

215 views

Category:

Documents


2 download

DESCRIPTION

reestriciones de tablas realizadas por defecto,reglas,etc, en sql

TRANSCRIPT

Page 1: Restricciones en Tablas

Restricciones en tablas

2 tipos de restricciones:

Valor por defecto(Default) Verificación(Check)

No son objetos de una BF sino implementaciones a nivel de tabla.

Su alcance sólo es local

Restricción 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 nullo Constraint D1 Default (‘Piura’),o Edad tinyint not null,o Mail varchar(35) not nullo Constraint D2 Default(‘No tiene’)o )

Reestriccion check

Verifica la consistencia de un valor a ingresar Ejecuta patrones de comparación 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’))),

Page 2: Restricciones en Tablas

o Constraint C4 check((Semestre like ‘2[0-9][0-9][0-9]-[12]’))o )

Objeto : Default

Los valores por defecto, como restricción 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 común, es decir con el mismo nombre).Este uso es independiente de las tablas porque estoy creando un nuevo objeto.

Permiten:

reutilización Implementación:

o Create Default nombreo As valor

Ejemplo:

En una BS se tiene entre otras tablas:

-Postulantes -EstudiantesIdPos CodigoApellidos ApellidosNombres NombreEdad EscuelaECivil EdadCiudad 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 Use BDo GOo Create Default Def_ECivilo Aso ‘S’o GOo CRAETE Default Def_Ciudado Aso ‘Piura’o Go

Para enlazar usamos el procedimiento almacenado de sistema sp_bindefault

Page 3: Restricciones en Tablas

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 ningún enlace

Reglas

Una regla es un objeto de verificación y validación.

Como todo objeto es reutilizable e la BD.

Creacion de una reglao Create ruleo as o validación

Page 4: Restricciones en Tablas

Variables

Almacenan temporalmente valores.

o @nombre -> variable de usuarioo @@nombre -> variable del sistema

Ejemplo: En la BD Industrial se tiene 2 tablas

o Empleados

o Create table Empleados(o idEmpleado char(4),o apellidos varchar(35)o nombres varchar(35),o edad tinyint,o ciudad varchar(35),o cargo varchar(30),o área varchar(30));

o Clientes

o Create table Clientes(o idCliente char(4),o apellidos varchar(35),o nombres varchar(35),o edad tinyint,o ciudad varchar(35),o dirección varchar(40),o tipo varchar(10));

Para crear la regla:o Use Industrialo GOo Create rule regla_Edado Aso @edad >18 and @edad <=65o GO

Nota1: Sólo se puede usar una variable a la vez en la regla, aunque si es válida repetirla

Page 5: Restricciones en Tablas

Nota2: No es necesario declarar la variable, pues es única para cada regla.

Para enlazar la reglaSe usa el procedimiento almacenado sp_bindrule

Sintaxis:

o Sp_bindrule ‘nombre’,’tabla.campo’

Ejemplo:o Use Industrialo GOo Sp_bindrule ‘regla_edad’,’empleados.edad’o GOo Sp_bindrule ‘regla_edad’,’clientes.edad’o GO

o

Desenlazar una rela:

Sp_unbindruleEjemplo:

o Use Industrialo GOo Sp_unbindrule ‘Empleados.Edad’o GOo Sp_unbindrule ‘Clientes.Edad’

Eliminar reglaDrop ruleEjemplo

o Drop rule regla_edad

Nota 1:Para eliminar una regla no debe estar enlazada

Page 6: Restricciones en Tablas

Vistas

Son los objetos que implementas consultas.

Sintaxis:

o Create view nombreo As o Consulta

Ejemplo

o Use Industrialo GOo Select * from Empleadoso Where edad between 20 and 40o GO

o Create view vista2o Aso Select * from Productoso Where Ciudad in (‘Piura’,’Sullana’,’Talara’)o GO