Pular para o conteúdo principal
Banco de Dados

Banco de Dados para Iniciantes: Entenda SQL de Forma Simples

Aprenda o que e banco de dados, a diferenca entre relacional e nao relacional, e domine os comandos SQL basicos com exemplos praticos.

13 min de leitura
FISApp Academy

O que e um banco de dados?

Toda aplicacao que voce usa no dia a dia -- seja um app de delivery, uma rede social ou um sistema bancario -- precisa guardar informacoes. Onde ficam seus dados de cadastro? Seu historico de pedidos? Suas mensagens? Tudo isso esta armazenado em um banco de dados.

Um banco de dados e, essencialmente, um sistema organizado para armazenar, consultar e manipular dados de forma eficiente e segura. Sem ele, qualquer sistema seria como um caderno que voce joga fora toda vez que fecha.

Em termos simples: um banco de dados e como um armario de escritorio super organizado. Cada gaveta (tabela) guarda um tipo de informacao, cada pasta (registro) tem dados sobre uma coisa especifica, e voce pode encontrar qualquer informacao rapidamente usando etiquetas (consultas SQL).

Se voce esta comecando do zero em programacao, entender banco de dados e um passo essencial -- porque praticamente todo software real precisa de um.


Por que aprender banco de dados?

Antes de mergulhar nos comandos, entenda por que isso importa para a sua carreira:

  • Toda aplicacao precisa de dados -- se voce quer ser desenvolvedor, vai trabalhar com bancos de dados diariamente
  • SQL e a linguagem mais requisitada em vagas de tecnologia, segundo pesquisas recentes do Stack Overflow
  • Nao e exclusivo de programadores -- analistas de dados, profissionais de marketing e gestores tambem usam SQL
  • E uma habilidade transferivel -- o conceito funciona igual em MySQL, PostgreSQL, SQL Server, Oracle e outros

Banco de dados relacional vs. nao relacional

Existem dois grandes tipos de banco de dados, e entender a diferenca e fundamental.

Banco de dados relacional (SQL)

Organiza os dados em tabelas com linhas e colunas, como uma planilha do Excel. As tabelas podem se relacionar entre si (por isso o nome "relacional").

Exemplos: MySQL, PostgreSQL, SQL Server, Oracle, SQLite

Quando usar:

  • Dados estruturados e previssiveis
  • Relacionamentos claros entre entidades
  • Necessidade de integridade e consistencia (transacoes bancarias, cadastros)

Banco de dados nao relacional (NoSQL)

Armazena dados em formatos flexiveis, como documentos (JSON), chave-valor, grafos ou colunas.

Exemplos: MongoDB, Redis, Cassandra, DynamoDB, Neo4j

Quando usar:

  • Dados com estrutura variavel
  • Necessidade de alta escalabilidade horizontal
  • Aplicacoes em tempo real, IoT, redes sociais

Comparacao rapida

| Caracteristica | Relacional (SQL) | Nao Relacional (NoSQL) | |---------------|------------------|----------------------| | Estrutura | Tabelas fixas | Flexivel | | Linguagem | SQL padrao | Varia por banco | | Relacionamentos | Forte (JOINs) | Fraco ou diferente | | Consistencia | Alta (ACID) | Variavel | | Escalabilidade | Vertical | Horizontal | | Exemplos | MySQL, PostgreSQL | MongoDB, Redis |

Recomendacao para iniciantes: comece pelo relacional (SQL). Ele e a base de tudo e e requisitado na grande maioria das vagas.


Conceitos fundamentais de um banco relacional

Antes de escrever SQL, voce precisa entender como os dados sao organizados.

Tabela

E a estrutura principal. Pense numa planilha: cada tabela tem um nome e armazena dados sobre um assunto.

Tabela: alunos
+----+----------------+-------------------+-------+
| id | nome           | email             | idade |
+----+----------------+-------------------+-------+
| 1  | Maria Silva    | maria@email.com   | 25    |
| 2  | Joao Santos    | joao@email.com    | 30    |
| 3  | Ana Oliveira   | ana@email.com     | 22    |
+----+----------------+-------------------+-------+

Coluna (campo)

Cada coluna representa uma informacao especifica sobre o dado. No exemplo acima: id, nome, email, idade.

Linha (registro)

Cada linha e um registro individual. No exemplo, temos 3 alunos cadastrados.

Chave primaria (Primary Key)

E o identificador unico de cada registro. Normalmente e a coluna id. Garante que nenhum registro se repita.

Chave estrangeira (Foreign Key)

E uma coluna que referencia a chave primaria de outra tabela, criando o relacionamento entre elas.

Tabela: matriculas
+----+----------+------------+------------+
| id | aluno_id | curso      | data       |
+----+----------+------------+------------+
| 1  | 1        | PZA Start  | 2026-03-01 |
| 2  | 3        | PZA Start  | 2026-03-05 |
+----+----------+------------+------------+

Aqui, aluno_id e uma chave estrangeira que aponta para o id da tabela alunos. Assim, sabemos que a Maria (id 1) e a Ana (id 3) estao matriculadas.


SQL: a linguagem dos bancos de dados

SQL (Structured Query Language) e a linguagem padrao para interagir com bancos de dados relacionais. Com ela, voce pode:

  • Consultar dados (SELECT)
  • Inserir novos dados (INSERT)
  • Atualizar dados existentes (UPDATE)
  • Deletar dados (DELETE)
  • Criar e modificar tabelas (CREATE, ALTER)

Vamos aprender os 4 comandos essenciais que voce vai usar todos os dias como desenvolvedor.


SELECT: consultando dados

O SELECT e o comando mais usado em SQL. Ele busca dados do banco.

Buscar todos os registros

SELECT * FROM alunos;

Resultado: retorna todas as colunas e todos os registros da tabela alunos.

Buscar colunas especificas

SELECT nome, email FROM alunos;

Resultado: retorna apenas nome e email de todos os alunos.

Filtrar com WHERE

SELECT nome, idade FROM alunos
WHERE idade >= 25;

Resultado: retorna apenas alunos com 25 anos ou mais.

Ordenar com ORDER BY

SELECT nome, idade FROM alunos
ORDER BY idade DESC;

Resultado: retorna os alunos ordenados do mais velho para o mais novo.

Limitar resultados com LIMIT

SELECT nome FROM alunos
LIMIT 2;

Resultado: retorna apenas os 2 primeiros registros.

Combinar filtros

SELECT nome, email, idade FROM alunos
WHERE idade >= 20 AND idade <= 30
ORDER BY nome ASC;

Resultado: alunos entre 20 e 30 anos, em ordem alfabetica.


INSERT: adicionando dados

O INSERT cria novos registros em uma tabela.

INSERT INTO alunos (nome, email, idade)
VALUES ('Pedro Costa', 'pedro@email.com', 28);

Resultado: um novo aluno e adicionado a tabela. O id e gerado automaticamente (se configurado como auto-incremento).

Inserir multiplos registros

INSERT INTO alunos (nome, email, idade)
VALUES
  ('Lucas Lima', 'lucas@email.com', 21),
  ('Carla Souza', 'carla@email.com', 27),
  ('Bruno Alves', 'bruno@email.com', 24);

UPDATE: atualizando dados

O UPDATE modifica registros existentes.

UPDATE alunos
SET email = 'maria.nova@email.com'
WHERE id = 1;

Resultado: o email da Maria (id 1) e atualizado.

Erro comum: esquecer o WHERE no UPDATE. Se voce rodar UPDATE alunos SET idade = 30; sem WHERE, todos os alunos terao a idade alterada para 30. Sempre confira o WHERE antes de executar.


DELETE: removendo dados

O DELETE remove registros de uma tabela.

DELETE FROM alunos
WHERE id = 2;

Resultado: o Joao (id 2) e removido da tabela.

Erro comum: assim como o UPDATE, esquecer o WHERE no DELETE e perigoso. DELETE FROM alunos; sem WHERE apaga todos os registros da tabela. Em ambientes de producao, isso pode ser catastrofico. Sempre use WHERE e, se possivel, faca um SELECT antes para confirmar quais registros serao afetados.


Exemplo pratico: sistema de cadastro de alunos

Vamos montar um cenario completo. Imagine que voce esta construindo o sistema de cadastro de uma escola de tecnologia.

Passo 1: criar a tabela

CREATE TABLE alunos (
  id INT PRIMARY KEY AUTO_INCREMENT,
  nome VARCHAR(100) NOT NULL,
  email VARCHAR(150) NOT NULL UNIQUE,
  idade INT,
  cidade VARCHAR(100),
  data_cadastro DATE DEFAULT CURRENT_DATE
);

Passo 2: inserir dados

INSERT INTO alunos (nome, email, idade, cidade)
VALUES
  ('Maria Silva', 'maria@email.com', 25, 'Sao Paulo'),
  ('Joao Santos', 'joao@email.com', 30, 'Rio de Janeiro'),
  ('Ana Oliveira', 'ana@email.com', 22, 'Belo Horizonte'),
  ('Pedro Costa', 'pedro@email.com', 28, 'Curitiba');

Passo 3: consultar dados

-- Todos os alunos de Sao Paulo
SELECT nome, email FROM alunos
WHERE cidade = 'Sao Paulo';

-- Alunos com mais de 25 anos, ordenados por nome
SELECT nome, idade, cidade FROM alunos
WHERE idade > 25
ORDER BY nome ASC;

-- Quantos alunos estao cadastrados?
SELECT COUNT(*) AS total_alunos FROM alunos;

Passo 4: atualizar um registro

UPDATE alunos
SET cidade = 'Florianopolis'
WHERE email = 'pedro@email.com';

Passo 5: remover um registro

DELETE FROM alunos
WHERE id = 2;

Esse fluxo -- criar, inserir, consultar, atualizar, deletar -- e o que voce vai fazer na maioria das aplicacoes reais. E conhecido como CRUD (Create, Read, Update, Delete), e e a base de qualquer sistema.


Quer dominar banco de dados na pratica?

Se voce esta gostando de aprender SQL e quer ir alem -- entendendo como integrar banco de dados com uma aplicacao real, criar projetos com CRUD completo e construir um portfolio profissional --, o curso Programacao do Zero ao Avancado - Start da FISApp Academy cobre tudo isso de forma estruturada e pratica.

Conhecer o PZA Start


Operadores e funcoes uteis em SQL

Alem dos 4 comandos principais, existem recursos que voce vai usar constantemente.

Operadores de comparacao

| Operador | Significado | |----------|------------| | = | Igual | | != ou <> | Diferente | | > | Maior que | | < | Menor que | | >= | Maior ou igual | | <= | Menor ou igual | | BETWEEN | Entre dois valores | | LIKE | Busca por padrao | | IN | Dentro de uma lista |

Exemplos praticos

-- Alunos entre 20 e 30 anos
SELECT * FROM alunos WHERE idade BETWEEN 20 AND 30;

-- Alunos cujo nome comeca com "M"
SELECT * FROM alunos WHERE nome LIKE 'M%';

-- Alunos de SP ou RJ
SELECT * FROM alunos WHERE cidade IN ('Sao Paulo', 'Rio de Janeiro');

Funcoes de agregacao

-- Total de registros
SELECT COUNT(*) FROM alunos;

-- Media de idade
SELECT AVG(idade) FROM alunos;

-- Maior e menor idade
SELECT MAX(idade), MIN(idade) FROM alunos;

-- Soma (util para valores numericos como preco)
SELECT SUM(valor) FROM vendas;

Agrupando com GROUP BY

-- Quantidade de alunos por cidade
SELECT cidade, COUNT(*) AS quantidade
FROM alunos
GROUP BY cidade
ORDER BY quantidade DESC;

Relacionamentos entre tabelas: o poder do JOIN

Uma das maiores vantagens do banco relacional e conectar tabelas. O JOIN permite combinar dados de duas ou mais tabelas.

Exemplo: alunos e cursos

-- Tabela de cursos
CREATE TABLE cursos (
  id INT PRIMARY KEY AUTO_INCREMENT,
  nome VARCHAR(100) NOT NULL,
  categoria VARCHAR(50)
);

-- Tabela de matriculas (conecta alunos e cursos)
CREATE TABLE matriculas (
  id INT PRIMARY KEY AUTO_INCREMENT,
  aluno_id INT,
  curso_id INT,
  data_matricula DATE,
  FOREIGN KEY (aluno_id) REFERENCES alunos(id),
  FOREIGN KEY (curso_id) REFERENCES cursos(id)
);

Consultando com JOIN

-- Quais alunos estao matriculados em quais cursos?
SELECT
  alunos.nome AS aluno,
  cursos.nome AS curso,
  matriculas.data_matricula
FROM matriculas
INNER JOIN alunos ON matriculas.aluno_id = alunos.id
INNER JOIN cursos ON matriculas.curso_id = cursos.id;

Resultado:

+---------------+----------------+------------------+
| aluno         | curso          | data_matricula   |
+---------------+----------------+------------------+
| Maria Silva   | PZA Start      | 2026-03-01       |
| Ana Oliveira  | PZA Start      | 2026-03-05       |
+---------------+----------------+------------------+

Se voce entendeu esse conceito, ja esta a frente de muitos iniciantes. Relacionamentos e JOINs sao o coracao de qualquer sistema real.


Ferramentas para praticar SQL

Voce nao precisa instalar nada para comecar. Algumas opcoes:

Online (sem instalacao)

Para instalar no computador

  • MySQL Workbench -- interface grafica para MySQL
  • pgAdmin -- interface grafica para PostgreSQL
  • DBeaver -- conecta com qualquer banco de dados (recomendado)
  • SQL Server Management Studio (SSMS) -- para SQL Server

Recomendacao para iniciantes

Comece com uma ferramenta online para nao perder tempo com configuracoes. Depois, instale o DBeaver ou o SSMS para trabalhar localmente.


Erro comum

Erro comum: muitos iniciantes tentam aprender SQL apenas lendo teoria ou assistindo videos. SQL e uma habilidade pratica -- voce so vai fixar os comandos se escrever e executar consultas reais. Crie tabelas, insira dados, faca consultas, erre, corrija. A pratica deliberada e o caminho mais rapido para dominar banco de dados.

Outro erro frequente e nao entender a logica dos relacionamentos entre tabelas. Muitos iniciantes criam tabelas isoladas e duplicam dados ao inves de usar chaves estrangeiras. Isso gera inconsistencia e dificulta a manutencao. Dedique tempo a entender o conceito de normalizacao e relacionamentos -- isso vai separar voce de quem apenas "sabe SQL" e quem realmente entende banco de dados.


Resumo rapido

  • Banco de dados e um sistema para armazenar e consultar dados de forma organizada
  • Relacional (SQL) organiza dados em tabelas com relacionamentos; NoSQL usa formatos flexiveis
  • SQL e a linguagem padrao para bancos relacionais -- aprenda primeiro
  • Os 4 comandos essenciais: SELECT (consultar), INSERT (inserir), UPDATE (atualizar), DELETE (remover)
  • Chave primaria identifica cada registro; chave estrangeira conecta tabelas
  • JOIN permite combinar dados de tabelas relacionadas
  • Sempre use WHERE em UPDATE e DELETE para evitar alteracoes em massa
  • CRUD (Create, Read, Update, Delete) e o padrao de qualquer aplicacao real
  • Pratique com ferramentas online antes de instalar qualquer coisa

O que estudar depois

Agora que voce entende o basico de banco de dados e SQL, os proximos passos naturais sao:

  1. Entender como front-end, back-end e APIs se conectam -- o banco de dados e acessado pelo back-end, e entender essa arquitetura e essencial
  2. Conhecer C# para construir aplicacoes reais -- com C# + SQL, voce pode construir sistemas completos
  3. Revisar o que estudar apos dominar logica e fundamentos -- banco de dados e um dos pilares do caminho do desenvolvedor
  4. Voltar ao guia completo para iniciantes -- veja onde banco de dados se encaixa na trilha completa

Pronto para dominar banco de dados de verdade?

SQL e uma das habilidades mais valiosas e requisitadas do mercado de tecnologia. Se voce quer aprender de forma estruturada, com projetos reais e exercicios praticos, o curso Programacao do Zero ao Avancado - Start da FISApp Academy tem um modulo completo de banco de dados -- do basico ao intermediario, com tudo que voce precisa para construir aplicacoes reais.

Comecar agora com o PZA Start

Perguntas Frequentes

Preciso saber programar para aprender SQL?

Nao. SQL e uma linguagem independente que pode ser aprendida por qualquer pessoa, mesmo sem experiencia previa em programacao. Na verdade, muitos profissionais de dados, analistas e gestores aprendem SQL sem nunca terem programado antes.

Qual a diferenca entre MySQL, PostgreSQL e SQL Server?

Todos sao sistemas gerenciadores de banco de dados relacional (SGBDs) que usam SQL como linguagem. A diferenca esta em recursos avancados, performance, licenciamento e ecossistema. MySQL e popular em aplicacoes web, PostgreSQL e robusto e open-source, e SQL Server e muito usado em ambientes corporativos com .NET.

Banco de dados relacional ou NoSQL: qual devo aprender primeiro?

Comece pelo relacional (SQL). Ele e a base da maioria dos sistemas, e os conceitos de tabelas, relacionamentos e normalizacao sao fundamentais para qualquer desenvolvedor. Depois de dominar SQL, aprender NoSQL sera muito mais facil.

Quanto tempo leva para aprender SQL basico?

Com dedicacao de 1 a 2 horas por dia, voce consegue dominar os comandos basicos (SELECT, INSERT, UPDATE, DELETE) em 2 a 4 semanas. O mais importante e praticar com exemplos reais e nao apenas ler teoria.

Quer aprender na prática?

Conheça o curso que vai te levar do zero ao avançado com projetos reais.

Conhecer o curso

Continue lendo