Sei sulla pagina 1di 11

CONSULTAS

MIXTAS MYSQL
TNLGO. JULIO PERALTA
CONSULTAS MIXTAS MYSQL

A lo largo de nuestro aprendizaje iremos descubriendo


que existen necesidades propias y muchas veces por
parte del usuario final, en la base de datos.
DESARROLLO DE Para esto se pueden realizar consultas mixtas que son de
gran ayuda para el programador o DBA.
SOFTWARE CONSULTAR TODOS LOS CAMPOS DE 2 TABLAS
TNLGO.JULIO PERALTA DIFERENTES.
Supongamos que tenemos una base de datos LLAMADA
CLIENTES con tablas PERSONAS2, TELEFONOS2,
debidamente registrados los campos, para consultar
todos los campos de estas 2 tablas utilizamos:

SELECT * FROM personas2,telefonos2;


JOIN EN MYSQL

Los JOIN son usados en una sentencia SQL para recuperar


datos de varias tablas al mismo tiempo. 
Estas tablas tienen que estar relacionadas de alguna
forma, por ejemplo, una tabla usuarios, y otra tabla juegos
DESARROLLO DE que contiene también la id del usuario al que pertenece el
juego:
SOFTWARE Tabla Usuarios:
ID username
TNLGO.JULIO PERALTA Tabla Juegos:
ID juegoname ID_usuario
Como puedes observar, podríamos asociar cada juego a
un usuario mediante su ID. De esta forma con un JOIN
uniríamos las dos tablas y extraeríamos en una sola
consulta por ejemplo:

username
juegoname
JOIN EN MYSQL

Tenemos varios tipos de JOINS, los vamos a ver uno por


uno y cada uno de ellos te servirá para extraer los datos
de una forma específica. Dependiendo de lo que necesites
tendrás que echar mano de uno u otro, o incluso
DESARROLLO DE combinarlos entre ellos, que es lo más complejo.

SOFTWARE
TNLGO.JULIO PERALTA
JOIN EN MYSQL

Este tipo de unión te ayuda a combinar varias tablas, y te


devuelve únicamente los datos que estén disponibles en
todas las tablas a la vez.

DESARROLLO DE SELECT usuarios.username, juegos.juegoname


FROM usuarios
SOFTWARE INNER JOIN juegousuario ON usuarios.ID =
juegousuario.ID_usuario
TNLGO.JULIO PERALTA INNER JOIN juegos ON juegousuario.ID_juego =
juegos.ID

El primer JOIN nos une la tabla usuarios, con la tabla


juegousuario. Ahora que ya la tenemos unida, podemos
utilizar los datos de la tabla juegousuario, y lanzar la
consulta con la tabla juegos en otro JOIN.
CONTAR REGISTROS EN MYSQL

Existen en MySQL funciones que nos permiten contar


registros, calcular sumas, promedios, obtener valores
máximos y mínimos. Veamos algunas de ellas.

DESARROLLO DE Imaginemos que tenemos una base de datos de una


bilblioteca y nuestra tabla "libros" contiene muchos
SOFTWARE registros. Para averiguar la cantidad sin necesidad de
contarlos manualmente usamos la función "count()":
TNLGO.JULIO PERALTA
select count(*) from libros;

La función "count()" cuenta la cantidad de registros de una


tabla, incluyendo los que tienen valor nulo.
CONTAR REGISTROS EN MYSQL

Suponiendo que tenemos un campo llamado editorial,


para saber la cantidad de libros de la editorial "Planeta"
tipeamos:

DESARROLLO DE select count(*) from libros


where editorial='Planeta';
SOFTWARE También podemos utilizar esta función junto con la
TNLGO.JULIO PERALTA clausula "where" para una consulta más específica. Por
ejemplo, solicitamos la cantidad de libros que contienen la
cadena "Borges":

select count(*) from libros


where autor like '%Borges%';
CONTAR REGISTROS EN MYSQL

Para contar los registros que tienen precio (sin tener en cuenta los
que tienen valor nulo), usamos la función "count()" y en los
paréntesis colocamos el nombre del campo que necesitamos contar:

DESARROLLO DE select count(precio) from libros;


Note que "count(*)" retorna la cantidad de registros de una tabla

SOFTWARE (incluyendo los que tienen valor "null") mientras que "count(precio)"
retorna la cantidad de registros en los cuales el campo "precio" no es
TNLGO.JULIO PERALTA nulo. No es lo mismo. "count(*)" cuenta registros, si en lugar de un
asterisco colocamos como argumento el nombre de un campo, se
contabilizan los registros cuyo valor en ese campo no es nulo.

Tenga en cuenta que no debe haber espacio entre el nombre de la


función y el paréntesis, porque puede confundirse con una referencia
a una tabla o campo. Las siguientes sentencias son distintas:

select count(*) from libros;


select count (*) from libros;
La primera es correcta, la segunda incorrecta.
EJERCICIO APLICADO.

Una pequeña biblioteca de registra los préstamos de sus libros


en una tabla llamada "prestamos".

1- Cree la Base de Datos llamada BIBLIO_INAN


DESARROLLO DE 2- Cree la tabla:

SOFTWARE create table prestamos(


titulo varchar(40) not null,
TNLGO.JULIO PERALTA documento char(8) not null,
fechaprestamo date not null,
fechadevuelto date
);
La tabla registra el documento del socio a quien se le presta el libro,
el título del libro prestado, la fecha de préstamo y la fecha en que se
devuelve.
EJERCICIO APLICADO.
3- Ingrese los siguientes registros:

insert into prestamos (titulo,documento,fechaprestamo,fechadevuelto)


values ('Manual de 1 grado','23456789','2006-07-10','2006-07-12');

DESARROLLO DE insert into prestamos (titulo,documento,fechaprestamo,fechadevuelto)


values ('El aleph','22245679','2006-07-15',null);

SOFTWARE insert into prestamos (titulo,documento,fechaprestamo,fechadevuelto)


values ('Alicia en el pais de las maravillas','24456789','2006-07-20',
TNLGO.JULIO PERALTA '2006-07-22');

insert into prestamos (titulo,documento,fechaprestamo,fechadevuelto)


values ('Manual de biologia','25456789','2006-08-14',null);

insert into prestamos (titulo,documento,fechaprestamo,fechadevuelto)


values ('Manual de geografia 5 grado','27456789','2006-08-21',
'2006-08-25');
insert into prestamos (titulo,documento,fechaprestamo,fechadevuelto)
values ('Antologia poetica','28456789','2006-08-26','2006-08-27');
insert into prestamos (titulo,documento,fechaprestamo,fechadevuelto)
values ('Manual de 1 grado','23456789','2006-08-26','2006-08-28');
insert into prestamos (titulo,documento,fechaprestamo,fechadevuelto)
values ('Manual de 1 grado','30456789','2006-09-01','2006-09-03');
EJERCICIO APLICADO.

4- Cuente la cantidad de veces que se prestó el libro "Manual de 1


grado":

5- Cuente la cantidad de libros devueltos (contando por


DESARROLLO DE fechadevuelto):

SOFTWARE 6- Cuente la cantidad de veces que se le prestaron libros a la persona


con
TNLGO.JULIO PERALTA documento "23456789":

7- Cuente la cantidad de libros prestados en el mes de agosto:

Potrebbero piacerti anche