base de datos en sql server 2008base de datos en sql server 2008 1 constraint create table...
TRANSCRIPT
-------------------------------------------------------------------------
-------------------------------------------------------------------------
BASE DE DATOS <<***EMPRESA***>> EN SQL SERVER 2008
1
create table secciones(
codigo int,
nombre varchar(20),
sueldo decimal(5,2)
constraint CK_secciones_sueldo
check (sueldo>=0),
constraint PK_secciones primary
key (codigo)
);
create table empleados(
legajo int ,
documento char(8)
constraint CK_empleados_documento check (documento
like '[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'),
sexo char(1)
constraint CK_empleados_sexo check (sexo in
('f','m')),
apellido varchar(20),
nombre varchar(20),
domicilio varchar(30),
seccion tinyint not null,
cantidadhijos tinyint
constraint CK_empleados_hijos check
(cantidadhijos>=0),
estadocivil char(10)
constraint CK_empleados_estadocivil check (estadocivil
in ('casado','divorciado','soltero','viudo')),
fechaingreso datetime,
constraint PK_empleados primary key (legajo),
sueldo decimal(6,2),
constraint FK_empleados_seccion
foreign key (seccion) references secciones(codigo)
on update cascade,
constraint UQ_empleados_documento
unique(documento)
);
-------------------------------------------------------------------------
-------------------------------------------------------------------------
2
insert into secciones values('Administracion',300);
insert into secciones values('Contaduría',400);
insert into secciones values('Sistemas',500);
-------------------------------------------------------------------------
-------------------------------------------------------------------------
insert into empleados values(1020,'22222222','f','Lopez','Ana','Colon
123',1,2,'casado','1990-10-10',600);
insert into empleados values(1030,'23333333','m','Lopez','Luis','Sucre
235',1,0,'soltero','1990-02-10',650);
insert into empleados values(1040,'24444444', 'm', 'Garcia', 'Marcos',
'Sarmiento 1234',
2, 3, 'divorciado', '1998-07-12',800);
insert into empleados values(1050,'25555555','m','Gomez','Pablo','Bulnes
321',3,2,'casado','1998-10-09',900);
insert into empleados values(1060,'26666666','f','Perez','Laura','Peru
1254',3,3,'casado','2000-05-09',700);
-------------------------------------------------------------------------
-------------------------------------------------------------------------
3
create view vista_empleados as
select (apellido+' '+e.nombre) as nombre,
sexo,s.nombre as seccion, cantidadhijos
from empleados as e
join secciones as s
on codigo=seccion;
-------------------------------------------------------------------------
-------------------------------------------------------------------------
Creamos otra vista de "empleados" denominada "vista_empleados2" que consulta solamente la tabla "empleados" con "with check option":
-------------------------------------------------------------------------
-------------------------------------------------------------------------
6. Consultamos la vista con Select:
-------------------------------------------------------------------------
-------------------------------------------------------------------------
7. Ingresamos un registro en la vista "vista_empleados2":
No se puede ingresar el registro, no se puede pueden modificar las tablas y los campos de una vez
guardados y si tratamos de insertarlo no lo admite.
-------------------------------------------------------------------------
-------------------------------------------------------------------------
8. Actualizamos la sección de un registro de la vista "vista_empleados": Poner en Seccion a Sistemas donde el nombre sea Lopez Ana
No lo permite la columna ya esta!
-------------------------------------------------------------------------
-------------------------------------------------------------------------
9- Actualizamos el nombre de un registro de la vista "vista_empleados2":
No lo permite syntax incorrecta
-------------------------------------------------------------------------
-------------------------------------------------------------------------
10. Verifique que se actualizó la tabla, con Select:
-------------------------------------------------------------------------
-------------------------------------------------------------------------
11. Eliminamos un registro de la vista "vista_empleados2":
-------------------------------------------------------------------------
-------------------------------------------------------------------------
BASE DE DATOS <<***CLUB 2***>> EN SQL SERVER 2008
Un club proporciona cursos de distintos deportes. Almacena la información en varias
tablas.
2- Cree las tablas:
create table socios(
documento char(8) not null,
nombre varchar(40),
domicilio varchar(30),
constraint PK_socios_documento
primary key (documento)
);
create table cursos(
numero tinyint identity,
deporte varchar(20),
dia varchar(15),
constraint CK_inscriptos_dia check
(dia in('lunes','martes','miercoles',
'jueves','viernes','sabado')),
profesor varchar(20),
constraint PK_cursos_numero
primary key (numero),
-------------------------------------------------------------------------
-------------------------------------------------------------------------
-------------------------------------------------------------------------
-------------------------------------------------------------------------
create table inscriptos(
documentosocio char(8) not null,
numero tinyint not null,
matricula char(1),
constraint PK_inscriptos_documento_numero
primary key (documentosocio,numero),
constraint FK_inscriptos_documento
foreign key (documentosocio)
references socios(documento)
on update cascade,
constraint FK_inscriptos_numero
foreign key (numero)
references cursos(numero)
on update cascade
);
3- Ingrese algunos registros para todas las tablas:
4- Realice un join para mostrar todos los datos de todas las tablas, sin repetirlos:
2