Está en la página 1de 4

PRACTICA DE RESTRICCIONES EN SQL SERVER Profesor: Lic.

Fernando Monroy Descripcin: Crear una base de datos la cual lleve por nombre restricciones utilizando Microsoft SQL Server, dentro de esa base de datos se deben crear las tablas que a continuacin se describen, en cada uno de los incisos con las restricciones marcadas, se debe observar y analizar el funcionamiento de restriccin y su sintaxis. Al final se debe guardar el script con todas las sentencias capturadas, el cual ser revisado y se verificara que se haya realizado realmente la tabla y de manera correcta. Se debe realizar de manera individual e imprimir las pantallas de los resultados para entregarlos de manera digital o impresos, en la impresin se debe ver el nombre de la instancia si existen nombres iguales se anulara la actividad a las personas involucradas. 1) Para crear una restriccin de tipo default la cual Especifica el valor que se proporciona para la columna cuando no se especifica explcitamente en una instruccin INSERT . Se realiza con las siguiente sintaxis, en el analizador de consultas de SQLServer al momento de crear una tabla:
create table ciudad (nombre char(20) not null,poblacion int null constraint DF_ciudad_poblacion DEFAULT(0))--PRIMERA DE MYSQL

Para validar que realmente se haya creado la restriccin en la tabla se debe teclear:
sp_help ciudad

Para probar que realmente se realiza la restriccin


insert into ciudad values('jorge','')Para insertar el valor nulo select * from ciudad -Para seleccionar los registros de la tabla.

2) Para crear una restriccin de tipo CHECK la cual restringe los datos que los usuarios pueden escribir en una columna particular a unos valores especficos. Las restricciones CHECK son similares a las clusulas WHERE donde se pueden especificar las condiciones bajo las que se aceptan los datos para crear una restriccin check en una tabla se sigue la siguiente sintaxis, aplica para las acciones update e insert.
create table ciudad2(nombre char(20) not null, poblacion int null constraint CK_ciudad2_poblacion check(poblacion > 50 and poblacion<100))

Para validar que realmente se haya creado la restriccin en la tabla se debe teclear:
sp_help ciudad2

Para probar que realmente se realiza la restriccin


insert into ciudad2 values('ixtapaluca',200)Aqui marca error por que exede el rango establecido por la restriccin insert into ciudad2 values('ixtapaluca',90)Este si es aceptado ya que se encuentra dentro del rango

Tambin se puede comprobar con un update al querer modificar el valor debes estar dentro del rango marcado por el check. En este caso de 50 a 100. Y se puede comprobar con la siguiente instruccin:
update ciudad2 set poblacion=150 --Este no es aceptado observa el mensaje que envia el analizador de consultas. update ciudad2 set poblacion=51 Este si es aceptado.

3) Para crear una restriccin de una llave primaria la cual define una clave principal en una tabla para identificar de forma exclusiva cada una de sus filas. Solo se acepta una primary key por tabla, los valores deben de ser exclusivos, No se permiten valores nulos. Para crear una tabla con una columna con restriccin de primary key se debe realizar la siguiente sintaxis:
create table ciudad3 (idciudad int not null constraint PK_ciudad3_idciudad primary key(idciudad),nombre char(20) null, poblacion int)

Para validar que realmente se haya creado la restriccin en la tabla se debe teclear:
sp_help ciudad3

Para ver que la llave primaria acepta solo valores unicos correr este insert 2 veces, la primera ves no hay problema pero la segunda vez no deja insertar por que se repite el 1 del idciudad lo cual viola la llave primaria, analiza el mensaje de error que manda el analizador de consultas
insert into ciudad3 values(1,'ixtapaluca',500)

4) Para establecer una restriccin de tipo UNIQUE la cual especifica que dos filas de una columna no pueden tener el mismo valor. La restriccin UNIQUE es til cuando ya se tiene una clave principal, como un nmero de empleado, pero se desea garantizar que otros identificadores, como el nmero del permiso de conducir de un empleado, tambin sean exclusivos. Para crear una tabla con la restriccin de tipo UNIQUE se debe realizar la siguiente sintaxis:

create table ciudad4 (idciudad int not null,nombre char(20),distrito int constraint UQ_ciudad4_distrito unique(distrito))

Para validar que realmente se haya creado la restriccin en la tabla se debe teclear:
sp_help ciudad4

Para ver que UNNIQUE acepta solo valores unicos correr este insert 2 veces, la primera ves no hay problema pero la segunda vez no deja insertar por que se repite el el campo de distrito.
insert into ciudad5 values(1,'ixtapaluca',500)

5) Para generar una llav primaria compuesta 6) Para generar una llave foranea, La restriccin FOREIGN KEY implementa la integridad referencial. La restriccin FOREIGN KEY define una referencia a una columna con una restriccin PRIMARY KEY o UNIQUE en la misma o en otra tabla. La siguiente lnea de cdigo crea la primera tabla la cual debe tener un campo con llave primaria para que se pueda aplicar la referencia con la llave fornea de otra tabla. La llave primaria es el campo id.
create table personas2(id int constraint PK_personas2_id primary key(id),nombre char(20),fecha datetime)

Acontinuacin se coloca la sintaxis para crear la tabla telefonos que tiene la clave foranea y q se refenrencia con el campo id de la tabla de personas2 en las cascada y con las acciones de update y delete.
create table telefonos2(numero char(20), id int not null constraint FK_telefonos2_id foreign key(id) references dbo.personas2(id) on delete cascade on update cascade)

Para validar que realmente se haya creado la restriccin en la tabla se debe teclear:
sp_help telefonos2

Para comprobar la referencia y la restriccin que se deben de ingresar registros en ambas tablas con las siguientes instrucciones:
insert into personas2 values (1,'jorge','10/10/2009') insert into telefonos2 values (75707,1)

Ambas coinciden con el id en 1 es decir estan refrenciados asi que si realizamos un update o delete a la tabla de telefonos2 tambin afectara a la tabla de personas para verificarlo se debe ingresar el siguiente cdigo:
select * from personas2 select * from telefonos2

Con las seleccin se puede validar que ambas tablas tienen datos. Si se borra el registro de la tabla de personas2 por la relacin de integridad tambin se deben borrar de la tabla de telefonos2 para comprobarlo borramos el registro con la siguiente lnea
delete from personas2

Con la seleccin de ambas tablas se puede comprobar que se han eliminado


select * from personas2 select * from telefonos2

La restriccin FOREIGN KEY incluye la opcin CASCADE que permite que cualquier cambio en un valor de columna que define una restriccin UNIQUE o PRIMARY KEY se propague automticamente al valor de clave externa. Esta accin se conoce como integridad referencial en cascada.