Fala galera do mundo dos dados agora é hora de manipular dados com SQL. A missão é trabalhar com o CRUD (create, read, update e delete). Aqui você vai aprender comandos SQL para inserir dados nas tabelas. Comandos para leitura de dados, e também como alterar os dados no banco, seja para atualização ou deleção de registros.
Para manipular dados com SQL, precisamos da estrutura básica de bases de dados e tabelas prontas para esta etapa. Com toda a estrutura pronta, conseguimos realizar as operações de manipulação de dados com SQL, por isso vamos criar uma tabela em um banco de dados já existente. Partiu prática com dados ao cubo!
CRUD com SQL
Para iniciar o nosso CRUD com SQL, iremos criar uma tabela de alunos conforme o código SQL a seguir e esta tabela irá precisar de uma sequência para preenchimento do código aluno de forma dinâmica caso não seja informado.
Primeiramente, vamos ao código SQL que cria uma sequência no banco, vamos usar o comando CREATE SEQUENCE, informar o nome (seq_cod_aluno) da sequência desejada e um valor de start para esta sequência.
CREATE SEQUENCE seq_cod_aluno START 1001
Agora um CREATE TABLE, Para criar a tabela de alunos com algumas informações básicas para a manipulação dos dados. Confere o código SQL abaixo.
CREATE TABLE alunos ( cod_aluno INTEGER DEFAULT NEXTVAL('seq_cod_aluno'), nm_aluno_pri VARCHAR, nm_aluno_ult VARCHAR, id_aluno INTEGER, dt_aluno DATE )
Com a estrutura mínima criada, podemos partir para a função de inserir dados com SQL.
INSERT: Inserir Dados com SQL
Para começar, imagine sua tabela de dados como uma folha em branco pronta para ser preenchida. Vamos aprender como adicionar novos registros. O comando SQL para inserir dados é o INSERT INTO e então informamos os valores desejados, veremos algumas opções para inserir dados com SQL no banco de dados.
Insert de um registro
Para inserir apenas um registro por vez utilizamos o código SQL a seguir.
INSERT INTO alunos VALUES (1001, 'Tiago', 'Dias', 33, '2022-01-01')
No código acima informamos os valores para todas as colunas, mas podemos ter algumas informações vazias,informando valores de apenas algumas colunas.
Insert de registro especificando colunas
É possível especificar para quais colunas estamos informando os valores a serem inseridos, conforme o código SQL abaixo.
INSERT INTO alunos (cod_aluno, nm_aluno_pri, nm_aluno_ult) VALUES (1002, 'Joãozinho', 'da Silva')
Também podemos inserir mais de um registro de uma única vez.
Insert de vários registros
Para inserir vários registros com um único comando SQL, informamos os valores separados por vírgula e assim conseguimos passar todos os registros a ser inserido de uma única vez.
INSERT INTO alunos VALUES (1003, 'Maria', 'da Paz', 25, '2022-02-06'), (1004, 'Joana', 'Santos', 34, '2022-05-06'), (1005, 'Paulo', 'silva', 18, '2022-07-07'), (1006, 'Mariana', 'Oliveira', 25, '2022-02-16')
Em algum momento pode ser necessário criar um backup de uma tabela ou criar uma tabela derivada de outra.
Insert de registros a partir e outra consulta
Dessa forma, conseguimos inserir registros em uma nova tabela a partir de uma outra já existente, confere o código SQL a seguir.
CREATE TABLE alunos_new AS SELECT * FROM alunos
Agora que já temos os dados nas tabelas, podemos aprender a alterar os mesmos utilizando o famoso update.
UPDATE: Alterar Dados com SQL
E se precisarmos fazer uma correção ou atualização? O SQL nos permite fazer isso com facilidade. Através do comando SQL UPDATE podemos fazer alterações nos registros já existentes no banco, confere aqui algumas formas de fazer atualizações nos dados.
Update sem where
Alerta de perigo!!! Update sem a cláusula where pode ser perigoso, caso você não precise atualizar todos os registros de uma tabela. Por isso até o próprio DBeaver apresenta uma mensagem de confirmação para execução da query.
UPDATE alunos_new SET id_aluno = 25
Confere a mensagem de confirmação apresentada pelo DBeaver.
Então, vamos ver update com where.
Update com where
Aqui, além de informar a tabela que vamos atualizar e o campo desejado, informamos uma condição para atualizar apenas o registro dessa condição. Confere código SQL a seguir.
UPDATE alunos SET id_aluno = 25 WHERE id_aluno IS NULL
Podemos também, atualizar mais de uma coluna com apenas um comando SQL.
Update várias colunas
Para atualizar mais de uma coluna com o único update, utilizamos o código SQL abaixo.
UPDATE alunos SET id_aluno = 35 , dt_aluno = '2022-09-01' WHERE cod_aluno = 1006
Caso atualizar o registro não seja suficiente podemos também apagar ele.
DELETE: Deletar Dados com SQL
Às vezes, precisamos nos livrar de informações que não são mais úteis. Com SQL, é simples dizer adeus. Com o comando SQL DELETE podemos apagar registros já existentes no banco, confere aqui algumas formas de fazer os dados sumirem.
Delete sem where
Alerta de perigo dinovo!!! Deletar sem a cláusula where pode ser perigoso, caso você não precise apagar todos os registros de uma tabela. Até o próprio DBeaver apresenta uma mensagem de perigo para confirmar a execução da query.
DELETE FROM alunos_new
Confere a mensagem de perigo apresentada pelo DBeaver para confirmação.
Então, vamos ver o delete com where.
Delete com where
Aqui, além de informar a tabela para deletar o registro, informamos uma condição para deletar apenas o registro dessa condição. Confere código SQL a seguir.
DELETE FROM alunos WHERE dt_aluno IS NULL
Depois de inserir, atualizar e deletar os dados, iremos aprender como consultar, o famoso select do SQL.
SELECT: Consultar Dados com SQL
Agora, vamos explorar o lado mais legal. Como buscar informações específicas em nossos dados. Com o comando SELECT podemos visualizar os dados já existentes no banco, confere aqui algumas formas de fazer essa seleção dos dados.
Select todas as colunas
Aqui temos o famoso SELECT * FROM, onde o asterisco quer dizer todas as colunas.
SELECT * FROM alunos
Confere o resultado da tabela alunos e todas as suas colunas.
Mas, nem sempre iremos querer ver todas as colunas, sendo assim, podemos selecionar apenas algumas delas.
Select algumas as colunas
Aqui, substituímos o * pelos nomes das colunas que queremos exibir na consulta.
SELECT cod_aluno, nm_aluno_pri, id_aluno FROM alunos
E então temos o resultado da imagem abaixo.
Para tabelas muito grandes ou que desconhecemos o seu tamanho podemos especificar a quantidade de linhas a ser exibida.
Select com limite de linhas
Com o comando LIMIT, podemos especificar quantas linhas serão exibidas na consulta.
SELECT * FROM alunos LIMIT 2
E então temos o resultado da imagem abaixo.
Se podemos colocar condições no update e no delete, também podemos colocar no select.
Select com where
O comando WHERE, vai fazer com que a seleção de dados seja filtrada de acordo com a condição especificada nele.
SELECT * FROM alunos WHERE id_aluno IN (33, 35, 44)
E então temos o resultado da imagem abaixo.
E assim, depois de conhecer todas as funções do CRUD (create, read, update e delete), concluímos a manipulação de dados com SQL.
Manipular Dados com SQL ao Cubo
E então chegamos ao fim! Aprendemos a manipular dados com SQL, com este passo a passo bem detalhado. Assim podemos avançar na série SQL na prática! Na sequência você vai aprender a agrupar tabelas com SQL. Um abraço e até a próxima, não esquece de compartilhar o conteúdo para aquele amigo que quer aprender a linguagem SQL na prática.
Conteúdos ao Cubo
Então, se você curtiu o conteúdo, aqui no Dados ao Cubo tem muito mais. Então, deixo algumas sugestões de conteúdos que você pode encontrar. Sempre falando sobre o mundo dos dados!
- Bibliotecas Para Visualização de Dados em Python
- Visualização de Dados com Matplotlib Python
- Visualização de Dados com Seaborn Python
- Visualização de Dados com Plotly Python
- Visualização de Dados com Bokeh Python
- Visualização de Dados com Altair Python
- Visualizar Dados do Snowflake no Metabase
- Visualizar Dados do PostgreSQL no Metabase
Para finalizar, se torne também Parceiro de Publicação Dados ao Cubo. Escreva o próximo artigo e compartilhe conhecimento para toda a comunidade de dados.
Apaixonado por dados e tecnologia ❤️ , criando soluções com dados 📊 📈 , desde 2015, sempre buscando tornar os processos orientados! Com formação em Engenharia da Computação 💾 , MBA Gestão da Informação e Business Intelligence e Especialização em Data Science.
Também atuo como professor na área de dados. Nas horas vagas crio modelos de Machine Learning 🤖 com Python em desafios do Kaggle e escrevo no Dados ao Cubo sobre o mundo dos dados 🎲 !
Compartilhando conhecimentos sempre 🚀