Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Daniel Sousa

Cadastro SQL

Recommended Posts

create table tb_clientes(

idcliente integer primary key,

nome varchar not null,

cpf varchar not null unique,

sexo char(1) not null,

nascimento date not null,

idade integer not null,

rg varchar not null unique,

datacadastro date not null,

email varchar not null unique,

idendereco integer not null,

idtelefone integer not null

)


create table tb_enderecos(

idendereco integer primary key,

rua varchar not null,

numero integer ,

complemento varchar,

bairro varchar not null,

cep integer not null,

idcidade integer

)


create table tb_cidades(

idcidade integer primary key,

nome varchar not null,

uf char(2) not null

)


create table tb_estados(

uf char(2) primary key,

nome varchar

)


create table tb_telefones(

idtelefone integer primary key,

numero varchar not null,

tipo varchar

)


1-Gostaria de saber se esta "modelagem" está correta


2-Como faço a consulta da quantidade de pessoas por cidade

Compartilhar este post


Link para o post
Compartilhar em outros sites

1-Gostaria de saber se esta "modelagem" está correta

Está correta sim, mas você pode normalizar mais, criando mais um tabela clientes_telefones, caso o cliente tenha mais de 1 telefone, que isso é comum:

create table tb_clientes_telefones(
idclienteTelefone...
idcliente...
idtelefone...
numero...
)

2-Como faço a consulta da quantidade de pessoas por cidade

 

Basicamente isso:

SELECT count(idcliente), idendereco FROM tb_clientes
INNER JOIN tb_enderecos ON tb_enderecos.idendereco = tb_clientes.idendereco
INNER JOIN tb_cidades.idcidade ON tb_enderecos.idcidade = tb_cidades.idcidade
WHERE tb_cidades.idcidade = ID_CIDADE_ESCOLHIDA

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nossa, muito o brigado.

 

Pode dar algumas dicas de consultas que eu poderia fazer com essas tabelas.

Só consegui pensar em duas. Tipo nao pode ser consultas muito simples.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Poste para nós o que você pensou, adoraríamos te ajudar (:

 

(Não esquece de marcar a resposta como resolvido, e se foi útil, dar ponto positivo de reputação)

Compartilhar este post


Link para o post
Compartilhar em outros sites
/* quantidade de pessoas menores de idade de cada s.e.xo */

Select se.xo, COUNT (*) from tb_clientes WHERE (idade<18) GROUP by se.xo;



/* quantidade de clientes por cidade*/

select c.nome,count(c.nome) from tb_clientes A inner join tb_enderecos B on a.idendereco = b.idendereco inner join tb_cidades C on b.idcidade = c.idcidade group by c.nome



PRECISO DE MAIS 2 CONSULTAS E MAIS UMA OUTRA QUE RETORNE ESTA FICHA

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aqui está, 3 consultas (:

SELECT * FROM tb_clientes
SELECT * FROM tb_enderecos
SELECT * FROM tb_cidades

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.