Skip to content

Instantly share code, notes, and snippets.

@reginadiana
Last active June 12, 2025 14:56
Show Gist options
  • Save reginadiana/fc81ecaffa91e9562a8bd7e3059f90ae to your computer and use it in GitHub Desktop.
Save reginadiana/fc81ecaffa91e9562a8bd7e3059f90ae to your computer and use it in GitHub Desktop.
Anotações sobre SQL e Banco de Dados

📚 Para acessar o conteúdo introdutório sobre SQL, acesse este notion

As sintaxes apresentadas sao baseadas em SQL, mas vale lembrar que dependendo do tipo de banco que esteja utilizando (ex: Oracle, SQL Server), algumas sintaxes podem mudar.

Select TOP

É bem parecido com o uso do LIMIT. Com o TOP conseguimos limitar uma quantidade de retornos baseado em valores fixos ou em porcentagem. É útil para base de dados grandes.

Limitando por valor fixo:

SELECT TOP 50 <column> FROM <table>;

Limitando por porcentagem:

Se quisermos puxar 90% da base, podemos fazer

SELECT TOP 90 PERCENT <column> FROM <table>;

Para o Oracle por exemplo, usariamos uma sintaxe com FETCH FIRST

Podemos mesclar a seleçao com top com outras queries como where, order by, etc:

SELECT TOP 5 <column> FROM <table>
WHERE column is not null
SELECT TOP 3 * FROM <table>
ORDER BY <column> DESC;

Podemos aplicar funções nativas nas nossas queries.

MAX()

Retorna o maior valor daquela coluna. Ex: retornar o maior preço

SELECT MIN(Price)
FROM Products; 

MIN()

Retorna o menor valor daquela coluna. Ex: retornar o menor preço

SELECT MIN(Price)
FROM Products; 

Agregando outras queries. Ex: retorna uma coluna com os menores valores em conjunto com seus respectivos category ids.

Aqui, o AS está sendo usado para definir um nome descritivo (SmallestPrice) para o retorno de MAX(Price)

SELECT MIN(Price) AS SmallestPrice, CategoryID
FROM Products
GROUP BY CategoryID; 

É possível definir uma frase ou conjunto de palavras como alias. Ex:

SELECT COUNT(*) AS [Number of records]
FROM Products;

COUNT()

Retorna a quantidade de valores daquela coluna considerando valores nulos. Ex: retornar quantos preços existem

SELECT COUNT(Price)
FROM Products; 

SUM()

Retorna o valor somado dos valores daquela coluna. Ex: retornar a soma total de todos os preços

SELECT SUM(Price)
FROM Products; 

Podemos ainda manipular expressões dentro da função, como por exemplo multiplicando cada quantidade por 10 e depois somando tudo

SELECT SUM(Quantity * 10)
FROM OrderDetails;

Podemos ainda manupular e relacionar tabelas diferentes:

SELECT SUM(Price * Quantity)
FROM OrderDetails
LEFT JOIN Products ON OrderDetails.ProductID = Products.ProductID;

AVG()

Retorna a média dos valores daquela coluna, ignorando valores nulos. Ex: retornar a média de preço

SELECT AVG(Price)
FROM Products; 

Podemos ainda manular outras queries em cima, como por exemplo, puxando todos os produtos cujo seu valor é maior do que a média:

SELECT * FROM Products
WHERE price > (SELECT AVG(price) FROM Products);

LIKE

O LIKE é usado em conjunto com o WHERE para fazer buscas mais sofisticadas em strings. Podemos buscar por valores que começem, terminem ou contenham com letras especificas por exemplo.

... continuar


SQL e Banco de Dados

Termo Descrição
SQL linguagem estruturada para acessar e manipular dados de um banco de dados
RDBMS linguagem que permite criar, acessar e gerenciar banco de dados relacionais
database conjunto de uma ou mais tabelas
table conjunto de uma ou mais colunas e linhas
column representa uma divisão de dados na tabela, ex: id, name
row representa um registro dentro da tabela
field representa um valor dentro de uma coluna

Comandos

Comando Descrição
SELECT extracts data from a database
UPDATE updates data in a database
DELETE deletes data from a database
INSERT INTO inserts new data into a database
CREATE DATABASE creates a new database
ALTER DATABASE modifies a database
CREATE TABLE creates a new table
ALTER TABLE modifies a table
DROP TABLE deletes a table
CREATE INDEX creates an index (search key)
DROP INDEX deletes an index
  • Queries

    Retorna todas as colunas e linhas:

    SELECT * FROM table;

    Retorna uma coluna e seus campos:

    SELECT column FROM table;

    Retorna duas ou mais colunas e seus campos:

    SELECT column1, column2...
    FROM table;

    Retorna uma quantidade limitada de resultados:

    SELECT * FROM table
    LIMIT 1000 # aliás, isso é um comentário em SQL

    Retorna os campos que sao diferentes em uma coluna, isto é, se tivermos uma coluna chamada "name" com 2 valores "Maria", essa query vai retornar apenas um registro com o nome de "Maria". Em outras palavras, ela omite os valores repetidos:

    SELECT DISTINCT column FROM table;

    Agora, se quisermos contas quantas vezes o nome "Maria" apareceu na coluna "name", podemos fazer algo como:

    SELECT COUNT(DISTINCT column) FROM table;

    Verifica se o valor é nulo:

    SELECT column1
    FROM table
    WHERE column1 IS NULL; # IS NOT NULL para nao nulos
  • Operações com WHERE

    SELECT * FROM table
    WHERE column = 'string_type_value'
    SELECT * FROM table
    WHERE column > 80 # valor do tipo numérico
    SELECT * FROM table
    WHERE column < 60
    SELECT * FROM table
    WHERE column <= 60
    SELECT * FROM table
    WHERE column >= 60
    SELECT * FROM table
    WHERE column <> 'string' # OU !=, diferente de
    SELECT * FROM table
    WHERE column BETWEEN 60 AND 80
    SELECT * FROM table
    WHERE column LIKE 'partial_string%' # OU '%partial_string', '%partial_string%'
    SELECT * FROM table
    WHERE column IN ('value1', 'value2')
  • Operações com ORDER BY

    Retorna os registros ordenados:

    Para valores numéricos, a ordenação será em relação a um valor menor ou maior. Já para strings, a ordenação será alfabética.

    SELECT column1, column2, ...
    FROM table
    ORDER BY column1, column2, ... ASC|DESC;

    Podemos ordenar múltiplas colunas de uma vez. Ex: dado uma tabela com as colunas "Country" e "Name", se fizemos a ordenação primeiro pelo país teremos o seguinte resultado:

    SELECT * FROM Countries
    ORDER BY Country

    Repare que a coluna de nome segue uma ordem dentro dos registros "Argentina" que estao na coluna "Country":

    image.png

    Agora, se quisermos ordenar a coluna de nome dentro dos registros de "Argentina", adicionamos uma segunda coluna na ordenacao:

    SELECT * FROM Countries
    ORDER BY Country, CustomerName;

    image.png

  • CRUD

    CREATE Inserindo um novo registro na tabela

    Podemos definir as colunas e os valores respectivos para cada uma.

    INSET INTO table (column1, column2, column3...)
    VALUES ('value1', 'value2', 'value3'...)

    READ Acessando valores

    SELECT * FROM table

    UPDATE Atualizando um valor

    ⚠️ Sempre adicione um where na query para atualizar o valor correto, a menos que queria atualizar todos os valores daquela coluna
    UPDATE table
    SET column = 'new_value'
    WHERE column = 'old_value'

    DELETE Deletando valores e tabelas

    Para deletar um registro:

    DELETE FROM table
    WHERE column = 'value'

    Para deletar todos os registros de uma tabela, mantendo sua estrutura:

    DELETE FROM table;

    Já para deletar a tabela em si:

    DROP TABLE table;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment