【環境構築】SQLの実行環境
SQLの開発環境を構築する方法を解説します。SQLはデータベースを操作するための言語です。軽量なSQLiteから本格的なMySQL・PostgreSQLまで、複数の選択肢があります。
SQLite で始める(最も手軽)
SQLiteは軽量なデータベースで、サーバーのインストールが不要です。学習やちょっとした動作確認に最適です。
| OS | インストール方法 |
|---|---|
| Windows | sqlite.org から『sqlite-tools』をダウンロードして展開します。展開先のフォルダパスを環境変数『PATH』に追加してください。 |
| macOS | macOSにはSQLiteが標準搭載されています。追加インストールは不要です。 |
ターミナルで以下のコマンドを実行すると、SQLiteの対話モードが起動します。
sqlite3 test.db
対話モードでSQLを入力して実行できます。
テーブルを作成します。
CREATE TABLE users (
id INTEGER PRIMARY KEY,
name TEXT NOT NULL,
age INTEGER
);
データを挿入します。
INSERT INTO users (name, age) VALUES ('綾波レイ', 14);
INSERT INTO users (name, age) VALUES ('碇シンジ', 14);
データを取得します。
SELECT * FROM users;
実行結果です。
1|綾波レイ|14 2|碇シンジ|14
対話モードを終了します。
.quit
MySQL のインストールと接続
MySQLは最も広く使われているデータベースの一つです。Webアプリケーション開発でよく採用されています。macOS で Homebrew を使う場合は、あらかじめ Homebrew をインストールしておく必要があります。インストールされていない場合は公式サイト(https://brew.sh/)の手順に従ってインストールしてください。
| OS | インストール方法 |
|---|---|
| Windows | MySQL公式サイト から『MySQL Installer』をダウンロードして実行します。 |
| macOS | Homebrew をインストール後、ターミナルで『brew install mysql』を実行します。 |
インストール後、サーバーを起動します。
brew services start mysql ==> Successfully started `mysql` (label: homebrew.mxcl.mysql)
ターミナルからMySQLに接続します。これで対話モードが始まります。なお、『-p』オプションを付けるとパスワードの入力を求められます。
mysql -u root -p Enter password: ********
パスワードは入力しても画面に表示されません(セキュリティ上の仕様です)。Homebrew でインストールした直後は、パスワードが設定されていない場合があります。その場合は何も入力せず Enter を押すか、『$ mysql -u root』で接続してください。
※ 接続時に『Can't connect to local MySQL server through socket』と表示された場合は、サーバーが起動していない可能性があります。こちらを参照してください。
データベースを作成して選択します。
CREATE DATABASE mydb; Query OK, 1 row affected (0.01 sec) USE mydb; Database changed
あとは通常のSQLが実行できます。
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
age INT
);
Query OK, 0 rows affected (0.03 sec)
対話モードを終了するには『exit』と入力します。
exit Bye
サーバーを停止するには以下のコマンドを実行します。
brew services stop mysql Stopping `mysql`... (might take a while) ==> Successfully stopped `mysql` (label: homebrew.mxcl.mysql)
続いてMySQLをアンインストールする方法のご紹介です。データベースのデータも完全に削除したい場合は、アンインストール前にデータディレクトリの保存場所を確認する必要がありますので、対話モードで以下を入力してください。先にMySQLをアンインストールをしてしまうと、データディレクトリ保存場所の確認ができませんので手順を間違えないようご注意ください。
SELECT @@datadir; /opt/homebrew/var/mysql/
MySQLをアンインストールするには以下のコマンドを実行します。
brew uninstall mysql
先ほど確認したパスを指定してデータディレクトリを削除します。
rm -rf /opt/homebrew/var/mysql
PostgreSQL のインストールと接続
PostgreSQLは高機能で信頼性の高いデータベースです。複雑なクエリや大規模システムに向いています。macOS で Homebrew を使う場合は、あらかじめ Homebrew をインストールしておく必要があります。インストールされていない場合は公式サイト(https://brew.sh/)の手順に従ってインストールしてください。
| OS | インストール方法 |
|---|---|
| Windows | PostgreSQL公式サイト からインストーラーをダウンロードして実行します。 |
| macOS | Homebrew をインストール後、ターミナルで『brew install postgresql』を実行します。 |
バージョンを指定してインストールする場合は、以下のように『@』の後にメジャーバージョンを付けます。
brew install postgresql@17
インストール後、サーバーを起動します。
brew services start postgresql ==> Successfully started `postgresql` (label: homebrew.mxcl.postgresql)
※ バージョンを指定してインストールした場合、以下のエラーが表示されることがあります。
brew services start postgresql Error: Formula `postgresql@18` is not installed.
この場合は、インストール時に指定したバージョンを付けて起動してください。
brew services start postgresql@17 ==> Successfully started `postgresql@17` (label: homebrew.mxcl.postgresql@17)
ターミナルからPostgreSQLに接続します。これで対話モードが始まります。
psql -U postgres
※ 接続時に『connection to server on socket "/tmp/.s.PGSQL.5432" failed』と表示された場合は、サーバーが起動していない可能性があります。こちらを参照してください。『role "postgres" does not exist』と表示された場合はこちらを参照してください。
データベースを作成して接続します。
CREATE DATABASE mydb; CREATE DATABASE \c mydb You are now connected to database "mydb" as user "postgres".
テーブル作成とデータ操作はMySQLとほぼ同じです。
CREATE TABLE users (
id SERIAL PRIMARY KEY,
name VARCHAR(50) NOT NULL,
age INTEGER
);
CREATE TABLE
対話モードを終了するには『\q』と入力します。
\q
サーバーを停止するには以下のコマンドを実行します。
brew services stop postgresql Stopping `postgresql`... (might take a while) ==> Successfully stopped `postgresql` (label: homebrew.mxcl.postgresql)
PostgreSQLをアンインストールする場合は、まずサーバーを停止してください。最初にサーバーが動いているか確認します。
brew services list Name Status User File postgresql@17 started _root
『started』と表示されている場合は停止します。
brew services stop postgresql Stopping `postgresql`... (might take a while) ==> Successfully stopped `postgresql` (label: homebrew.mxcl.postgresql)
次にバージョンの確認が必要なので以下のコマンドを実行します。
psql --version psql (PostgreSQL) 17.3
続いてPostgreSQLをアンインストールする方法のご紹介です。データベースのデータも完全に削除したい場合は、アンインストール前にデータディレクトリの保存場所を確認する必要がありますので、対話モードで以下を入力してください。先にPostgreSQLをアンインストールをしてしまうと、データディレクトリ保存場所の確認ができませんので手順を間違えないようご注意ください。
SHOW data_directory; /opt/homebrew/var/postgresql@17
以下のコマンドでアンインストールします。バージョンに合わせて『postgresql@17』のように記述を変更してください。
brew uninstall postgresql@17
先ほど確認したパスを指定してデータディレクトリを削除します。
rm -rf /opt/homebrew/var/postgresql@17
SQLの書き方(大文字と小文字)
SQLの教材やドキュメントでは、キーワードを大文字で書くのが一般的です。
SELECT name, salary FROM employees WHERE department = '営業';
これは1970年代にSQLが生まれた頃、コンピュータが大文字しか扱えなかったことに由来します。当時はパンチカードで命令を入力していた時代で、COBOL や FORTRAN など同時期の言語も全て大文字でした。その名残で、SQL標準の仕様書でもキーワードは大文字で記載されており、「キーワードは大文字、テーブル名・列名は小文字」という慣習が定着しました。
ただし、SQL自体は大文字と小文字を区別しません。以下の3つは全て同じ結果になります。
SELECT name FROM employees; select name from employees; Select Name From Employees;
現在ではエディタのシンタックスハイライト(構文の色分け)が充実しているため、小文字で書いてもキーワードの区別は容易です。大文字・小文字どちらを使うかはチームやプロジェクトの方針次第ですが、当サイトではSQL標準の慣習に従い、キーワードを大文字で統一しています。
オンラインで試す
インストールなしでブラウザからSQLを試せるサービスもあります。環境構築の前に、まずSQLの文法に慣れたい方におすすめです。
| サービス | 特徴 |
|---|---|
| DB Fiddle | MySQL・PostgreSQL・SQLiteに対応しています。左にテーブル定義、右にクエリを書いて実行できます。 |
| SQLite Online | SQLiteに特化したオンラインエディタです。シンプルな画面ですぐにSQLを試せます。 |
オンラインサービスは手軽ですが、データは保存されません。本格的な学習や開発には、ローカル環境の構築をおすすめします。
おすすめのエディタ
SQLファイル(『.sql』)の作成や、データベースの管理に便利なツールを紹介します。
| ツール | 特徴 |
|---|---|
| VSCode | SQL関連の拡張機能が豊富で、SQLの構文ハイライト・補完・データベース接続が行えます。無料。正式名は『Visual Studio Code』。 |
| Sublime Text | 軽量で動作が非常に速いエディタです。シンプルな画面でコーディングに集中できます。Windows / macOS / Linux 対応。 |
| 秀丸エディタ | 1993年リリース、日本で長年愛されている国産テキストエディタです。動作が軽快でマクロ機能も搭載。Windows 専用・買い切り型。 |
| DBeaver | MySQL・PostgreSQL・SQLiteなど多数のデータベースに対応するGUIツールです。テーブルの閲覧・編集がビジュアルに行えます。無料。 |
最近では『VSCode』が最も広く使われているらしいのですが、管理人はシンプルかつ軽快に動くエディタが大好物なので現在は『Sublime Text』を愛用しております。良ければ参考にしてやってください。
それと秀丸エディタについて補足をさせてください。秀丸エディタの初リリースは1993年、動作が軽快で正規表現による強力な検索・置換機能を備えており、更に『マクロ』を使って自分好みの設定にすることが可能な本当に素敵なエディタでございます。最近ですと『マクロ』は『アドオン』なんかが該当しますが、なんと1990年代からすでにその機能を実装していたという遙か先の未来を見越したような設計で、そういった面でも大変すばらしいエディタです。
実は管理人もWindows3.1からWindows7頃までずっと秀丸エディタを使ってプログラミングをしていたクチで、長年大変お世話になっておるのでございます。そして開発者の斉藤秀夫さんは未だに秀丸エディタのアップデートを続けており、例えばWindows11、その他64Bit板のWindowsでも問題なく起動させることができます。秀丸エディタはこちらから購入でき、買い切り型で価格も4000円程度、WindowsOSに入れておくと色々と捗るので買っておいて損はないかなと思います。
(´-`).。oO(管理人は昔からお世話になっている秀夫さんを応援したいので、個別にご紹介させて頂きました...)
(´-`).。oO(しかし30年以上使っているのに支払った金額はたった4000円前後...これほどコスパの良いものが他に存在するのかというレベルですね...)
(´-`).。oO(ではでは続きをどうぞ。環境構築作業、がんばってくださいませ...)
コマンドが見つからないとき
ターミナルで『sqlite3: command not found』『mysql: command not found』『psql: command not found』と表示される場合は、PATH(パス)が通っていない可能性があります。以下の手順で確認・設定してください。
1. コマンドの場所を探します
使いたいコマンドの場所を確認します。
which sqlite3 which mysql which psql
見つからない場合、よくあるインストール先を確認します。
SQLite:
ls /usr/bin/sqlite3 ls /usr/local/bin/sqlite3
MySQL:
ls /usr/local/mysql/bin/mysql ls /opt/homebrew/bin/mysql
PostgreSQL:
ls /usr/local/bin/psql ls /opt/homebrew/bin/psql ls /usr/local/pgsql/bin/psql
2. 使用しているシェルを確認します
echo $SHELL
『/bin/zsh』と表示されたら『~/.zshrc』、『/bin/bash』と表示されたら『~/.bashrc』に設定を書きます。
3. PATH に追加します
コマンドの場所がわかったら、シェルの設定ファイルに PATH を追加します。
macOS (zsh) の場合(MySQL の例):
echo 'export PATH="/usr/local/mysql/bin:$PATH"' >> ~/.zshrc source ~/.zshrc
Linux (bash) の場合(PostgreSQL の例):
echo 'export PATH="/usr/local/pgsql/bin:$PATH"' >> ~/.bashrc source ~/.bashrc
Windows の場合は「システムの詳細設定」→「環境変数」→「Path」に各データベースクライアントのインストール先フォルダを追加します(例: MySQL なら『C:\Program Files\MySQL\MySQL Server 8.0\bin』)。
サーバーに接続できないとき
コマンドは見つかるのに接続できない場合は、データベースサーバーが起動していない可能性があります。SQLite はファイルベースのためサーバー不要ですが、MySQL と PostgreSQL はサーバーが動いている必要があります。
MySQL: ソケットエラー
以下のエラーが表示された場合、MySQL サーバーが起動していません。
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
サーバーの状態を確認します。
brew services list
MySQL が『stopped』や『error』になっている場合は、以下のコマンドで起動します。
brew services start mysql
起動後、再度接続を試します。
mysql -u root -p
それでも接続できない場合は、ソケットファイルの場所が合っていない可能性があります。MySQL が実際に使っているソケットファイルを確認します。
mysql_config --socket
表示されたパスが『/tmp/mysql.sock』と異なる場合は、接続時に『--socket』オプションで指定します。
mysql -u root -p --socket=/var/run/mysqld/mysqld.sock
MySQL: アクセス拒否エラー
以下のエラーが表示された場合、パスワードが間違っているか、ユーザーが存在しません。
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
Homebrew でインストールした直後は、root ユーザーにパスワードが設定されていない場合があります。パスワードなしで接続を試します。
mysql -u root
接続できた場合は、パスワードを設定しておきましょう。
ALTER USER 'root'@'localhost' IDENTIFIED BY '新しいパスワード';
PostgreSQL: 接続拒否エラー
以下のエラーが表示された場合、PostgreSQL サーバーが起動していません。
psql: error: connection to server on socket "/tmp/.s.PGSQL.5432" failed: Connection refused
サーバーの状態を確認し、起動します。
brew services list brew services start postgresql
起動後、再度接続を試します。
psql -U postgres
PostgreSQL: ロールが存在しないエラー
以下のエラーが表示された場合、指定したユーザー名のロール(アカウント)が存在しません。
FATAL: role "postgres" does not exist
Homebrew でインストールした場合、デフォルトのロールは macOS のユーザー名になっています。以下のコマンドで接続できます。
psql -d postgres
『postgres』ロールを作成したい場合は以下を実行します。
createuser -s postgres
記事の間違いや著作権の侵害等ございましたらお手数ですがこちらまでご連絡頂ければ幸いです。