Sunteți pe pagina 1din 7

CONSTRAINTS SQLSERVER 2008.

Los CONSTRAINTS sirven para lograr la integridad de datos, aseguramos que los datos ingresados a las columnas sean validos y que las relaciones entre las tablas no se perdern. Los CONSTRAINTS pueden definirse al momento de crear la tabla, aunque tambin es posible hacerlo despus de que las tablas se han creado.

Glosario

NOT NULL: Define una columna de la tabla. Si se especifica NOT NULL, o si se la aplica una restriccin UNIQUE o PRIMARY KEY, la columna no puede tener valores en NULL.

UNIQUE: Identifica una o ms columnas que identifican unvocamente cada fila de la tabla, dos filas en la misma tabla no pueden tener valores idnticos en las columnas definidas como UNIQUE, una tabla puede tener ms de una restriccin UNIQUE.

FOREIGN KEY: Restringe los valores para un conjunto de columnas que deben coincidir con los valores de clave principal a una restriccin UNIQUE de otra tabla.

PRIMARY KEY: Esta restriccin afecta solo a esa columna y debe tener los valores nicos irrepetibles y no debe tener valores nulos, en otro caso la clave fornea hace referencia a la clave principal de la tabla padre.

CHECK: Son condiciones o reglas que deben cumplir los valores de una columna. Por ejemplo podra utilizarse una restriccin de este tipo para asegurarse de que la columna sexo solo toma valores H o M

Este ejercicio solo se aplica restricciones

CREATE TABLE LIBRO ( ISBN Titulo Varchar( 11 ), -- Cdigo identificativo del libro Varchar( 80 ), -- Ttulo del libro

Editorial Varchar( 50 ), -- Nombre de la editorial del libro NumPaginas int, -- Nmero de pginas del libro

CONSTRAINT pk_libro PRIMARY KEY ( ISBN ) );

CREATE TABLE PRESTAMO ( ISBN RUT Varchar( 11 ), -- Cdigo del libro prestado Varchar( 11 ), -- RUT del socio que se lleva el libro -- Fecha del prstamo -- Fecha de devolucin

FechaPrestamo DATETIME, FechaDevolucion DATETIME, Devuelto Varchar( 1 )

-- Indica si est devuelto o no

CONSTRAINT ck_devuelto CHECK ( Devuelto IN ( 'S', 'N' ) ), CONSTRAINT pk_prestamo PRIMARY KEY ( ISBN, RUT, FechaPrestamo ) );

CREATE TABLE SOCIO ( RUT Varchar( 11 ), -- DNI del socio

Nombre Varchar( 50 ), -- Nombre completo del socio CONSTRAINT pk_socio PRIMARY KEY ( RUT )

);

Visin Grafica del resultado

Ejemplo 1 con restricciones

create table departamentos( codigo int identity, ciudad varchar(60) not null, Pais varchar(60) not null, primary key(codigo) );

create table trabajadores( documento char(11) not null, nombre varchar(60) not null, domicilio varchar(60), departamento varchar(20), sueldo decimal(6,2), codsucursal int, primary key(documento), constraint FK_trabajadores_sucursal foreign key (codsucursal) references departamentos(codigo) on update cascade );

Ejemplo2 con restricciones

Ejemplo3 con restricciones

create table socios( rut char(11) not null, nombre varchar(60), domicilio varchar(60), constraint PK_socios primary key(rut) ); create table matriculados( numero int identity, rut char(11) not null, deporte varchar(20), matricula char(1), constraint FK_matriculados_rut foreign key (rut) references socios(rut), constraint CK_inscriptos_matricula check (matricula in ('s','n')), constraint PK_inscriptos primary key(rut,deporte) );

Ejemplo 4 con restricciones

create table Hosteria ( codigo char(11) not null, dueno varchar(60) not null, direccion varchar(80) not null, telefono varchar(15) not null, email varchar(50) null, precio decimal(6,2) not null, fecha_construccion datetime not null, fecha_rehabilitacion datetime null, municipio char(10) not null, descripcion varchar(100), constraint primaria primary key (codigo) );

create table habitacion ( codigo char(2) not null, num_plazas int not null,

bano char(1) not null, precio_noche decimal(6,2) not null, precio_dto_3 decimal(6,2), descripcion varchar(100), cod_casa char(11) not null, primary key (codigo, cod_casa), foreign key (cod_casa) references Hosteria(codigo), constraint dom_bano check (bano in ('S','N')));

S-ar putea să vă placă și