Apuntes
Practica en MyphpAdmin y en sitio

Contenido del apunte (5)
Página 1
Primer Ejercicio, No 38




38 - Alias
Problema:
Una empresa tiene registrados sus clientes en una tabla llamada "clientes". 1- Elimine la tabla "clientes", si existe. 2- Créela con la siguiente estructura: create table clientes ( codigo int unsigned auto_increment, nombre varchar(30) not null, domicilio varchar(30), ciudad varchar(20), provincia varchar (20), telefono varchar(11), primary key(codigo) ); 3- Ingrese algunos registros: insert into clientes (nombre,domicilio,ciudad,provincia,telefono) values ('Lopez Marcos', 'Colon 111', 'Córdoba','Cordoba','null'); insert into clientes (nombre,domicilio,ciudad,provincia,telefono) values ('Perez Ana', 'San Martin 222', 'Cruz del Eje','Cordoba','4578585'); insert into clientes (nombre,domicilio,ciudad,provincia,telefono) values ('Garcia Juan', 'Rivadavia 333', 'Villa Maria','Cordoba','4578445'); insert into clientes (nombre,domicilio,ciudad,provincia,telefono) values ('Perez Luis', 'Sarmiento 444', 'Rosario','Santa Fe',null); insert into clientes (nombre,domicilio,ciudad,provincia,telefono) values ('Pereyra Lucas', 'San Martin 555', 'Cruz del Eje','Cordoba','4253685'); insert into clientes (nombre,domicilio,ciudad,provincia,telefono) values ('Gomez Ines', 'San Martin 666', 'Santa Fe','Santa Fe','0345252525'); insert into clientes (nombre,domicilio,ciudad,provincia,telefono) values ('Torres Fabiola', 'Alem 777', 'Villa del Rosario','Cordoba','4554455'); insert into clientes (nombre,domicilio,ciudad,provincia,telefono) values ('Lopez Carlos', 'Irigoyen 888', 'Cruz del Eje','Cordoba',null); insert into clientes (nombre,domicilio,ciudad,provincia,telefono) values ('Ramos Betina', 'San Martin 999', 'Cordoba','Cordoba','4223366'); insert into clientes (nombre,domicilio,ciudad,provincia,telefono) values ('Lopez Lucas', 'San Martin 1010', 'Posadas','Misiones','0457858745'); 4- Obtenga el total de los registros que no tienen valor nulo en los teléfonos y coloque un alias para dicha columna: select count(telefono) as 'con telefono' from clientes; 5- Muestre la cantidad de clientes que se apellidan "Perez" colocando un alias para dicha salida: select count(*) as 'Perez' from clientes where nombre like '%Perez%' ; 6- Obtenga la cantidad de ciudades DISTINTAS por provincia en las cuales hay clientes, coloque un alias: select provincia, count(distinct ciudad) as 'ciudades' from clientes group by provincia;
Página 2
Segundo Ejercicio, No 39.
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
Ejercicio 3, No 45
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 4
Ejercicio 4, No 47
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 5
Ejercicio 5, No 42
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;

Información
- Descripción
- Apunte sobre Practica en MyphpAdmin y en sitio, creado por Raúl Alfredo Sánchez Jimenez el 29/03/2020.
- Creado por
- Raúl Alfredo Sánchez Jimenez
- Visitas
- 2
- Valoración