Está en la página 1de 4

PRACTICA DE RESTRICCIONES EN SQL SERVER

Profesor: Lic. Fernando Monroy

Descripción: 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
continuación se describen, en cada uno de los incisos con las restricciones marcadas, se
debe observar y analizar el funcionamiento de restricción 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 impresión se debe ver el nombre de la
instancia si existen nombres iguales se anulara la actividad a las personas involucradas.

1) Para crear una restricción de tipo default la cual Especifica el valor


que se proporciona para la columna cuando no se especifica
explícitamente en una instrucción 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 restricción en la tabla se debe


teclear:
sp_help ciudad

Para probar que realmente se realiza la restricción

insert into ciudad values('jorge','')—Para insertar el valor


nulo
select * from ciudad -–Para seleccionar los registros de la
tabla.

2) Para crear una restricción de tipo CHECK la cual restringe los datos
que los usuarios pueden escribir en una columna particular a unos
valores específicos. Las restricciones CHECK son similares a las
cláusulas WHERE donde se pueden especificar las condiciones bajo
las que se aceptan los datos para crear una restricción 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 restricción en la tabla se debe teclear:
sp_help ciudad2

Para probar que realmente se realiza la restricción


insert into ciudad2 values('ixtapaluca',200)—Aqui marca error por que
exede el rango establecido por la restricción

insert into ciudad2 values('ixtapaluca',90)—Este si es aceptado ya que se


encuentra dentro del rango

También 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 instrucción:
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 restricción 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 restricción 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 restricción 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 restricción de tipo UNIQUE la cual especifica que dos filas de
una columna no pueden tener el mismo valor. La restricción UNIQUE es útil
cuando ya se tiene una clave principal, como un número de empleado, pero se desea
garantizar que otros identificadores, como el número del permiso de conducir de un
empleado, también sean exclusivos. Para crear una tabla con la restricción 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 restricción 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 restricción FOREIGN KEY implementa la
integridad referencial. La restricción FOREIGN KEY define una referencia a una
columna con una restricción PRIMARY KEY o UNIQUE en la misma o en otra
tabla.

La siguiente línea de código crea la primera tabla la cual debe tener un campo con llave
primaria para que se pueda aplicar la referencia con la llave foránea 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)

Acontinuación 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 restricción en la tabla se debe teclear:
sp_help telefonos2

Para comprobar la referencia y la restricción 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 también afectara a la tabla de personas para verificarlo se
debe ingresar el siguiente código:

select * from personas2


select * from telefonos2
Con las selección se puede validar que ambas tablas tienen datos.

Si se borra el registro de la tabla de personas2 por la relación de integridad también se


deben borrar de la tabla de telefonos2 para comprobarlo borramos el registro con la
siguiente línea
delete from personas2

Con la selección de ambas tablas se puede comprobar que se han eliminado

select * from personas2


select * from telefonos2

La restricción FOREIGN KEY incluye la opción CASCADE que permite que cualquier
cambio en un valor de columna que define una restricción UNIQUE o PRIMARY KEY se
propague automáticamente al valor de clave externa. Esta acción se conoce como
integridad referencial en cascada.

También podría gustarte