「複数のデータベースがあるけど、どれを使っているかわからない…」
「間違ったデータベースでSQL文を実行してしまいそうで怖い」
そんなお悩みを解決するのが、データベースの選択方法です。
この記事では、MySQL、PostgreSQL、SQLiteでデータベースを正しく選択する方法を、初心者の方にもわかりやすく説明します。
データベース選択の重要性

なぜデータベースを選択する必要があるの?
複数のプロジェクト管理 一つのサーバーに複数のデータベースがある場合
誤操作の防止 間違ったデータベースでデータを変更・削除してしまうリスクを防ぐ
作業効率の向上 どのデータベースで作業しているかを明確にする
チームでの協力 他の人が見ても、どのデータベースを使っているかがわかる
データベース選択のタイミング
接続時に指定 ログインするときに使用するデータベースを決める
作業中に切り替え 作業の途中で別のデータベースに変更する
スクリプト実行前 複数のSQLファイルを実行する前に対象を明確にする
MySQLでデータベースを選択する
USE文を使った選択
説明 MySQLでは、USE文を使って作業対象のデータベースを指定します。
基本構文
USE データベース名;
実際の例
USE blog_db;
実行結果
Database changed
解説
USE
:「これから使うデータベースは」という意味blog_db
:選択するデータベース名- 成功すると「Database changed」と表示されます
MySQLでの完全な選択手順
手順1:MySQLに接続
mysql -u root -p
接続結果
Enter password: ********
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 20
Server version: 8.0.33 MySQL Community Server
Type 'help;' or '\h' for help. Type '\c' to clear the input.
mysql>
手順2:利用可能なデータベースを確認
mysql> SHOW DATABASES;
確認結果
+--------------------+
| Database |
+--------------------+
| information_schema |
| blog_db |
| shop_db |
| test_db |
| mysql |
| performance_schema |
| sys |
+--------------------+
7 rows in set (0.00 sec)
手順3:使いたいデータベースを選択
mysql> USE blog_db;
手順4:選択されているか確認
mysql> SELECT DATABASE();
確認結果
+------------+
| DATABASE() |
+------------+
| blog_db |
+------------+
1 row in set (0.00 sec)
接続時にデータベースを指定
説明 MySQLに接続するときに、最初から使いたいデータベースを指定できます。
コマンド
mysql -u root -p blog_db
実行結果
Enter password: ********
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 21
Server version: 8.0.33 MySQL Community Server
Type 'help;' or '\h' for help. Type '\c' to clear the input.
mysql> SELECT DATABASE();
+------------+
| DATABASE() |
+------------+
| blog_db |
+------------+
1 row in set (0.00 sec)
解説
- 接続と同時に
blog_db
が選択されています - USE文を使わずに済むので効率的です
データベースを切り替える
説明 作業中に別のデータベースに切り替えることもできます。
例:blog_dbからshop_dbに切り替え
mysql> USE shop_db;
実行結果
Database changed
切り替え確認
mysql> SELECT DATABASE();
確認結果
+------------+
| DATABASE() |
+------------+
| shop_db |
+------------+
1 row in set (0.00 sec)
PostgreSQLでデータベースを選択する

PostgreSQLの選択方式
説明 PostgreSQLでは、接続時にデータベースを指定する方式です。接続後にMySQLのUSE文のようなコマンドはありません。
PostgreSQLの特徴
- 接続 = データベース選択
- 接続後の切り替えは基本的にできない
- 別のデータベースを使いたい場合は再接続が必要
基本的な接続と選択
説明 psqlコマンドでデータベースを指定して接続します。
基本構文
psql -U ユーザー名 -d データベース名
実際の例
psql -U postgres -d webapp_db
実行結果
Password for user postgres:
psql (15.3)
Type "help" for help.
webapp_db=#
解説
-U postgres
:postgresユーザーで接続-d webapp_db
:webapp_dbデータベースを選択- プロンプトに
webapp_db=#
と表示され、選択されていることがわかります
利用可能なデータベースを確認してから選択
手順1:PostgreSQLにデフォルトデータベースで接続
psql -U postgres
手順2:データベース一覧を確認
postgres=# \l
確認結果
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------+----------+----------+-------------+-------------+-----------------------
postgres | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
template0 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
webapp_db | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
blog_db | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
(5 rows)
手順3:目的のデータベースに再接続
postgres=# \c blog_db
実行結果
You are now connected to database "blog_db" as user "postgres".
blog_db=#
解説
\c データベース名
:接続中のpsqlから別のデータベースに切り替え- プロンプトが
blog_db=#
に変わり、データベースが切り替わったことがわかります
現在のデータベースを確認
確認コマンド
blog_db=# SELECT current_database();
実行結果
current_database
------------------
blog_db
(1 row)
リモート接続でのデータベース選択
説明 リモートサーバーのPostgreSQLに接続する場合も同様です。
コマンド例
psql -h hostname -U username -d database_name
具体例
psql -h 192.168.1.100 -U appuser -d production_db
SQLiteでデータベースを選択する

SQLiteの選択方式
説明 SQLiteはファイルベースなので、ファイルを開くこと自体がデータベースの選択になります。
SQLiteの特徴
- 1ファイル = 1データベース
- ファイルを指定 = データベース選択
- 複数のファイルを同時に扱うことも可能
基本的な選択方法
説明 sqlite3コマンドでファイルを指定して接続します。
基本構文
sqlite3 データベースファイル名
実際の例
sqlite3 blog.db
実行結果
SQLite version 3.39.5 2022-10-14 20:58:05
Enter ".help" for usage hints.
sqlite>
解説
blog.db
ファイルを開いて接続- このファイルがメインのデータベースになります
現在のデータベースを確認
確認コマンド
sqlite> PRAGMA database_list;
実行結果
seq name file
--- --------------- ----------------------------------------
0 main /path/to/blog.db
1 temp
解説
main
:メインのデータベース(blog.db)temp
:一時的なデータ用
複数のデータベースを同時に使用
説明 SQLiteでは、複数のデータベースファイルを同時に扱えます。
他のデータベースをアタッチ
sqlite> ATTACH DATABASE 'shop.db' AS shop_data;
アタッチ後の確認
sqlite> PRAGMA database_list;
実行結果
seq name file
--- --------------- ----------------------------------------
0 main /path/to/blog.db
1 temp
2 shop_data /path/to/shop.db
異なるデータベースのテーブルを使用
-- メインデータベースのテーブル
SELECT * FROM articles;
-- アタッチしたデータベースのテーブル
SELECT * FROM shop_data.products;
データベースをデタッチ
説明 不要になったデータベースを切り離すことができます。
デタッチコマンド
sqlite> DETACH DATABASE shop_data;
デタッチ後の確認
sqlite> PRAGMA database_list;
実行結果
seq name file
--- --------------- ----------------------------------------
0 main /path/to/blog.db
1 temp
データベース選択ミスを防ぐ方法

現在のデータベースを常に確認
各システムでの確認方法
MySQL
SELECT DATABASE();
PostgreSQL
SELECT current_database();
SQLite
PRAGMA database_list;
プロンプト表示の活用
MySQLのプロンプト設定
mysql -u root -p --prompt="mysql [\d]> "
実行結果
mysql [blog_db]>
PostgreSQLのプロンプト PostgreSQLでは自動的にデータベース名がプロンプトに表示されます:
blog_db=#
スクリプト実行時の安全策
実行前にデータベースを確認するスクリプト例
-- MySQL用スクリプトの例
SELECT DATABASE() AS current_db;
USE blog_db;
SELECT 'データベースを選択しました' AS status;
-- 実際の処理
SELECT * FROM articles LIMIT 5;
バックアップの重要性
作業前のバックアップ
- 重要な操作前は必ずバックアップを取る
- 特に本番環境では慎重に
MySQLバックアップ例
mysqldump -u root -p blog_db > backup_blog_db.sql
PostgreSQLバックアップ例
pg_dump -U postgres blog_db > backup_blog_db.sql
SQLiteバックアップ例
cp blog.db blog_backup.db
よくある質問と答え
Q. 間違ったデータベースでSQL文を実行してしまいました。どうすればいいですか?
A. まず実行を停止し、バックアップがあれば復元してください。バックアップがない場合は、可能な限り手動で修正します。
Q. PostgreSQLで接続後にデータベースを切り替える方法はありますか? A
. \c データベース名
コマンドで切り替えできます。または、新しい接続を開く必要があります。
Q. SQLiteで複数のデータベースを使うときの注意点は?
A. アタッチしたデータベースは、テーブル名の前に「データベース名.」を付けてアクセスします。
Q. データベース選択を忘れやすいのですが、対策はありますか?
A. プロンプト表示を設定し、作業前に必ず現在のデータベースを確認する習慣をつけましょう。
トラブルシューティング
よくあるエラーと対処法
「Database doesn’t exist」エラー
ERROR 1049 (42000): Unknown database 'blog_db'
対処法
- データベース名のスペルチェック
SHOW DATABASES;
で存在確認- 権限確認
「Permission denied」エラー
ERROR 1044 (42000): Access denied for user 'username'@'localhost' to database 'blog_db'
対処法
- 正しいユーザー名・パスワードで接続
- データベースへのアクセス権限を確認
- 管理者に権限付与を依頼
ファイルが見つからないエラー(SQLite)
Error: unable to open database "blog.db": unable to open database file
対処法
- ファイルパスが正しいか確認
- ファイルの存在確認
- 読み書き権限の確認
まとめ:正しいデータベース選択で安全な作業を
データベースの選択方法を正しく理解することで、安全で効率的なSQL作業ができるようになります。
おさらい:
- MySQL:
USE データベース名;
で選択 - PostgreSQL:接続時に
-d データベース名
で指定 - SQLite:
sqlite3 ファイル名
でファイル指定 - 確認方法:各システム専用のコマンドで現在のデータベースを確認
まずは現在のデータベース確認から始めましょう。
慣れてきたら、作業前の確認を習慣にして、安全なSQL操作を心がけてください。
コメント