初心者向けBashでのMySQLとPostgreSQLデータベース操作ガイド:基本コマンドと実践例

データベースの操作は、ソフトウェア開発やシステム管理において重要なスキルの一つです。特にMySQLやPostgreSQLは、オープンソースのRDBMSとして世界中で広く使われています。本記事では、これらのデータベースをBashから操作するための基本的なコマンドと、いくつかの実践例を紹介します。

Bashシェルでのデータベース操作の重要性

Bashシェルを使ったデータベース操作は、スクリプトを書くことで定期的なメンテナンスやバックアップを自動化できるため、作業効率を大幅に向上させることができます。また、コマンドラインからのアクセスは、GUIツールに頼らない軽量で直接的な方法です。

MySQLの基本コマンド

まずは、MySQLデータベースでよく使われる基本コマンドを見ていきましょう。

MySQLへの接続

MySQLに接続するための基本コマンドは次の通りです。

mysql -u [username] -p

このコマンドは、MySQLインスタンスに接続するためのものです。-uはユーザー名を指定し、実行するとパスワードの入力を求められます。

データベースの作成

新しいデータベースを作成するには、以下のようにコマンドを使用します。

CREATE DATABASE example_db;

このコマンドは、example_dbという名前の新しいデータベースを作成します。

テーブルの作成

データベース内にテーブルを作成するには、以下のようにします。

USE example_db;
CREATE TABLE users (
  id INT AUTO_INCREMENT PRIMARY KEY,
  username VARCHAR(50),
  password VARCHAR(50)
);

この例では、usersというテーブルを作成し、idusernamepasswordの列が含まれています。

データの挿入

テーブルにデータを挿入するには、次のコマンドを実行します。

INSERT INTO users (username, password) VALUES ('user1', 'pass123');

これにより、usersテーブルに新しいレコードが追加されます。

データの取得

テーブルからデータを取得するには、SELECT文を使用します。

SELECT * FROM users;

このコマンドは、usersテーブルの全てのレコードを取得します。

PostgreSQLの基本コマンド

次に、PostgreSQLの基本コマンドについて説明します。このデータベースもMySQLと同様にBashからアクセス可能です。

PostgreSQLへの接続

PostgreSQLへの接続には、psqlコマンドを使用します。

psql -U [username] -d [database]

-Uはユーザー名、-dはデータベース名を指定し、接続を行います。

データベースの作成

新しいデータベースを作成する場合は、次のコマンドを実行します。

CREATE DATABASE example_db;

これはMySQLと同様ですが、PostgreSQLにおいてもデータベースを新規作成します。

テーブルの作成

PostgreSQLでテーブルを作成する場合も、SQL文はMySQLとほぼ同様です。

CREATE TABLE users (
  id SERIAL PRIMARY KEY,
  username VARCHAR(50),
  password VARCHAR(50)
);

idフィールドにはSERIAL型を用いて、自動インクリメントを設定しています。

データの挿入

データの挿入もMySQLと同様の構文を使用します。

INSERT INTO users (username, password) VALUES ('user1', 'pass123');

データの取得

SELECT * FROM users;

全てのユーザー情報を取得するためのコマンドです。

MySQLとPostgreSQLのコマンドラインでの利用における注意点

  • 両データベース共にSQL構文はほぼ同じですが、細かいシンタックスや機能は異なる場合があります。例えば、AUTO_INCREMENTはMySQLで使われ、PostgreSQLではSERIALが用いられます。

  • シェルスクリプト内で複数のコマンドを実行する場合は、エラーチェックのためにエラーハンドリングを追加しておくとよいです。

  • データベースのバックアップや復元もシェル経由で行うことが可能です。例えば、MySQLのmysqldumpを使えば簡単にバックアップがとれます。

実践例: Bashスクリプトによる自動バックアップ

以下は、Bashスクリプトを用いてMySQLデータベースをバックアップするシンプルな例です。

#!/bin/bash

DB_USER="user"
DB_PASS="password"
DB_NAME="example_db"
BACKUP_DIR="/path/to/backup"

mysqldump -u $DB_USER -p$DB_PASS $DB_NAME > $BACKUP_DIR/$(date +"%Y%m%d")_$DB_NAME.sql

このスクリプトは、MySQLデータベースを指定のディレクトリにバックアップを取るもので、crontabを使用して定期的な実行設定も可能です。

まとめ

Bashシェルを使ったMySQLとPostgreSQLの操作方法をマスターすることで、データベース管理の生産性が向上します。シェルスクリプトを活用することで、タスクの自動化や、エラー時の迅速な対応が可能になります。初心者には最初は基本的なコマンドから始め、徐々に高度なタスクに移行していくことをお勧めします。

Bash玄

はじめまして!Bash玄です。

エンジニアとしてシステム運用に携わる中で、手作業の多さに限界を感じ、Bashスクリプトを活用して業務を効率化したのがきっかけで、この道に入りました。「手作業は負け」「スクリプトはシンプルに」をモットーに、誰でも実践できるBashスクリプトの書き方を発信しています。

このサイトでは、Bashの基礎から実践的なスクリプト作成まで、初心者でもわかりやすく解説しています。少しでも「Bashって便利だな」と思ってもらえたら嬉しいです!

# 好きなこと
- シンプルなコードを書くこと
- コマンドラインを快適にカスタマイズすること
- 自動化で時間を生み出すこと

# このサイトを読んでほしい人
- Bashに興味があるけど、何から始めればいいかわからない人
- 定型業務を自動化したい人
- 効率よくターミナルを使いこなしたい人

Bashの世界に一歩踏み出して、一緒に「Bash道」を極めていきましょう!

Bash玄をフォローする
Bashスクリプト×他の技術

コメント

タイトルとURLをコピーしました