70 - Secuencias (create sequence- alter sequence - nextval - drop sequence) |
Una empresa registra los datos de sus empleados en una tabla llamada "empleados". 1 - Cree la secuencia "sec_legajoempleados" estableciendo el valor mínimo (1), máximo (999), valor inicial (100), valor de incremento (2) y no circular. 2- Cree la tabla: create table empleados( legajo bigint default nextval('sec_legajoempleados'), documento char(8) not null, nombre varchar(30) not null, primary key(legajo) ); 3 - Ingrese algunos registros: insert into empleados(documento,nombre) values ('22333444','Ana Acosta'); insert into empleados(documento,nombre) values ('23444555','Betina Bustamante'); insert into empleados(documento,nombre) values ('24555666','Carlos Caseros'); insert into empleados(documento,nombre) values ('25666777','Diana Dominguez'); insert into empleados(documento,nombre) values ('26777888','Estela Esper'); 4 - Recupere los registros de la tabla empleados. 5 - Efectue un select de la secuencia. 6 - Elimine la secuencia y la tabla asociada a dicha secuencia.Ver solución
drop table if exists empleados; drop sequence if exists sec_legajoempleados; create sequence sec_legajoempleados start with 100 minvalue 1 maxvalue 999 increment by 2; create table empleados( legajo bigint default nextval('sec_legajoempleados'), documento char(8) not null, nombre varchar(30) not null, primary key(legajo) ); insert into empleados(documento,nombre) values ('22333444','Ana Acosta'); insert into empleados(documento,nombre) values ('23444555','Betina Bustamante'); insert into empleados(documento,nombre) values ('24555666','Carlos Caseros'); insert into empleados(documento,nombre) values ('25666777','Diana Dominguez'); insert into empleados(documento,nombre) values ('26777888','Estela Esper'); select * from empleados; select * from sec_legajoempleados; drop sec_legajoempleados;
Una empresa organiza un curso de computación (dispone de dos aulas), almacenar en una tabla inscriptos los datos del estudiante. Cada vez que se inscribe un alumno asignarlo a un aula en forma alternada (primero a la 1 y luego a la 2, luego nuevamente a la 1 y así sucesivamente) 1 - Crear una secuencia sec_codigoaulainscriptos (valor inicial 1, incremento 1, valor máximo 2 y debe ser circular) 2 - Crear la tabla inscriptos: create table inscriptos( documento char(8) not null, nombre varchar(30) not null, codigocurso int default nextval('sec_codigoaulainscriptos'), primary key(documento) ); 3 - Insertar algunos registros: insert into inscriptos(documento,nombre) values ('20000000','Rodriguez Pablo'); insert into inscriptos(documento,nombre) values ('30000000','Mercado Ana'); insert into inscriptos(documento,nombre) values ('40000000','Morello Luis'); insert into inscriptos(documento,nombre) values ('50000000','Prado Juan'); insert into inscriptos(documento,nombre) values ('60000000','Solis Maria'); 4 - Imprimir todos los alumnos del curso 1. 5 - Imprimir todos los alumnos del curso 2.
Ver solucióndrop table if exists inscriptos; drop sequence if exists sec_codigoaulainscriptos; create sequence sec_codigoaulainscriptos start with 1 minvalue 1 maxvalue 2 cycle; create table inscriptos( documento char(8) not null, nombre varchar(30) not null, codigocurso int default nextval('sec_codigoaulainscriptos'), primary key(documento) ); insert into inscriptos(documento,nombre) values ('20000000','Rodriguez Pablo'); insert into inscriptos(documento,nombre) values ('30000000','Mercado Ana'); insert into inscriptos(documento,nombre) values ('40000000','Morello Luis'); insert into inscriptos(documento,nombre) values ('50000000','Prado Juan'); insert into inscriptos(documento,nombre) values ('60000000','Solis Maria'); select * from inscriptos where codigocurso=1; select * from inscriptos where codigocurso=2;
Retornar