18 pontos por GN⁺ 2024-02-07 | 1 comentários | Compartilhar no WhatsApp

SQL for the Weary

  • Público-alvo: Rachel, com mestrado em biologia celular, trabalha com análise celular em um hospital de pesquisa e quer se tornar cientista de dados.
  • Conhecimentos prévios necessários: comandos básicos de Unix e capacidade de analisar dados tabulares.
  • Resultados de aprendizagem: explicar a diferença entre banco de dados e administrador de banco de dados, escrever SQL, definir tabelas e manipular dados, explicar tipos de join, usar funções de janela para trabalhar com linhas adjacentes, compreender transações e gatilhos, manipular dados JSON com SQL e interagir com bancos de dados por meio de Python.

Configuração

  • Baixar a versão mais recente: descompacte em um diretório temporário os arquivos que incluem exemplos de banco de dados SQLite, consultas SQL, scripts Python etc.

Conceitos de base

  • Banco de dados: coleção de dados que podem ser armazenados e consultados.
  • Sistema de gerenciamento de banco de dados (DBMS): programa que gerencia um tipo específico de banco de dados.
  • SQLite: armazena o banco de dados em um único arquivo; o PostgreSQL distribui as informações em vários arquivos para obter maior desempenho.
  • Sistema de gerenciamento de banco de dados relacional (RDBMS): armazena dados em tabelas e faz consultas usando SQL.
  • Banco de dados NoSQL: também existem bancos de dados como o MongoDB que não usam tabelas.

Conexão com o banco de dados

  • Conexão com o banco de dados: não é uma consulta em si, mas é uma etapa necessária antes de executar outras tarefas.

Comandos administrativos

  • Comandos administrativos do SQLite: não fazem parte do SQL padrão, e os comandos especiais do PostgreSQL começam com \.
  • Formato de saída: use .headers on e .mode markdown para exibir os resultados de forma legível.
Publicidade

Manipulação de tabelas

  • Criação de tabela: defina tabelas e colunas com o comando create table.
  • Inserção de dados: adicione dados à tabela com o comando insert into.
  • Atualização de linhas: altere os dados das linhas que atendem a uma condição específica com o comando update.
  • Exclusão de linhas: remova as linhas que atendem a uma condição específica com o comando delete from.

Joins

  • Join: operação que combina informações de duas tabelas.
  • Inner join: combina apenas as linhas correspondentes das duas tabelas usando inner join.
  • Left join: mantém todas as linhas da tabela da esquerda usando left join e preenche os valores ausentes da tabela da direita com null.

Funções de agregação

  • Agregação: operação que combina vários valores em um só.
  • Funções de agregação comuns: use sum, max, min, avg etc. para agregar dados.
  • Agrupamento: use group by para agrupar linhas de acordo com combinações únicas de determinadas colunas e realizar agregações em cada grupo.

Opinião do GN⁺

  • Este texto é um material para ajudar na compreensão básica de bancos de dados e SQL, sendo útil para engenheiros de software iniciantes ou pessoas interessadas em ciência de dados.
  • Ele explica diversos recursos do SQL com exemplos práticos, oferecendo conhecimento aplicável sobre gerenciamento e manipulação de bancos de dados.
  • Em especial, joins de banco de dados, funções de agregação e manipulação de tabelas são muito importantes em tarefas relacionadas à análise de dados, e este texto ajuda a entender esses conceitos com clareza.

1 comentários

 
GN⁺ 2024-02-07
Comentários do Hacker News
  • É possível usar o ChatGPT para escrever consultas complexas como um cientista de dados. Com isso, dá para obter métricas úteis, como taxa de conversão e taxa de cliques em mensagens.
  • O significado do termo cientista de dados mudou desde a época em que era considerado “o trabalho mais sexy”. O artigo apresenta Rachel, mestre em biologia, que faz análise celular em um hospital de pesquisa e quer se tornar cientista de dados. No passado, cientistas de dados eram pessoas com formação quantitativa e também experiência em engenharia de software, mas hoje às vezes são vistos como “analistas de dados supervalorizados”.
  • Pode ser uma boa reescrever este guia usando DuckDB. Hoje, DuckDB é usado com mais frequência do que SQLite por cientistas de dados.
  • É um guia de SQL muito conciso, com excelente didática por meio de exemplos. Nas universidades americanas, esse conteúdo é ensinado ao longo de um semestre, mas este guia é suficiente para a maior parte das funções de engenharia de software na indústria, exceto otimização de banco de dados.
  • É possível praticar SQL com um app para Mac chamado TextQuery. Ele permite importar rapidamente conjuntos de dados CSV e executar consultas SQL, e a versão beta atual pode ser usada gratuitamente.
  • Em voos com Wi‑Fi instável, é uma boa ideia baixar tutoriais longos em uma única página. Fica a curiosidade se existem tutoriais semelhantes para outras linguagens ou tecnologias além de SQL.
  • Muitas consultas só são válidas em SQLite, e incluem recursos que não são suportados por alguns SGBDs. Por exemplo, filtragem de agregação não é suportada por MySQL, MS SQL, Oracle etc.
  • Em vez de ser um tutorial para cientistas de dados, parece mais um bom resumo de SQL em geral.
  • A explicação sobre "left outer join" só se aplica a condições de igualdade e pode criar uma compreensão equivocada sobre left join. Esse tipo de explicação é muito comum, mas pode ser enganoso.