Skip to content

joaopauloaramuni/banco-de-dados

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

98 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


newtonpaiva


Repo Banco de Dados

Disciplina dos cursos de Ciência da Computação, Sistemas de Informação e Análise e Desenvolvimento de Sistemas do Centro Universitário Newton Paiva

  • 2°Sem 2023

Sumário:

Links úteis:

🧰 Ferramentas de Diagramação e Design

🗃️ Sistemas de Gerenciamento de Bancos de Dados (SGBDs)
💻 Ferramentas de Acesso e Administração
💾 Relacionais (SQL)

Esses bancos utilizam linguagem estruturada (SQL) para manipular dados relacionais organizados em tabelas.

🐘 PostgreSQL

🧱 SQLite

🍃 Não Relacional (NoSQL)

Bancos de dados orientados a documentos, chave-valor ou grafos, mais flexíveis para dados semi-estruturados.

🍃 MongoDB


🏗️ SQL Roadmap

Um roadmap é um guia visual que apresenta etapas, habilidades ou conhecimentos necessários para atingir um objetivo específico. Ele ajuda a organizar o aprendizado ou desenvolvimento ao longo do tempo, mostrando caminhos recomendados e prioridades.


📚 Livros Recomendados

📜 Scripts de exemplo

📜 Comandos úteis
-- 📌 Criação de tabela com chave primária
CREATE TABLE [NOME_TABELA] (
    [COLUNA1] TIPO NOT NULL,
    [COLUNA2] TIPO,
    ...
    CONSTRAINT [PK_NOME_TABELA] PRIMARY KEY ([COLUNA1])
);
-- Cria uma nova tabela e define a chave primária para garantir unicidade

-- 🔐 Criação de índice único
CREATE UNIQUE INDEX [IPK_NOME_TABELA] ON [NOME_TABELA]([COLUNA]);
-- Cria um índice para garantir que os valores da coluna sejam únicos

-- 📥 Inserção de dados
INSERT INTO NOME_TABELA (COLUNA1, COLUNA2, ...) 
VALUES (VALOR1, VALOR2, ...);
-- Insere um novo registro na tabela

-- 🔍 Consulta simples com filtro
SELECT * FROM TABELA WHERE COLUNA LIKE '%VALOR%';
-- Filtra registros com valores que contenham o padrão informado

-- ✏️ Atualização de dados
UPDATE NOME_TABELA SET COLUNA = NOVO_VALOR WHERE CONDICAO;
-- Atualiza registros existentes com base em uma condição

-- ❌ Exclusão de registros
DELETE FROM NOME_TABELA WHERE CONDICAO;
-- Remove registros da tabela que satisfaçam a condição

-- 🔗 INNER JOIN: registros com correspondência em ambas as tabelas
SELECT A.COLUNA, B.COLUNA
FROM TABELA_A A
INNER JOIN TABELA_B B ON A.CHAVE = B.CHAVE;
-- Retorna dados apenas onde há correspondência entre as tabelas

-- 🔗 LEFT JOIN: todos da esquerda + correspondentes da direita
SELECT A.COLUNA, B.COLUNA
FROM TABELA_A A
LEFT JOIN TABELA_B B ON A.CHAVE = B.CHAVE;
-- Retorna todos os registros da tabela da esquerda, mesmo sem correspondência na direita

-- 🔗 RIGHT JOIN: todos da direita + correspondentes da esquerda
SELECT A.COLUNA, B.COLUNA
FROM TABELA_A A
RIGHT JOIN TABELA_B B ON A.CHAVE = B.CHAVE;
-- Retorna todos os registros da tabela da direita, mesmo sem correspondência na esquerda

-- 🔗 FULL OUTER JOIN: todos os registros de ambas as tabelas
SELECT A.COLUNA, B.COLUNA
FROM TABELA_A A
FULL OUTER JOIN TABELA_B B ON A.CHAVE = B.CHAVE;
-- Retorna todos os registros, com ou sem correspondência

-- 📊 GROUP BY com agregação
SELECT COLUNA_AGRUPADA, SUM(VALOR) AS TOTAL
FROM TABELA
GROUP BY COLUNA_AGRUPADA;
-- Agrupa registros e aplica função agregadora (SUM, AVG, COUNT...)

-- 📈 ORDER BY para ordenar resultados
SELECT * FROM TABELA
ORDER BY COLUNA DESC;
-- Ordena os resultados de forma crescente (ASC) ou decrescente (DESC)

-- 📎 Subquery (subconsulta)
SELECT COLUNA, (SELECT AVG(VALOR) FROM OUTRA_TABELA) AS MEDIA
FROM TABELA;
-- Usa o resultado de uma subconsulta como coluna no SELECT principal

-- 🔄 UNION: une resultados de duas consultas
SELECT COLUNA1 FROM TABELA1
UNION
SELECT COLUNA1 FROM TABELA2;
-- Junta resultados diferentes em uma única lista (sem duplicados)

-- 🧮 COUNT com GROUP BY
SELECT COLUNA_AGRUPADA, COUNT(*) AS TOTAL
FROM TABELA
GROUP BY COLUNA_AGRUPADA;
-- Conta quantos registros existem por grupo

-- 📄 DISTINCT para eliminar duplicados
SELECT DISTINCT COLUNA
FROM TABELA;
-- Retorna apenas valores únicos da coluna selecionada

-- 🧪 BETWEEN para filtros por intervalo
SELECT * FROM TABELA
WHERE DATA BETWEEN '2023-01-01' AND '2023-12-31';
-- Filtra registros dentro de um intervalo (inclusive os limites)

-- 🔘 IN para múltiplos valores
SELECT * FROM TABELA
WHERE STATUS IN ('PAGO', 'PENDENTE', 'CANCELADO');
-- Filtra registros que possuem um dos valores indicados

-- ❓ IS NULL e IS NOT NULL
SELECT * FROM TABELA WHERE COLUNA IS NULL;
SELECT * FROM TABELA WHERE COLUNA IS NOT NULL;
-- Verifica se uma coluna está ou não preenchida

-- 🎯 CASE para lógica condicional
SELECT 
  NOME,
  CASE 
    WHEN VLR_PEDIDO > 100 THEN 'ALTO'
    WHEN VLR_PEDIDO > 50 THEN 'MÉDIO'
    ELSE 'BAIXO'
  END AS CATEGORIA_VALOR
FROM PEDIDO_VENDA;
-- Permite criar lógica condicional diretamente nas consultas

-- 🔢 AVG, MAX, MIN
SELECT 
    AVG(VALOR) AS MEDIA, 
    MAX(VALOR) AS MAIOR, 
    MIN(VALOR) AS MENOR 
FROM TABELA;
-- Calcula média, maior e menor valores de uma coluna

-- 💡 LIMIT (ou TOP no SQL Server)
SELECT * FROM TABELA
LIMIT 10; -- (MySQL, PostgreSQL)
-- ou
SELECT TOP 10 * FROM TABELA; -- (SQL Server)
-- Restringe o número de registros retornados

About

Repo Banco de Dados

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

 

Packages

No packages published