データサイエンティストのための100のクエリで学ぶSQL
(gvwilson.github.io)SQL for the Weary
- 対象読者: 細胞生物学の修士号を持つレイチェルは、研究病院で細胞分析の仕事をしながらデータサイエンティストを目指している。
- 必要な前提知識: 基本的なUnixコマンドと表形式データの分析能力。
- 学習成果: データベースとデータベース管理者の違いを説明し、SQLを書き、テーブル定義とデータ操作を行い、結合の種類を説明し、隣接行の処理のためにウィンドウ関数を使い、トランザクションとトリガーを理解し、SQLを使ってJSONデータを操作し、Pythonを通じてデータベースとやり取りできるようになる。
セットアップ
- 最新リリースのダウンロード: SQLiteデータベースのサンプル、SQLクエリ、Pythonスクリプトなどを含むファイルを一時ディレクトリに展開する。
背景概念
- データベース: 保存および検索が可能なデータの集合。
- データベース管理システム(DBMS): 特定種類のデータベースを管理するプログラム。
- SQLite: データベースを単一ファイルとして保存し、PostgreSQLはより高い性能のために情報を複数ファイルに分散して保存する。
- リレーショナルデータベース管理システム(RDBMS): データをテーブルに保存し、SQLを使ってクエリする。
- NoSQLデータベース: MongoDBのようにテーブルを使わないデータベースも存在する。
データベース接続
- データベース接続: 実際のクエリではないが、他の作業を行う前に必要な手順。
管理コマンド
- SQLite管理コマンド: 標準SQLの一部ではなく、PostgreSQLの特殊コマンドは
\で始まる。 - 出力形式:
.headers onと.mode markdownを使って結果を読みやすく出力する。
テーブル操作
- テーブル作成:
create tableコマンドでテーブルと列を定義する。 - データ挿入:
insert intoコマンドでテーブルにデータを追加する。 - 行の更新:
updateコマンドで特定条件を満たす行のデータを変更する。 - 行の削除:
delete fromコマンドで特定条件を満たす行を削除する。
結合
- 結合: 2つのテーブルの情報を結び付ける作業。
- 内部結合:
inner joinを使って2つのテーブルで一致する行だけを結合する。 - 左結合:
left joinを使って左側テーブルのすべての行を保持し、右側テーブルに欠けている値はnullで埋める。
集計関数
- 集計: 複数の値を1つにまとめる作業。
- 一般的な集計関数:
sum、max、min、avgなどを使ってデータを集計する。 - グループ化:
group byを使って特定の列の一意な組み合わせごとに行をグループ化し、各グループに対して集計を行う。
GN⁺の見解
- この記事は、データベースとSQLに関する基本的な理解を助けるための資料であり、初級ソフトウェアエンジニアやデータサイエンスに関心のある人に有用である。
- 実際の例とともにSQLのさまざまな機能を説明しており、データベースの管理と操作に関する実践的な知識を提供している。
- 特にデータベース結合、集計関数、テーブル操作などはデータ分析に関連する作業で非常に重要であり、この記事はこれらの概念を明確に理解するのに役立つ。
1件のコメント
Hacker Newsの意見