· 8 years ago · Aug 31, 2018, 12:02 PM
1create database if not exists turismo;
2use turismo;
3
4create table if not exists motoristas(
5id integer auto_increment primary key,
6nome varchar(50),
7data_nasc date);
8
9create table if not exists cidades(
10id integer auto_increment primary key,
11nome varchar(50),
12uf varchar(2));
13
14create table if not exists clientes(
15id integer auto_increment primary key,
16nome varchar(50),
17id_cidade integer);
18
19create table if not exists viagens(
20id integer auto_increment primary key,
21id_motorista integer,
22id_cidade integer,
23id_cliente integer,
24data_viagem date,
25destino varchar(50));
26
27
28
29 INSERT INTO motoristas (nome,data_nasc) VALUES ('pedro','1980-10-10');
30INSERT INTO motoristas (nome,data_nasc) VALUES ('carlos','1985-01-01');
31INSERT INTO motoristas (nome,data_nasc) VALUES ('silvio','1980-10-10');
32
33INSERT INTO cidades (nome,uf) VALUES ('jau','sp');
34INSERT INTO cidades (nome,uf) VALUES ('bariri','sp');
35INSERT INTO cidades (nome,uf) VALUES ('bocaina','sp');
36INSERT INTO cidades (nome,uf) VALUES ('itaju','sp');
37
38INSERT INTO clientes (nome,id_cidade) VALUES ('manoel',2);
39INSERT INTO clientes (nome,id_cidade) VALUES ('jose',1);
40INSERT INTO clientes (nome,id_cidade) VALUES ('karen',3);
41INSERT INTO clientes (nome,id_cidade) VALUES ('maria',5);
42
43INSERT INTO viagens (id_motorista,id_cidade,id_cliente,data_viagem,destino) VALUES (2,3,3,'2017-11-01','the noite');
44INSERT INTO viagens (id_motorista,id_cidade,id_cliente,data_viagem,destino) VALUES (1,2,1,'2017-11-02','altas horas');
45INSERT INTO viagens (id_motorista,id_cidade,id_cliente,data_viagem,destino) VALUES (2,2,1,'2017-11-15','praia de itapui');
46
47
48select mot.nome,cli.nome,cid.nome, via.data_viagem from viagens via
49 inner join motoristas mot on mot.id = via.id_motorista
50 inner join clientes cli on cli.id = via.id_cliente
51 inner join cidades cid on cid.id = via.id_cidade
52where via.data_viagem between '2017-11-01' and '2017-10-10';
53
54select cli.nome from viagens via right join clientes cli on cli.id = via.id_cliente
55where via.id_cliente is null;
56
57select cid.nome Cidade from viagens via right join cidades cid on cid.id = via.id_cidade
58where via.id_cliente is null;
59
60select mot.nome Motoristas from viagens via right join motoristas mot on mot.id = via.id_motorista
61where via.id_motorista is null;
62
63select cli.nome Cidade from Cidades cid right join Clientes cli on cli.id_cidade = cid.id
64where cid.id is null;