base de datos en sql server 2008base de datos en sql server 2008 1 constraint create table...

11
------------------------------------------------------------------------- ------------------------------------------------------------------------- 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) );

Upload: others

Post on 01-Mar-2021

10 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: BASE DE DATOS  EN SQL SERVER 2008BASE DE DATOS  EN SQL SERVER 2008 1 constraint create table secciones( codigo int, nombre

-------------------------------------------------------------------------

-------------------------------------------------------------------------

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)

);

Page 2: BASE DE DATOS  EN SQL SERVER 2008BASE DE DATOS  EN SQL SERVER 2008 1 constraint create table secciones( codigo int, nombre

-------------------------------------------------------------------------

-------------------------------------------------------------------------

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);

Page 3: BASE DE DATOS  EN SQL SERVER 2008BASE DE DATOS  EN SQL SERVER 2008 1 constraint create table secciones( codigo int, nombre

-------------------------------------------------------------------------

-------------------------------------------------------------------------

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":

Page 4: BASE DE DATOS  EN SQL SERVER 2008BASE DE DATOS  EN SQL SERVER 2008 1 constraint create table secciones( codigo int, nombre

-------------------------------------------------------------------------

-------------------------------------------------------------------------

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!

Page 5: BASE DE DATOS  EN SQL SERVER 2008BASE DE DATOS  EN SQL SERVER 2008 1 constraint create table secciones( codigo int, nombre

-------------------------------------------------------------------------

-------------------------------------------------------------------------

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":

Page 6: BASE DE DATOS  EN SQL SERVER 2008BASE DE DATOS  EN SQL SERVER 2008 1 constraint create table secciones( codigo int, nombre

-------------------------------------------------------------------------

-------------------------------------------------------------------------

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),

-------------------------------------------------------------------------

-------------------------------------------------------------------------

Page 7: BASE DE DATOS  EN SQL SERVER 2008BASE DE DATOS  EN SQL SERVER 2008 1 constraint create table secciones( codigo int, nombre

-------------------------------------------------------------------------

-------------------------------------------------------------------------

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

);

Page 8: BASE DE DATOS  EN SQL SERVER 2008BASE DE DATOS  EN SQL SERVER 2008 1 constraint create table secciones( codigo int, nombre

3- Ingrese algunos registros para todas las tablas:

Page 9: BASE DE DATOS  EN SQL SERVER 2008BASE DE DATOS  EN SQL SERVER 2008 1 constraint create table secciones( codigo int, nombre

4- Realice un join para mostrar todos los datos de todas las tablas, sin repetirlos:

Page 10: BASE DE DATOS  EN SQL SERVER 2008BASE DE DATOS  EN SQL SERVER 2008 1 constraint create table secciones( codigo int, nombre

2

Page 11: BASE DE DATOS  EN SQL SERVER 2008BASE DE DATOS  EN SQL SERVER 2008 1 constraint create table secciones( codigo int, nombre