Introdução
Olá, querida(o) estudante! Neste artigo, vamos estudar um dos pilares da Tecnologia da Informação e um dos temas mais cobrados em concursos: os bancos de dados relacionais e a linguagem SQL.
Praticamente todo sistema precisa armazenar, consultar e manipular dados. Para isso, o modelo relacional se tornou o padrão mais utilizado, justamente por sua organização estruturada e pela capacidade de representar relações entre diferentes conjuntos de informações.
Ao longo deste artigo, você vai entender como os dados são organizados em tabelas, qual o papel das chaves primárias e estrangeiras, e como a linguagem SQL permite interagir com essas estruturas. Além disso, vamos analisar questões de concurso que exploram exatamente esses conceitos.
Modelo Relacional: organização dos dados
O modelo relacional organiza os dados em tabelas (também chamadas de relações). Cada tabela é composta por linhas e colunas, onde:
- cada linha representa um registro (tupla)
- cada coluna representa um atributo
Por exemplo, uma tabela de usuários pode conter colunas como nome, idade e e-mail, e cada linha corresponde a um usuário específico.
Essa organização facilita a consulta, a manutenção e o relacionamento entre diferentes conjuntos de dados.
Chave primária: identificação única
Dentro de uma tabela, é fundamental garantir que cada registro possa ser identificado de forma única. Para isso, utilizamos a chave primária (Primary Key).
A chave primária:
- não pode ter valores duplicados
- não pode ser nula
- identifica unicamente cada registro
Por exemplo, em uma tabela de clientes, o campo “id” geralmente é a chave primária.
Esse conceito é extremamente cobrado em provas, principalmente em questões conceituais.
Chave estrangeira: relacionamento entre tabelas
Enquanto a chave primária identifica registros dentro de uma tabela, a chave estrangeira (Foreign Key) é utilizada para criar relações entre tabelas.
Ela funciona como uma referência à chave primária de outra tabela.
Por exemplo:
- uma tabela “Pedidos” pode ter um campo “id_cliente”
- esse campo referencia a chave primária da tabela “Clientes”
Isso permite estabelecer vínculos entre dados, mantendo a consistência das informações.
Integridade referencial
A utilização de chaves estrangeiras garante a chamada integridade referencial.
Isso significa que:
- não é possível inserir um valor de chave estrangeira que não exista na tabela referenciada
- não é possível excluir um registro que está sendo referenciado por outro (dependendo da regra definida)
Esse mecanismo evita inconsistências e dados “órfãos” no banco.
Linguagem SQL: visão geral
A SQL (Structured Query Language) é a linguagem padrão para trabalhar com bancos de dados relacionais.
Ela é dividida em categorias principais:
- DDL (Data Definition Language) → definição de estrutura
- DML (Data Manipulation Language) → manipulação de dados
- DQL (Data Query Language) → consulta
Essa divisão ajuda a entender melhor o papel de cada comando.
Comandos DDL: estrutura do banco
Os comandos DDL são usados para definir e modificar a estrutura do banco de dados.
Entre os principais:
- CREATE TABLE → cria uma tabela
- ALTER TABLE → altera a estrutura de uma tabela
- DROP TABLE → remove uma tabela
Esses comandos não manipulam dados diretamente, mas sim a estrutura onde os dados são armazenados.
Comandos DML: manipulação de dados
Os comandos DML são responsáveis por inserir e modificar dados.
Os principais são:
- INSERT INTO → insere novos registros
- UPDATE → altera registros existentes
- DELETE → remove registros
Aqui já estamos lidando diretamente com os dados armazenados nas tabelas.
SELECT e cláusula WHERE
O comando SELECT é utilizado para consultar dados.
A cláusula WHERE permite filtrar os resultados com base em condições.
Um ponto importante — e frequentemente cobrado — é que o WHERE não é exclusivo do SELECT. Ele também pode ser utilizado com UPDATE e DELETE.
Esse é um detalhe clássico de prova.
JOIN: combinando tabelas
O comando JOIN é utilizado para combinar dados de duas ou mais tabelas.
O mais comum é o INNER JOIN, que retorna apenas os registros que possuem correspondência em ambas as tabelas.
Exemplo conceitual:
- tabela Clientes
- tabela Pedidos
Um JOIN pode trazer informações combinadas, como nome do cliente e detalhes do pedido.
GROUP BY e HAVING
A cláusula GROUP BY é utilizada para agrupar registros, geralmente em conjunto com funções de agregação como:
- COUNT
- SUM
- AVG
Já a cláusula HAVING é usada para filtrar resultados após a agregação.
Importante: o GROUP BY não precisa obrigatoriamente do HAVING — outra pegadinha comum em provas.
Vamos agora às questões de concurso!
1) Ano: 2024 Banca: FGV Órgão: INPE Prova: FGV – 2024 – INPE – Tecnologista Júnior I – Desenvolvimento de Software para Operação de Satélites
SQL (Structured Query Language) é uma linguagem usada para interagir com bancos de dados relacionais.
Em relação ao SQL, analise as afirmativas a seguir e assinale (V) para a verdadeira e (F) para a falsa.
( ) A cláusula WHERE só é utilizada associada ao comando SELECT.
( ) O comando CREATE TABLE cria uma nova tabela no banco de dados e o comando INSERT INTO permite popular essa tabela por meio da inserção de registros.
( ) O comando INNER JOIN é utilizado para unir os resultados de duas ou mais consultas SELECT.
( ) Os comandos ALTER TABLE e UPDATE são usados para atualizar registros.
( ) SQL suporta chaves primárias e estrangeiras.
Alternativas:
A) F – F – F – V – F
B) F – V – F – F – V
C) V – V – V – F – F
D) V – F – V – V – V
E) F – F – V – F – F
Gabarito: Letra B
Comentário:
A primeira afirmativa é falsa, pois a cláusula WHERE não é exclusiva do SELECT — ela também pode ser usada em UPDATE e DELETE.
A segunda afirmativa é verdadeira, pois CREATE TABLE cria a estrutura da tabela e INSERT INTO permite inserir dados nela.
A terceira afirmativa é falsa, pois o JOIN não une consultas SELECT, mas sim dados de tabelas.
A quarta afirmativa é falsa, pois ALTER TABLE altera a estrutura da tabela, enquanto UPDATE altera os dados.
A quinta afirmativa é verdadeira, pois SQL suporta chaves primárias e estrangeiras para garantir integridade.
2) Ano: 2025 Banca: CESPE / CEBRASPE Órgão: SEFAZ-SE Prova: CESPE / CEBRASPE – 2025 – SEFAZ-SE – Auditor Fiscal Tributário – Geral
Uma chave estrangeira (foreign key) de um banco de dados relacional:
A) representa um ou mais campos que, embora possam ser utilizados como chave primária, não foram escolhidos como tal.
B) é uma chave que combina dois ou mais campos para formar um identificador único para registros dentro da mesma tabela.
C) é uma chave especial usada apenas em tabelas temporárias com vistas à melhoria da performance das consultas.
D) é um campo ou conjunto de campos que, em uma tabela, corresponde à primary key em outra tabela, e visa garantir a integridade referencial.
E) garante que cada registro em uma tabela tenha um identificador único, de forma que não haja valores nulos ou duplicados.
Gabarito: Letra D
Comentário:
A – Incorreta.
Essa definição descreve um candidato a chave (candidate key), ou seja, atributos que poderiam ser escolhidos como chave primária, mas não foram. Não tem relação com chave estrangeira.
B – Incorreta.
Essa alternativa descreve uma chave composta (composite key), utilizada para formar um identificador único dentro da própria tabela, e não para referenciar outra tabela.
C – Incorreta.
Não existe esse conceito de chave estrangeira restrita a tabelas temporárias ou voltada à performance. A função da foreign key é relacional, não de otimização.
D – Correta.
A chave estrangeira é exatamente um campo (ou conjunto de campos) que referencia a chave primária de outra tabela, garantindo a integridade referencial, isto é, assegurando que os dados relacionados existam de fato.
E – Incorreta.
Essa é a definição de chave primária (primary key), que garante unicidade e ausência de valores nulos dentro de uma tabela.
Conclusão
Os bancos de dados relacionais constituem a base da maioria dos sistemas modernos. Entender como os dados são organizados, como as tabelas se relacionam e como a SQL permite manipular essas informações é essencial para qualquer profissional de TI.
Além disso, esses conceitos aparecem com grande frequência em concursos públicos, muitas vezes explorando detalhes que passam despercebidos em um estudo superficial. Por isso, dominar a teoria e saber interpretar questões é um diferencial importante.
Referências
- DATE, C. J. An Introduction to Database Systems.
- ELMASRI, R.; NAVATHE, S. Fundamentals of Database Systems.
- ISO/IEC 9075 – SQL Standard.
- Silberschatz, K.; Korth, H.; Sudarshan, S. Database System Concepts.
![[Pricing do mês] AI PRO – Cabeçalho](https://blog-static.infra.grancursosonline.com.br/wp-content/uploads/2026/05/08162015/assinatura-ilimitada-pro-cabecalho.webp)
![[Pricing do mês] AI PRO – Post](https://blog-static.infra.grancursosonline.com.br/wp-content/uploads/2026/05/08162329/assinatura-ilimitada-pro-post.webp)


