Consultas de una Base datos en Mysql de 2 Tablas

,
Bueno aqui esta el script solamente lo ejecutamos y listo empezamos a trabajar.
Consultas de una Base datos en Mysql
CREATE DATABASE practica;
use practica;
CREATE TABLE distrito(
iddistrito char(2) primary key,
distrito varchar(30)
);
INSERT INTO distrito VALUES('01','Miraflores');
INSERT INTO distrito VALUES('02','Surquillo');
INSERT INTO distrito VALUES('03','San Martin');
INSERT INTO distrito VALUES('04','Callao');
INSERT INTO distrito VALUES('05','Comas');

CREATE TABLE Alumno(
idalumno char(3) primary key,
paterno varchar(20),
materno varchar(20),
nombre varchar(20),
deuda1 numeric,
deuda2 numeric,
idDistrito char(2) references Distrito,
sexo char(1));

INSERT INTO alumno VALUES('001','Siesquen','coronado','Rupert',200,100,'03','M');
INSERT INTO alumno VALUES('002','sanchez','baldera','Flor',100,300,'02','F');
INSERT INTO alumno VALUES('003','Dominguez','Nieto','marco',200,150,'03','M');
INSERT INTO alumno VALUES('004','Leguia','Soto','Elio',220,340,'02','M');
INSERT INTO alumno VALUES('005','Saavedra','Campos','Jesus',20,30,'03','M');
INSERT INTO alumno VALUES('006','Palacios','correa','Victor',240,320,'02','M');
INSERT INTO alumno VALUES('007','Dominguez','perez','Angela',250,200,'01','F');
INSERT INTO alumno VALUES('008','Castro','Carmona','Ana Maria',200,230,'01','F');
INSERT INTO alumno VALUES('009','Rojas','Maldonado','Maria',120,180,'02','F');
INSERT INTO alumno VALUES('010','Gamarra','barrios','Estela',220,300,'03','F');
INSERT INTO alumno VALUES('011','Quintana','Roque','marco',200,310,'01','M');
INSERT INTO alumno VALUES('012','Quiñonez','Nieto','yamil',120,80,'03','M');
INSERT INTO alumno VALUES('013','Veliz','sosa','Roel',50,200,'04','M');
INSERT INTO alumno VALUES('014','Choquehuanca','osorio','Pedro',100,300,'04','M');
INSERT INTO alumno VALUES('015','Anco','Estrella','Hilda',200,330,'03','F');
INSERT INTO alumno VALUES('016','Yaye','Segundo','Gustavo',208,350,'01','M');
INSERT INTO alumno VALUES('017','soto','quispe','Angela',208,120,'03','F');

Ahora empezamos a resolver las Preguntas y creo que con esto es sufieciente para que tengan un Basico acerca de Las consultas en Mysql.esta vez de 2 tablas.
1.-Listado de alumnos
Select * from alumnos;
2.-Listado de Alumnos ordenados alfabeticamente por nombre
select * from alumno order by nombre;
3.-Listado de Alumnos Varones,mostrar su distrito
select nombre,paterno,materno,sexo,distrito from alumno inner join distrito
where alumno.iddistrito=distrito.iddistrito and sexo='M';
4.-Listado de Alumnas Mujeres,mostrar su distrito
select nombre,paterno,materno,sexo,distrito from alumno inner join distrito
where alumno.iddistrito=distrito.iddistrito and sexo='f';

5.-Mostrar la cantidad de alumnos que estan en el distrito de Miraflores.
select count(*)as total_alumnos,distrito from alumno inner join distrito
where alumno.iddistrito=distrito.iddistrito and distrito='Miraflores';

6.-Listado de Alumnos que tienen el nombre Angela y mostrar el nombre del distrito donde viven.
select nombre,paterno,materno,sexo,distrito from alumno inner join distrito
where alumno.iddistrito=distrito.iddistrito and nombre='Angela';

7.-Mostrar concatenados los apellidos de los Alumnos ademas sus nombres en una sola columna.

select concat(paterno,' ',materno)as Apellidos_Completos,nombre from alumno;

8.-Mostrar a los alumnos por nombre del distrito.por ejemplo escribimos callao y debe mostrar
los alumnos que viven en ese distrito.
select nombre,paterno,materno,sexo,deuda1,deuda2,distrito from alumno inn
er join distrito where alumno.iddistrito=distrito.iddistrito and distrito='callao';


9.-Mostrar los apellidos concatenados de los alumnos ademas que tienen una deuda
total mayor o igual a 200 y menor de 600.

select nombre,concat(paterno,' ',materno)as Apellidos,sexo,sum(deuda1+deuda2)as Deuda_Total
from alumno group by nombre,paterno,materno,sexo having sum(deuda1+deuda2)>=200 and sum(deuda1+deuda2)<600;
10.-mostrar a los todos los alumnos que deben menos de 300
select distinct nombre,paterno,materno,sexo,sum(deuda1+deuda2)as Deuda_Total from alumno group by nombre,paterno,materno,sexo having sum(deuda1+deuda2)<300;
11.-Mostrar a todos los alumnos que tienen deudas
 select nombre,paterno,materno,distrito,deuda1,deuda2 from alumno inner join distrito where alumno.iddistrito=distrito.iddistrito and (deuda1+deuda2)>=0;
12.-Mostrar a todos los alumnos que no tienen deuda
select nombre,paterno,materno,distrito,deuda1,deuda2 from alumno inner join
distrito where alumno.iddistrito=distrito.iddistrito and (deuda1+deuda2)<1;
 13.-Mostrar a los alumnos varones que tienen una deuda total entre 300 and 500.
select distinct nombre,paterno,materno,sexo,sum(deuda1+deuda2)as Deuda_Total from alumno where sexo='M' group by nombre,paterno,materno,sexo having sum(deuda1+deuda2) between 300 and 500;
14.-Mostrar a los alumnas Mujeres que tienen una deuda total menor o igual a 300.
select distinct nombre,paterno,materno,sexo,sum(deuda1+deuda2)as Deuda_Total from alumno where sexo='f' group by nombre,paterno,materno,sexo having sum( deuda1+deuda2)>=0 and sum(deuda1+deuda2)<=300;

15.-Mostrar a los alumnos con sus respectivas deudas ademas el nombre de su distrito.
select distinct nombre,paterno,materno,sexo,distrito,sum(deuda1+deuda2)as
Deuda_Total from alumno inner join distrito where alumno.iddistrito=distrito.id
distrito group by nombre,paterno,materno,sexo,distrito;
16.-Mostrar a los alumnos cuyo apellido paterno inicia con la o las letras S
select * from alumno where paterno like's%';
17.-Mostrar a los alumnos cuyo apellido paterno y materno inician con la letra C
select * from alumno where paterno like'c%' and materno like'c%';
18.-Mostrar la cantidad de distritos que hay en la tabla distrito.
select count(*)as cantidad_distritos from distrito;
19.-Mostrar los nombres de los alumnos que terminen con la letra a.
select * from alumno where nombre like'%a';
20.-Mostrar a los alumnos que tengan en algunos de sus apellidos la letra M
 bueno aqui se puede hacer de 2 formas
select nombre,paterno,materno from alumno where paterno like'%m%' and materno like'%m%';
select nombre,paterno,materno from alumno where paterno like'%m%';

0 comentarios:

Publicar un comentario