SQL

Fazer download em txt, pdf ou txt
Fazer download em txt, pdf ou txt
Você está na página 1de 6

CREATE DATABASE exersqlum;

CREATE TABLE assinante


(
cd_assinante int,
nm_assinante varchar(60),
cd_ramo int,
cd_tipo int,
CONSTRAINT pk_assinante PRIMARY KEY (cd_assinante)
);

CREATE TABLE ramo_atividade


(
cd_ramo int,
ds_ramo varchar(60),
CONSTRAINT pk_ramo PRIMARY KEY (cd_ramo)
);

CREATE TABLE tipo_assinante


(
cd_tipo int,
ds_tipo varchar(60),
CONSTRAINT pk_tipo PRIMARY KEY (cd_tipo)
);

ALTER TABLE assinante


ADD CONSTRAINT fk_assinante_ramo FOREIGN KEY (cd_ramo) REFERENCES
ramo_atividade(cd_ramo),
ADD CONSTRAINT fk_assinante_tipo FOREIGN KEY (cd_tipo) REFERENCES
tipo_assinante(cd_tipo)

CREATE TABLE endereco


(
cd_endereco int,
ds_endereco varchar(60),
complemento varchar(20),
bairro varchar(60),
cep varchar(20),
cd_municipio int,
cd_assinante int,
CONSTRAINT pk_endereco PRIMARY KEY (cd_endereco)
);

CREATE TABLE municipio


(
cd_municipio int,
ds_municipio varchar(60),
CONSTRAINT pk_municipio PRIMARY KEY (cd_municipio)
);

ALTER TABLE endereco


ADD CONSTRAINT fk_endereco_assinante FOREIGN KEY (cd_assinante) REFERENCES
assinante(cd_assinante),
ADD CONSTRAINT fk_endereco_municipio FOREIGN KEY (cd_municipio) REFERENCES
municipio(cd_municipio)

CREATE TABLE telefone


(
cd_fone int,
ddd int,
n_fone varchar(20),
cd_endereco int,
CONSTRAINT pk_telefone PRIMARY KEY (cd_fone),
CONSTRAINT fk_telefone FOREIGN KEY (cd_endereco) REFERENCES endereco
(cd_endereco)
);

INSERT INTO ramo_atividade VALUES


(1,'ramo1'),
(2,'ramo2'),
(3,'ramo3'),
(4,'ramo4');

INSERT INTO tipo_assinante VALUES


(1,'Comercial'),
(2,'Empresarial');

INSERT INTO municipio VALUES


(1,'Betim'),
(2,'BH'),
(3,'Contagem');

INSERT INTO assinante VALUES


(1,'Luiz',4,2),
(2,'Rafael',2,1),
(3,'Juliana',1,1),
(4,'Jonas',3,2),
(5,'Carla',2,1);

INSERT INTO endereco VALUES


(1,'end1,rua1','residência','bairro1','00-000-000',1,4),
(2,'end2,rua2','apto5','bairro2','11-111-111',3,1),
(3,'end3,rua3','residência','bairro3','22-222-222',1,2),
(4,'end4,rua4','residência','bairro4','33-333-333',2,5),
(5,'end5,rua5','apto2','bairro5','44-444-444',2,3);

INSERT INTO telefone VALUES


(1,000,'00000-0000',5),
(2,111,'11111-1111',3),
(3,111,'66666-6666',3),
(4,222,'22222-2222',4),
(5,333,'33333-3333',2),
(6,444,'44444-4444',1),
(7,444,'55555-5555',1);

SELECT assinante.nm_assinante, endereco.*, telefone.n_fone


FROM assinante
INNER JOIN endereco ON assinante.cd_assinante = endereco.cd_assinante
INNER JOIN telefone ON telefone.cd_endereco = endereco.cd_endereco;

SELECT ramo_atividade.ds_ramo, assinante.nm_assinante


FROM ramo_atividade
INNER JOIN assinante ON ramo_atividade.cd_ramo = assinante.cd_ramo
ORDER BY ds_ramo, nm_assinante;

SELECT assinante.nm_assinante, municipio.ds_municipio, endereco.complemento


FROM assinante
INNER JOIN endereco ON endereco.cd_assinante = assinante.cd_assinante AND
endereco.complemento = 'Residência'
INNER JOIN municipio ON municipio.cd_municipio = endereco.cd_municipio
WHERE municipio.ds_municipio = 'Betim';

SELECT assinante.nm_assinante, COUNT(telefone.cd_fone) AS quantidade


FROM assinante
INNER JOIN endereco ON endereco.cd_assinante = assinante.cd_assinante
INNER JOIN telefone ON telefone.cd_endereco = endereco.cd_endereco
GROUP BY assinante.nm_assinante
HAVING quantidade > 1;

SELECT assinante.nm_assinante, telefone.n_fone, tipo_assinante.ds_tipo,


municipio.ds_municipio
FROM assinante
INNER JOIN endereco ON endereco.cd_assinante = assinante.cd_assinante
INNER JOIN telefone ON telefone.cd_endereco = endereco.cd_endereco
INNER JOIN tipo_assinante ON tipo_assinante.cd_tipo = assinante.cd_tipo
INNER JOIN municipio ON municipio.cd_municipio = endereco.cd_municipio
WHERE municipio.ds_municipio = 'BH' OR municipio.ds_municipio = 'Contagem'
ORDER BY assinante.nm_assinante;

-----------------------------------------------------------------------------------
-----------------------------

CREATE DATABASE exersqldois;

CREATE TABLE cliente


(
cpf int,
nome varchar(60),
dtnasc date,
CONSTRAINT cliente_pk PRIMARY KEY (cpf)
);

CREATE TABLE modelo


(
codmod int,
desc_2 varchar(40),
CONSTRAINT modelo_pk PRIMARY KEY (codmod)
);

CREATE TABLE patio


(
num int,
ender varchar(40),
capacidade int,
CONSTRAINT patio_pk PRIMARY KEY (num)
);

CREATE TABLE veiculo


(
placa varchar(8),
modelo_codmod int,
cliente_cpf int,
cor varchar (20),
ano int,
CONSTRAINT veiculo_pk PRIMARY KEY (placa),
CONSTRAINT veiculo_modelo_fk FOREIGN KEY (modelo_codmod) REFERENCES
modelo(codmod),
CONSTRAINT veiculo_cliente_fk FOREIGN KEY (cliente_cpf) REFERENCES cliente(cpf)
);

CREATE TABLE estaciona


(
cod int,
patio_num int,
veiculo_placa varchar(8),
dtentrada varchar(10),
dtsaida varchar(10),
hsentrada varchar(10),
hssaida varchar(10),
CONSTRAINT estaciona_pk PRIMARY KEY (cod),
CONSTRAINT estaciona_veiculo_fk FOREIGN KEY (veiculo_placa) REFERENCES
veiculo(placa),
CONSTRAINT estaciona_patio_fk FOREIGN KEY (patio_num) REFERENCES patio(num)
);

INSERT INTO cliente VALUES


(11111, 'Júlio', '2000-04-11'),
(22222, 'Fernanda', '1998-09-27'),
(33333, 'Bernardo', '2000-02-04'),
(44444, 'Flávia', '2000-12-09'),
(55555, 'Margarete', '2000-07-15');

INSERT INTO modelo VALUES


(1, 'Mercedes'),
(2, 'Fiat'),
(3, 'Chevrolet'),
(4, 'Ferrari'),
(5, 'Honda');

INSERT INTO patio VALUES


(1, 'Rua 1', 70),
(2, 'Rua 2', 50),
(3, 'Rua 3', 90);

INSERT INTO veiculo VALUES


('GGG-0202',2, 55555,'verde', 2015),
('HHH-0607',3, 22222,'amarelo', 2017),
('JEG-1010',5, 22222,'azul', 2014),
('GEH-4978',1, 11111,'preto',2013),
('JJJ-2020',3, 44444,'azul', 2011),
('CBD-6915',4, 33333,'verde',2011),
('MRL-4829',2, 44444,'azul',2013),
('RSI-2204',4, 44444,'verde',2017);

INSERT INTO estaciona VALUES


(1,2,'HHH-0607','22/07/2022','22/07/2022','15:00','16:15'),
(2,3,'RSI-2204','15/09/2022','15/09/2022','10:00','12:45'),
(3,2,'CBD-6915','16/11/2022','16/11/2022','09:00','10:04'),
(4,2,'JJJ-2020','09/04/2022','09/04/2022','16:00','18:23'),
(5,1,'GEH-4978','02/02/2021','02/02/2021','19:26','21:00'),
(6,3,'GGG-0202','28/08/2021','28/08/2021','12:37','16:59'),
(7,1,'JEG-1010','25/12/2020','25/12/2020','13:32','17:50'),
(8,1,'MRL-4829','16/01/2020','16/01/2020','14:45','19:22'),
(9,3,'JJJ-2020','12/05/2022','12/05/2022','10:01','20:07'),
(10,2,'JEG-1010','20/02/2021','20/02/2021','20:17','23:00');
SELECT veiculo.placa, cliente.nome
from veiculo
INNER JOIN cliente ON cliente.cpf = veiculo.cliente_cpf

SELECT cliente.cpf ,cliente.nome


from cliente
INNER JOIN veiculo ON veiculo.cliente_cpf = cliente.cpf
WHERE placa = 'JJJ-2020';

SELECT veiculo.placa, veiculo.cor


from veiculo
INNER JOIN estaciona ON estaciona.veiculo_placa = veiculo.placa
WHERE estaciona.cod = 1;

SELECT veiculo.placa, veiculo.ano


from veiculo
INNER JOIN estaciona ON estaciona.veiculo_placa = veiculo.placa
WHERE estaciona.cod = 1;

SELECT veiculo.placa, veiculo.ano, modelo.desc_2


from veiculo
INNER JOIN modelo ON modelo.codmod = veiculo.modelo_codmod
WHERE veiculo.ano >= 2000;

SELECT patio.ender, estaciona.dtentrada, estaciona.dtsaida


FROM patio
INNER JOIN estaciona ON estaciona.patio_num = patio.num
WHERE estaciona.veiculo_placa = 'JEG-1010';

SELECT COUNT(estaciona.cod) AS qtd


FROM estaciona
INNER JOIN veiculo ON veiculo.placa = estaciona.veiculo_placa
WHERE veiculo.cor = 'verde';

SELECT cliente.nome
FROM cliente
INNER JOIN veiculo ON veiculo.cliente_cpf = cliente.cpf
INNER JOIN modelo ON modelo.codmod = veiculo.modelo_codmod
WHERE modelo.codmod = 1;

SELECT estaciona.veiculo_placa, estaciona.hsentrada, estaciona.hssaida


FROM estaciona
INNER JOIN veiculo ON veiculo.placa = estaciona.veiculo_placa
WHERE veiculo.cor = 'verde';

SELECT estaciona.*
from estaciona
INNER JOIN veiculo ON veiculo.placa = estaciona.veiculo_placa
WHERE veiculo.placa = 'JJJ-2020';

SELECT cliente.nome
FROM cliente
INNER JOIN veiculo ON veiculo.cliente_cpf = cliente.cpf
INNER JOIN estaciona ON estaciona.veiculo_placa = veiculo.placa
WHERE estaciona.cod = 2;

SELECT cliente.cpf
FROM cliente
INNER JOIN veiculo ON veiculo.cliente_cpf = cliente.cpf
INNER JOIN estaciona ON estaciona.veiculo_placa = veiculo.placa
WHERE estaciona.cod = 3;

SELECT modelo.desc_2
FROM modelo
INNER JOIN veiculo ON veiculo.modelo_codmod = modelo.codmod
INNER JOIN estaciona ON estaciona.veiculo_placa = veiculo.placa
WHERE estaciona.cod = 2;

SELECT veiculo.placa, cliente.nome, modelo.desc_2


FROM veiculo
INNER JOIN cliente ON cliente.cpf = veiculo.cliente_cpf
INNER JOIN modelo ON modelo.codmod = veiculo.modelo_codmod

Você também pode gostar