Criando um relacionamento 1-n
Iremos agora criar uma tabela de titutares stitu e uma
tabela de dependentes sdep.
CRIANDO AS TABELAS
Criando a tabela de titular.:
Escreva o script abaixo no bloco de notas.
create table stitu(
cod_tit int not null primary key,
nome varchar(40) not null,
snome varchar(50) not null,
fone varchar(20));
Salve como cria_stitu.sql e insira em seu banco de dados, criando assim
a tabela stitu. USAR REDIRECIONAMENTO -
MySQL -u root -p Banco < cria_stitu.sql
Vamos agora criar a tabela de dependentes .:
Escreva o script abaixo no bloco de notas.
create table sdep(
cod_ped int not null,
cod_tit int not null,
nome varchar(40) not null,
snome varchar(50) not null,
PRIMARY KEY (cod_ped,cod_tit));
Assim na última linha do script temos uma chave composta,
formada pela chave estrajeira (cod_dep) e pela chave primária da tabela sdep (cod_tit).
PRIMARY KEY (cod_ped,cod_tit));
Salve como cria_sdep.sql e insira em seu banco de dados, criando assim
a tabela sdep. USAR REDIRECIONAMENTO -
MySQL -u root -p Banco < cria_sdep.sql
Insira os dados nas duas tabelas.
SCRIPT PARA INSERIR DADOS NA TABELA sdep .:
use lemb;
insert into stitu(cod_tit,nome,snome,fone)
values
(1,"cristiano","ronaldo","8489-2929"),
(2,"flacia","algusto guimarães","8374-5958"),
(3,"joana","maria de almeida","8490-4993"),
(4,"bruna","da silva","7467-2928");
SCRIPT PARA INSERIR DADOS NA TABELA sdep .:
use lemb;
insert into sdep(cod_ped,cod_tit,nome,snome)
values
(1,1,"cristiano","ronaldo jr"),
(2,1,"maria","bartolomeu ronaldo"),
(3,1,"amanda","bartolomeu ronaldo"),
(1,2,"paula","algusto guimarães"),
(2,2,"Osmar","algusto guimarães"),
(1,3,"joana","maria de almeida"),
(1,4,"bruna","da silva");
Dado o exemplo abaixo fazer o mesmo para stitu e sdep.
mysql> select sdep.* from stitu inner join sdep on sdep.cod_tit = stitu.cod_tit order by sdep.cod_ped;
+---------+---------+--------+------------+
| cod_ped | cod_tit | nome | snome |
+---------+---------+--------+------------+
| 1 | 1 | ana | clara |
| 1 | 2 | ana | maria |
| 1 | 3 | Luiza | chaves |
| 2 | 2 | jose | carlos |
| 2 | 1 | jose | pedro |
| 3 | 2 | renata | dos santos |
+---------+---------+--------+------------+
6 rows in set (0.00 sec)
com o exemplo acima - fazer um script para realizar a execução.
Início
Listando somente um titular
Em nosso exemplo iremos listar os dependentes do titular 1.
Fazendo o script .:
use lemb;
select sdep.* from stitu inner join sdep on sdep.cod_tit = stitu.cod_tit where sdep.cod_tit = 1;
Salvar como selec_dependentes2.sql
Executando;
F:\banco_mysql > mysql -u root -p < selec_dependentes.sql
Enter password:
cod_ped cod_tit nome snome
1 1 cristiano ronaldo jr
2 1 maria bartolomeu ronaldo
3 1 amanda bartolomeu ronaldo
F:\banco_mysql>
Listando somente um titular, mas com a seleção do nome sendo maior que "b".
Editando o script .:
use lemb;
select sdep.* from stitu inner join sdep on sdep.cod_tit = stitu.cod_tit where sdep.cod_tit = 1 and sdep.nome > "b";
Salve como selec_dependentes2.sql
Executando;
F:\banco_mysql > mysql -u root -p < selec_dependentes.sql
Enter password:
cod_ped cod_tit nome snome
1 1 cristiano ronaldo jr
2 1 maria bartolomeu ronaldo
F:\banco_mysql>
Início