Day2 前半
SQLite環境の全体像をつかむ
Day1 で「データベースとは何か」「テーブル・行・列とは何か」が見えてきました。
Day2 ではいよいよ、実際に SQLite を「動かせる状態」にしていきます。ここでつまずくと、その後の SQL 練習がすべて机上の空論になってしまうので、環境まわりを丁寧に押さえます。
SQLite は、サーバーを立てるタイプのデータベース(MySQL や PostgreSQL)とは違い、ファイル1つで完結する軽量なデータベースです。
つまり「ファイルを作る=データベースを作る」という世界観で動きます。このシンプルさが、学習にとても向いています。
SQLiteとは何か
サーバーいらず、ファイル1つで動くデータベース
SQLite は、リレーショナルデータベースの一種ですが、サーバープロセスを立ち上げる必要がありません。
アプリケーションやコマンドラインから直接「ファイル」を開き、その中にテーブルやデータを保存します。
sample.db というファイルがあれば、それがそのまま「sample というデータベース」です。
バックアップしたければ、そのファイルをコピーするだけでよい、という非常に分かりやすい仕組みになっています。
この「ファイル=データベース」という感覚を、ここでしっかり頭に入れておいてください。
後で「どこにデータが保存されているのか」が迷子にならなくなります。
SQLiteの起動方法の種類
CLI と GUI、どちらも「SQLiteと会話するための窓口」
SQLite を操作する方法は、大きく分けて二つあります。
ひとつは CLI(コマンドラインインターフェース)。
もうひとつは GUI(グラフィカルなツール)です。
どちらも「SQLite に SQL を送るための窓口」です。
中で動いている SQLite 自体は同じですが、触り方が違います。
プログラミングを本気でやるなら CLI に慣れておくと強いですが、最初は GUI のほうが安心感がある人も多いです。
この講座では、両方のイメージを持てるようにしていきます。
CLIでのSQLite起動イメージ
「sqlite3」と打つだけで、データベースの世界に入れる
まずは CLI 版のイメージからつかみましょう。
ターミナル(macOS / Linux)やコマンドプロンプト(Windows)を開いて、次のように入力します。
sqlite3
うまくインストールされていれば、次のような表示が出ます。
SQLite version 3.xx.xx
Enter ".help" for usage hints.
sqlite>
この sqlite> と表示されている状態が、「SQLite の対話モードが起動している」状態です。
ここに SQL を直接打ち込んでいくことができます。
データベースファイルを指定して起動する
「ファイル名を渡す=そのデータベースを開く」
新しいデータベースを作りたい、あるいは既存のデータベースを開きたいときは、起動時にファイル名を渡します。
sqlite3 sample.db
この1行には、実は三つの意味があります。
sample.db という名前のデータベースファイルに接続する。
sample.db が存在しなければ、新しく作る。
接続した状態で、すぐに SQL を実行できるようにする。
SQLite の世界では、「ファイル名を指定して開く」ことが、そのまま「データベースを作る/開く」ことになります。
ここが他のデータベースと比べて、圧倒的にシンプルなポイントです。
例題:最初のデータベースを作ってみる(CLI)
実際に、学習用のデータベースを作る流れをイメージしてみましょう。
ここでは learn.db という名前のデータベースを作ることにします。
ターミナルで次のように入力します。
sqlite3 learn.db
すると、次のような表示になります。
SQLite version 3.xx.xx
Enter ".help" for usage hints.
sqlite>
この時点で、まだテーブルは何もありませんが、「learn.db というデータベースに接続している」状態になっています。
このファイルは、カレントディレクトリ(今いるフォルダ)に作られます。
試しに、テーブルをひとつ作ってみましょう。Day1 で使った users テーブルを再登場させます。
CREATE TABLE users (
id INTEGER,
name TEXT,
age INTEGER
);
SQLEnter を押すと、何も表示されませんが、エラーが出なければ成功です。
この瞬間、learn.db の中に users というテーブルが作られ、ファイルとしても実体がきちんと保存されます。
SQLite では「テーブルを作るなど、何かしらの変更を行ったタイミングでファイルが本格的に書き込まれる」とイメージしておくとよいです。
データベース作成の本質
「コマンド1つで、作成と接続が同時に行われる」
多くのサーバー型データベースでは、「サーバーを起動する」「CREATE DATABASE 文を書く」「ユーザーを作る」といった手順が必要です。
しかし SQLite では、次の1行で完結します。
sqlite3 myapp.db
この1行で、新しい myapp.db が作られ、そのまま接続された状態になります。
あとはテーブルを作り、データを入れていくだけです。
初心者にとって、この「環境構築の軽さ」は非常に大きなメリットです。
余計な設定に悩まされず、「SQL そのもの」に集中できます。
セキュリティの視点から見た「ファイル=データベース」
情報セキュリティの観点では、SQLite の「ファイル1つで完結する」という性質は、メリットでもありリスクでもあります。
メリットとしては、バックアップや移動が簡単であること。
ファイルをコピーすれば、そのままデータベースの複製になります。
一方で、リスクとしては、そのファイルが外部に持ち出されれば、中身のデータも丸ごと持ち出されるということです。
つまり、SQLite を使うときは「ファイルのアクセス権限」や「保存場所」に特に気を配る必要があります。
学習段階ではローカル環境で完結するので深刻な問題にはなりにくいですが、「ファイルを守ることがデータを守ることだ」という感覚は、今のうちから持っておくと良いです。
Day2 前半のまとめ
SQLite はサーバー不要で、ファイル1つがそのままデータベース。
CLI では sqlite3 ファイル名 と打つだけで、そのデータベースを作成し、同時に接続できる。
テーブルを作るなどの操作を行ったタイミングで、ファイルに実体として保存される。
ファイル=データベースなので、バックアップもコピーで済むが、同時にファイルの保護が非常に重要になる。
後半では、
GUI ツール(DB Browser for SQLite のようなもの)での起動イメージ、
CLI での便利な基本操作(終了方法や現在のデータベース確認)、
そして「データベース作成」をもう一段深く掘り下げた例題
を扱っていきます。
