なっトク!

SQLを書くには、どのソフトウェアがいいの?

2023-06-12

たすく

きょうは「SQLを書くソフト、結局どれ?」を、選ぶ順番から整理します

データベースを触りたい。

そう思って調べると、名前がずらりと出てきます。

MySQL、PostgreSQL、SQLite、SQL Server、Oracle。

メジャーなものに絞っても、この数です。

しかも、それぞれ書き方が微妙に違うんでしょ?

あかり
たすく

違います。そこが、この話をややこしくしている本体なんです

ただ、選ぶ順番を決めてしまえば、迷う幅はかなり狭くなります。

そして正直に言うと、選定で止まっている時間のほうが、いちばん高くつきます。

学生時代は、教科書が指定されていました。

選ぶ手間がゼロだったので、そのまま勉強に入れた。

大人の学び直しでは、選ぶところから自分でやることになります。

ここで止まって、結局始めないまま終わる。よくある形だと思っています。

最初に決めるのは、製品名ではありません

「システムを作って人に使わせる」のか。

「自分がデータを読むために使う」のか。

この2つは、まったく別の選択です。

前者では、同時に何人が触るか、落ちたらどうするか、誰が守るかが効いてきます。

後者では、そこはほぼ関係ありません。

効くのは、手元で動かせるか分析の関数がそろっているかだけです。

比較記事が読みにくくなるのは、この2つを混ぜて書いてあるからだと思っています。

「大規模に強い」と書かれても、1人で分析したい人には関係がありません。


主要5つを、選ぶ側から見るとどうなるか

特徴を並べるのではなく、どういう人が選ぶと外さないかで書きます。

PostgreSQL|分析に使うなら、まずここ

オープンソース。

標準への準拠が高く、機能が厚い。

複雑なデータ型を扱えて、自分で関数を足すこともできます。

「後からやりたいことが増える」タイプの用途に強い。

弱点は、相応にリソースを食うこと。

速度を求めると、調整の手間が出ます。

MySQL|情報量が多く、詰まりにくい

同じくオープンソースで、利用者がとにかく多い。

この「多い」は、実務では大きな長所です。

エラー文で検索すれば、たいてい誰かが先に踏んでいます。

軽くて速い一方、凝った分析機能はPostgreSQLに譲ります。

SQLite|練習と、1人の作業に最適

サーバーが要りません。

ファイル1つがデータベースです。

環境構築でつまずかないので、SQLを書いて覚える段階では、これが一番速い。

ただし、複数人で同時に書き込む用途には向きません。

そこは設計思想が違います。

SQL Server|職場がMicrosoftで固まっているなら

性能も分析機能も強く、Microsoft製品とのつながりが良い。

Windows前提の色が濃く(今はLinuxでも動きます)、費用が乗ります。

個人が学習目的で選ぶ理由は、あまりありません。

Oracle|大規模と、止められない業務のため

実績も機能も別格ですが、費用と複雑さも別格です。

これは「選ぶ」というより、勤め先で「使うことになる」類のものだと思っています。


社内の分析やオープンデータに使いたい場合の答え

ここが、この記事の中心です。

商用の大規模システムを作るわけではない。

社内のマーケティング分析や、公開データを活用したい。

その場合は、PostgreSQL か MySQL。

そして、まずSQLiteで書き始めて構いません。

理由は単純です。

この用途で書くSQLは、どれを選んでもほぼ同じだからです。

SELECT、WHERE、GROUP BY、JOIN。

分析で使うのは、この辺りが中心になります。

ここは製品をまたいでほぼ共通です。

じゃあ、最初に悩んだ時間は何だったの……

あかり
たすく

そこなんです。選定に時間を使うより、動かして1本書くほうが早く進みます


「各社バラバラ」は欠点なのか

最後に、いちばん引っかかるところを扱います。

SQLは標準化されています。

でも各社が独自の関数や型、書き方を足しています。

だから移すときに苦労します。

覚え直しも発生します。

これは事実です。

ただ、ここは見方を分けたほうがいいと思っています。

骨格は共通。枝葉が各社独自。

そして、移植で殴られるのは枝葉のほうです。

つまり、骨格を覚えている限り、選択を間違えても学習は無駄になりません。

乗り換えの費用は、身につけた知識ではなく、書いてしまったコードのほうに乗ります。

だから実務では、こう考えます。

独自機能は、便利さと引き換えに、その製品に縛られる。

使うなとは言いません。使うと決めて使えばいい話です。

知らずに縛られるのが怖いってことか

あかり

そのとおりだと思っています。


まとめ

作るのか、読むのか。

まずここを分ける。

読むために使うなら、PostgreSQLかMySQL。

練習はSQLiteから始めてよい。

各社の差は、骨格ではなく枝葉に出る。

だから最初の1本を書き始めるのに、選定の完璧さは要りません。

迷っている時間のほうが、たいてい高くつきます。

大人の学び直しで最初に越える壁は、内容ではありません。

「決まっていないと始められない」という自分の癖のほうです。

この感覚については、受験勉強と社会に出てからの勉強は、何が違うのかで書きました。

答えが用意されていない状態で動く、というのがそもそもの前提の違いです。

  • この記事を書いた人
  • 最新記事

花丸たすく

▸「思考タイプ診断」で、働き方をスマートに
▸ あなたの価値を、現実を変える力へ
▸ 「IT戦略×データ分析×プロジェクトマネジメント」の知見
▸ 京都大学卒業後、教育・情報サービス系JTCなどでDX推進・データ分析・人材開発に従事