言語
日本語
English

Caution

お使いのブラウザはJavaScriptが無効になっております。
当サイトでは検索などの処理にJavaScriptを使用しています。
より快適にご利用頂くため、JavaScriptを有効にしたうえで当サイトを閲覧することをお勧めいたします。

  1. トップページ
  2. SQL辞典
  3. 【環境構築】SQLの実行環境

【環境構築】SQLの実行環境

SQLの開発環境を構築する方法を解説します。SQLはデータベースを操作するための言語です。軽量なSQLiteから本格的なMySQL・PostgreSQLまで、複数の選択肢があります。

SQLite で始める(最も手軽)

SQLiteは軽量なデータベースで、サーバーのインストールが不要です。学習やちょっとした動作確認に最適です。

OSインストール方法
Windowssqlite.org から『sqlite-tools』をダウンロードして展開します。展開先のフォルダパスを環境変数『PATH』に追加してください。
macOSmacOSには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インストール方法
WindowsMySQL公式サイト から『MySQL Installer』をダウンロードして実行します。
macOSHomebrew をインストール後、ターミナルで『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インストール方法
WindowsPostgreSQL公式サイト からインストーラーをダウンロードして実行します。
macOSHomebrew をインストール後、ターミナルで『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 FiddleMySQL・PostgreSQL・SQLiteに対応しています。左にテーブル定義、右にクエリを書いて実行できます。
SQLite OnlineSQLiteに特化したオンラインエディタです。シンプルな画面ですぐにSQLを試せます。

オンラインサービスは手軽ですが、データは保存されません。本格的な学習や開発には、ローカル環境の構築をおすすめします。

おすすめのエディタ

SQLファイル(『.sql』)の作成や、データベースの管理に便利なツールを紹介します。

ツール特徴
VSCodeSQL関連の拡張機能が豊富で、SQLの構文ハイライト・補完・データベース接続が行えます。無料。正式名は『Visual Studio Code』。
Sublime Text軽量で動作が非常に速いエディタです。シンプルな画面でコーディングに集中できます。Windows / macOS / Linux 対応。
秀丸エディタ1993年リリース、日本で長年愛されている国産テキストエディタです。動作が軽快でマクロ機能も搭載。Windows 専用・買い切り型。
DBeaverMySQL・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

記事の間違いや著作権の侵害等ございましたらお手数ですがまでご連絡頂ければ幸いです。