Oi, Camila! Como vai você?
A duplicidade no PostgreSQL, está ligado à diferença entre inserir dados e filtrar dados.
Cada INSERT adiciona um novo registro na tabela. Se o mesmo comando for executado novamente, o PostgreSQL poderá inserir o mesmo nome outra vez, desde que não exista uma restrição de unicidade.
INSERT INTO aluno (nome) VALUES ('Vincius Dias');
INSERT INTO aluno (nome) VALUES ('Nico Steppat');
INSERT INTO aluno (nome) VALUES ('Joao Roberto');
INSERT INTO aluno (nome) VALUES ('Diego');
Esse código adiciona quatro registros. Se ele for executado novamente, serão adicionados mais quatro.
Já esta consulta:
SELECT *
FROM aluno
WHERE nome <> 'Diogo';
não altera a tabela. O operador <>; significa diferente de, então serão exibidos todos os alunos cujo nome seja diferente de Diogo.
No caso do NOT LIKE, o detalhe está no _:
SELECT *
FROM aluno
WHERE nome NOT LIKE 'Di_iogo';
No LIKE, _ representa um único caractere. O padrão Di_iogo não corresponde exatamente a Diogo. Como o NOT LIKE seleciona o que não corresponde ao padrão, Diogo aparece no resultado.
Se você quer apenas excluir Diogo, use:
SELECT *
FROM aluno
WHERE nome <> 'Diogo';
Para descobrir se existem nomes realmente duplicados, você também pode usar GROUP BY:
SELECT nome, COUNT(*)
FROM aluno
GROUP BY nome
HAVING COUNT(*) > 1;
Esse código mostra apenas os nomes que aparecem mais de uma vez.
Você consegue testar esse último comando e verificar quais nomes estão duplicados na sua tabela?
Espero ter ajudado e conte sempre consoco!
Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!
```
Oi, Camila! Tudo bem? Sobre duplicidade no PostgreSQL, o que aconteceu está ligado à diferença entre inserir dados e filtrar dados.
Cada INSERT adiciona um novo registro na tabela. Se o mesmo comando for executado novamente, o PostgreSQL poderá inserir o mesmo nome outra vez, desde que não exista uma restrição de unicidade.
INSERT INTO aluno (nome) VALUES ('Vincius Dias');
INSERT INTO aluno (nome) VALUES ('Nico Steppat');
INSERT INTO aluno (nome) VALUES ('Joao Roberto');
INSERT INTO aluno (nome) VALUES ('Diego');
Esse código adiciona quatro registros. Se ele for executado novamente, serão adicionados mais quatro.
Já esta consulta:
SELECT *
FROM aluno
WHERE nome <> 'Diogo';
não altera a tabela. O operador <> significa diferente de, então serão exibidos todos os alunos cujo nome seja diferente de Diogo.
No caso do NOT LIKE, o detalhe está no _:
SELECT *
FROM aluno
WHERE nome NOT LIKE 'Di_iogo';
No LIKE, _ representa um único caractere. O padrão Di_iogo não corresponde exatamente a Diogo. Como o NOT LIKE seleciona o que não corresponde ao padrão, Diogo aparece no resultado.
Se você quer apenas excluir Diogo, use:
SELECT *
FROM aluno
WHERE nome <> 'Diogo';
Para descobrir se existem nomes realmente duplicados, você também pode usar GROUP BY:
SELECT nome, COUNT(*)
FROM aluno
GROUP BY nome
HAVING COUNT(*) > 1;
Esse código mostra apenas os nomes que aparecem mais de uma vez.
Você consegue testar esse último comando e verificar quais nomes estão duplicados na sua tabela?
Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!