Notas
Practicas de base de datos
Conteúdo das notas (5)
Página 1
47 - Recuperación de registros en forma aleatoria(rand)
Problema:
Trabajamos con la tabla "alumnos" en el cual un instituto de enseñanza guarda los datos de sus alumnos.
Eliminamos la tabla "alumnos" si existe:
drop table if exists alumnos; Creamos la tabla:
create table alumnos(
documento char(8) not null,
nombre varchar(30),
domicilio varchar(30),
ciudad varchar(20),
provincia varchar(20),
primary key(documento) );
Agregamos varios registros:
insert into alumnos values('22333444','Juan Perez','Colon 123','Cordoba','Cordoba');
insert into alumnos values('23456789','Ana Acosta','Caseros 456','Cordoba','Cordoba');
insert into alumnos values('24123123','Patricia Morales','Sucre 234','Villa del Rosario','Cordoba');
insert into alumnos values('25000333','Jose Torres','Sarmiento 980','Carlos Paz','Cordoba');
insert into alumnos values('26333444','Susana Molina','Avellaneda 234','Rosario','Santa Fe');
insert into alumnos values('27987654','Marta Herrero','San Martin 356','Villa del Rosario','Cordoba');
insert into alumnos values('28321321','Marcos Ferreyra','Urquiza 357','Cordoba','Cordoba');
insert into alumnos values('30987464','Marta Perez','Rivadavia 234','Cordoba','Cordoba');
El instituto quiere tomar 3 alumnos al azar para que representen al instituto en una feria de ciencias. Para recuperar de una tabla registros aleatorios se puede utilizar la función "rand()" combinada con "order by" y "limit":
select documento,nombre from alumnos order by rand() limit 3;
Nos devuelve los nombres y documentos de 3 alumnos tomados al azar de la tabla "alumnos". Podemos ejecutar la sentencia anterior varias veces seguidas y veremos que los registros recuperados son diferentes en cada ocasión:
select documento,nombre from alumnos order by rand() limit 3;
select documento,nombre from alumnos order by rand() limit 3;
select documento,nombre from alumnos order by rand() limit 3;

Página 2
39 - Clave primaria compuesta.
Problema:
Una pequeña biblioteca de barrio registra los préstamos de sus libros en una tabla llamada "prestamos". En ella almacena la siguiente información: -título del libro, -documento de identidad del socio a quien se le presta el libro, -fecha de préstamo, -fecha de devolución del libro, -devuelto: si el libro ha sido o no devuelto.
1- Elimine la tabla "prestamos" si existe.
2- Necesitamos una clave que identifique cada registro en la tabla "prestamos". El mismo libro no puede prestarse en la misma fecha.
3- Cree la tabla:
create table prestamos(
titulo varchar(40) not null,
documento char(8) not null,
fechaprestamo date not null,
fechadevolucion date,
devuelto char(1) default 'N',
primary key(titulo,fechaprestamo) );
4- Ingrese los siguientes registros para la tabla "prestamos":
insert into prestamos (titulo,documento,fechaprestamo) values('Manual de 1 grado','22333444','2006-07-10');
insert into prestamos (titulo,documento,fechaprestamo) values('Manual de 1 grado','22333444','2006-07-20');
insert into prestamos (titulo,documento,fechaprestamo) values('Manual de 1 grado','23333444','2006-07-15');
insert into prestamos (titulo,documento,fechaprestamo) values('El aleph','22333444','2006-07-10');
insert into prestamos (titulo,documento,fechaprestamo) values('El aleph','30333444','2006-08-10');
Note que un mismo libro fue prestado a un mismo socio pero en una fecha distinta. 5- Intente ingresar un valor de clave primaria repetida:
insert into prestamos (titulo,documento,fechaprestamo) values('Manual de 1 grado','25333444','2006-07-10');

Página 3
42 - Indice común (index)
Problema:
Retome la tabla llamada "medicamentos" de una farmacia.
1- Elimine la tabla, si existe.
2- Cree la tabla e indéxela por el campo "laboratorio":
create table medicamentos(
codigo int unsigned auto_increment,
nombre varchar(20) not null,
laboratorio varchar(20),
precio decimal (6,2) unsigned,
cantidad int unsigned,
primary key(codigo),
index i_laboratorio (laboratorio) );
3- Visualice los índices de la tabla "medicamentos" y analice la información:
show index from medicamentos;

Página 4
45 - Creación de índices a tablas existentes (create index)
Problema:Retome la tabla "clientes" que almacena información sobre los clientes de una empresa.
1- Elimine la tabla "clientes", si existe.
2- Créela con esta estructura:
create table clientes ( documento char (8) not null,
nombre varchar(30) not null, domicilio varchar(30),
ciudad varchar(20), provincia varchar (20),
telefono varchar(11) );
3- Agregue un índice común por ciudad y provincia:
create index i_ciudadprovincia on clientes (ciudad,provincia);
4- Vea la información de los índices:
show index from clientes;
5- Agregue un índice único por el campo "documento":
create unique index i_documento on clientes (documento);

Página 5
42 - Indice común (index)
Problema:
Retome la tabla llamada "medicamentos" de una farmacia.
1- Elimine la tabla, si existe.
2- Cree la tabla e indéxela por el campo "laboratorio":
create table medicamentos(
codigo int unsigned auto_increment,
nombre varchar(20) not null,
laboratorio varchar(20),
precio decimal (6,2) unsigned,
cantidad int unsigned,
primary key(codigo),
index i_laboratorio (laboratorio) );
3- Visualice los índices de la tabla "medicamentos" y analice la información:
show index from medicamentos;

Informações
- Descrição
- Ejercicios
- Criado por
- Eduardo Hernandez Jeronimo · mar 2020
- Atualizado
- 28 mar 2020
- Visualizações
- 16
- Avaliação