Introdução ao SQL (Structured
Query Language)
Componente: Estrutura e Qualidade dos Dados
Curso Técnico em Ciência de Dados – Escola do Futuro
Objetivos da Aula
- Compreender o que é SQL e sua importância.
- Instalar o ambiente para execução de comandos SQL.
- Realizar operações básicas com comandos SQL (DML).
O que é SQL?
- Linguagem padrão para manipulação de bancos de dados relacionais.
- Utilizada para consultar, inserir, atualizar e remover dados.
- Compatível com SGBDs como: MySQL, PostgreSQL, SQLite, Oracle.
O que o SQL pode fazer?
- DDL: Definição de estruturas (ex.: CREATE TABLE)
- DML: Manipulação de dados (ex.: SELECT, INSERT)
- DCL: Controle de permissões (ex.: GRANT, REVOKE)
- TCL: Controle de transações (ex.: COMMIT, ROLLBACK)
Por que aprender SQL?
- Base essencial para qualquer trabalho com dados.
- Presente em análise de dados, BI, ciência de dados, ERP, sistemas.
- Permite integração com ferramentas como Python, Power BI, Excel.
Instalando o Ambiente SQL
Opções recomendadas:
- DB Browser for SQLite – simples e leve
- MySQL + MySQL Workbench – mais completo
- Google Colab com SQLite – 100% online
Primeiro Teste: Criando Banco
1. Abrir o DB Browser ou Workbench
2. Criar banco de dados chamado: escola
3. Criar tabela:
CREATE TABLE aluno (
id INTEGER PRIMARY KEY,
nome TEXT NOT NULL,
idade INTEGER
);
Inserindo Dados
INSERT INTO aluno (id, nome, idade)
VALUES (1, 'João Silva', 20);
Consultando Dados
SELECT * FROM aluno;
Atualizando Dados
UPDATE aluno
SET idade = 21
WHERE id = 1;
Deletando Dados
DELETE FROM aluno
WHERE id = 1;
Atividade Prática
1. Criar as tabelas:
- curso (id, nome, carga_horaria)
- matricula (id_aluno, id_curso, data_matricula)
2. Inserir dados para:
- 3 alunos
- 2 cursos
Tipos de Dados em SQL
- INT: números inteiros (ex.: 1, 100)
- VARCHAR(n): textos de até n caracteres
- DATE: datas (ex.: '2025-04-22')
- BOOLEAN: verdadeiro ou falso
Cláusula WHERE (Avançado)
- BETWEEN: valores dentro de um intervalo
- IN: valores dentro de uma lista
- LIKE: busca por padrões
- IS NULL: verifica valores nulos
Operadores Lógicos
- AND: ambas as condições verdadeiras
- OR: pelo menos uma condição verdadeira
- NOT: nega a condição
Ordenação e Limitação de
Resultados
- ORDER BY: ordena os resultados
- LIMIT: limita o número de registros retornados
Exemplo:
SELECT * FROM aluno ORDER BY idade DESC LIMIT 5;
Funções Agregadas
- COUNT(): conta registros
- SUM(): soma valores
- AVG(): calcula média
- MIN(): menor valor
- MAX(): maior valor
JOINs em SQL
- INNER JOIN: retorna registros com correspondência em ambas as tabelas
- LEFT JOIN: retorna todos os registros da tabela da esquerda, mesmo sem
correspondência
Exemplo de JOIN (Aluno ↔
Curso ↔ Matrícula)
SELECT a.nome AS aluno, c.nome AS curso
FROM matricula m
JOIN aluno a ON m.id_aluno = a.id
JOIN curso c ON m.id_curso = c.id;
Exercício 1
Liste os alunos com idade maior que 20.
Resposta:
SELECT nome FROM aluno WHERE idade > 20;
Exercício 2
Liste os nomes dos alunos e o nome do curso em que estão matriculados.
Resposta:
SELECT a.nome AS aluno, c.nome AS curso
FROM matricula m
JOIN aluno a ON m.id_aluno = a.id
JOIN curso c ON m.id_curso = c.id;
Exercício 3
Conte quantos alunos estão matriculados no curso 'SQL Básico'.
Resposta:
SELECT COUNT(*)
FROM matricula m
JOIN curso c ON m.id_curso = c.id
WHERE c.nome = 'SQL Básico';
INT (Integer) – Tipo Numérico
- Armazena números inteiros (positivos ou negativos).
- Usado para valores como idade, quantidade, número de páginas.
- Exemplo prático na biblioteca:
qtdePaginas INT,
quantidade INT,
disponivel INT
- Benefícios: eficiente para cálculos, ocupa menos espaço que outros tipos
numéricos.
VARCHAR(n) – Texto de Tamanho
Variável
- Armazena cadeias de caracteres (textos).
- 'n' define o número máximo de caracteres.
- Usado para nomes, títulos, editoras, idiomas.
- Exemplo prático na biblioteca:
ISBN VARCHAR(50),
editora VARCHAR(50),
idioma VARCHAR(50)
- Benefícios: flexível para textos curtos a médios, economiza espaço
comparado ao TEXT.
TEXT – Texto Longo
- Armazena textos extensos, sem limite pré-definido.
- Usado para campos como descrições, observações.
- Exemplo prático na biblioteca:
titulo TEXT,
autor TEXT
- Benefícios: ideal para textos maiores, mas ocupa mais espaço e tem
menos otimizações que VARCHAR.
DATE e YEAR – Datas
- DATE armazena uma data completa (ano, mês, dia).
- YEAR armazena apenas o ano (4 dígitos).
- Exemplo prático na biblioteca:
anoPublicacao YEAR
- Benefícios: facilita operações com datas, como cálculos de idade ou filtros
por período.
BOOLEAN – Verdadeiro ou Falso
- Armazena dois valores possíveis: TRUE (1) ou FALSE (0).
- Usado para indicar status (ativo/inativo, disponível/indisponível).
- Exemplo prático:
ativo BOOLEAN
- Benefícios: ocupa pouco espaço e facilita lógicas simples.
Exercício Maior: CRUD Completo
(Comentado)
1. Criar tabela CLIENTES:
CREATE TABLE clientes (
id INT AUTO_INCREMENT PRIMARY KEY,
nome VARCHAR(100),
email VARCHAR(100),
data_nascimento DATE
);
2. Inserir clientes:

Introducao_SQL_Aula5_Final.pptxhhhgghhhtyt

  • 1.
    Introdução ao SQL(Structured Query Language) Componente: Estrutura e Qualidade dos Dados Curso Técnico em Ciência de Dados – Escola do Futuro
  • 2.
    Objetivos da Aula -Compreender o que é SQL e sua importância. - Instalar o ambiente para execução de comandos SQL. - Realizar operações básicas com comandos SQL (DML).
  • 3.
    O que éSQL? - Linguagem padrão para manipulação de bancos de dados relacionais. - Utilizada para consultar, inserir, atualizar e remover dados. - Compatível com SGBDs como: MySQL, PostgreSQL, SQLite, Oracle.
  • 4.
    O que oSQL pode fazer? - DDL: Definição de estruturas (ex.: CREATE TABLE) - DML: Manipulação de dados (ex.: SELECT, INSERT) - DCL: Controle de permissões (ex.: GRANT, REVOKE) - TCL: Controle de transações (ex.: COMMIT, ROLLBACK)
  • 5.
    Por que aprenderSQL? - Base essencial para qualquer trabalho com dados. - Presente em análise de dados, BI, ciência de dados, ERP, sistemas. - Permite integração com ferramentas como Python, Power BI, Excel.
  • 6.
    Instalando o AmbienteSQL Opções recomendadas: - DB Browser for SQLite – simples e leve - MySQL + MySQL Workbench – mais completo - Google Colab com SQLite – 100% online
  • 7.
    Primeiro Teste: CriandoBanco 1. Abrir o DB Browser ou Workbench 2. Criar banco de dados chamado: escola 3. Criar tabela: CREATE TABLE aluno ( id INTEGER PRIMARY KEY, nome TEXT NOT NULL, idade INTEGER );
  • 8.
    Inserindo Dados INSERT INTOaluno (id, nome, idade) VALUES (1, 'João Silva', 20);
  • 9.
  • 10.
    Atualizando Dados UPDATE aluno SETidade = 21 WHERE id = 1;
  • 11.
    Deletando Dados DELETE FROMaluno WHERE id = 1;
  • 12.
    Atividade Prática 1. Criaras tabelas: - curso (id, nome, carga_horaria) - matricula (id_aluno, id_curso, data_matricula) 2. Inserir dados para: - 3 alunos - 2 cursos
  • 13.
    Tipos de Dadosem SQL - INT: números inteiros (ex.: 1, 100) - VARCHAR(n): textos de até n caracteres - DATE: datas (ex.: '2025-04-22') - BOOLEAN: verdadeiro ou falso
  • 14.
    Cláusula WHERE (Avançado) -BETWEEN: valores dentro de um intervalo - IN: valores dentro de uma lista - LIKE: busca por padrões - IS NULL: verifica valores nulos
  • 15.
    Operadores Lógicos - AND:ambas as condições verdadeiras - OR: pelo menos uma condição verdadeira - NOT: nega a condição
  • 16.
    Ordenação e Limitaçãode Resultados - ORDER BY: ordena os resultados - LIMIT: limita o número de registros retornados Exemplo: SELECT * FROM aluno ORDER BY idade DESC LIMIT 5;
  • 17.
    Funções Agregadas - COUNT():conta registros - SUM(): soma valores - AVG(): calcula média - MIN(): menor valor - MAX(): maior valor
  • 18.
    JOINs em SQL -INNER JOIN: retorna registros com correspondência em ambas as tabelas - LEFT JOIN: retorna todos os registros da tabela da esquerda, mesmo sem correspondência
  • 19.
    Exemplo de JOIN(Aluno ↔ Curso ↔ Matrícula) SELECT a.nome AS aluno, c.nome AS curso FROM matricula m JOIN aluno a ON m.id_aluno = a.id JOIN curso c ON m.id_curso = c.id;
  • 20.
    Exercício 1 Liste osalunos com idade maior que 20. Resposta: SELECT nome FROM aluno WHERE idade > 20;
  • 21.
    Exercício 2 Liste osnomes dos alunos e o nome do curso em que estão matriculados. Resposta: SELECT a.nome AS aluno, c.nome AS curso FROM matricula m JOIN aluno a ON m.id_aluno = a.id JOIN curso c ON m.id_curso = c.id;
  • 22.
    Exercício 3 Conte quantosalunos estão matriculados no curso 'SQL Básico'. Resposta: SELECT COUNT(*) FROM matricula m JOIN curso c ON m.id_curso = c.id WHERE c.nome = 'SQL Básico';
  • 23.
    INT (Integer) –Tipo Numérico - Armazena números inteiros (positivos ou negativos). - Usado para valores como idade, quantidade, número de páginas. - Exemplo prático na biblioteca: qtdePaginas INT, quantidade INT, disponivel INT - Benefícios: eficiente para cálculos, ocupa menos espaço que outros tipos numéricos.
  • 24.
    VARCHAR(n) – Textode Tamanho Variável - Armazena cadeias de caracteres (textos). - 'n' define o número máximo de caracteres. - Usado para nomes, títulos, editoras, idiomas. - Exemplo prático na biblioteca: ISBN VARCHAR(50), editora VARCHAR(50), idioma VARCHAR(50) - Benefícios: flexível para textos curtos a médios, economiza espaço comparado ao TEXT.
  • 25.
    TEXT – TextoLongo - Armazena textos extensos, sem limite pré-definido. - Usado para campos como descrições, observações. - Exemplo prático na biblioteca: titulo TEXT, autor TEXT - Benefícios: ideal para textos maiores, mas ocupa mais espaço e tem menos otimizações que VARCHAR.
  • 26.
    DATE e YEAR– Datas - DATE armazena uma data completa (ano, mês, dia). - YEAR armazena apenas o ano (4 dígitos). - Exemplo prático na biblioteca: anoPublicacao YEAR - Benefícios: facilita operações com datas, como cálculos de idade ou filtros por período.
  • 27.
    BOOLEAN – Verdadeiroou Falso - Armazena dois valores possíveis: TRUE (1) ou FALSE (0). - Usado para indicar status (ativo/inativo, disponível/indisponível). - Exemplo prático: ativo BOOLEAN - Benefícios: ocupa pouco espaço e facilita lógicas simples.
  • 28.
    Exercício Maior: CRUDCompleto (Comentado) 1. Criar tabela CLIENTES: CREATE TABLE clientes ( id INT AUTO_INCREMENT PRIMARY KEY, nome VARCHAR(100), email VARCHAR(100), data_nascimento DATE ); 2. Inserir clientes: