H2 Database（H2DB）を使用したSQLデータベースおよびテーブル作成チュートリアル

# H2 Database（H2DB）を使用したSQLデータベースおよびテーブル作成チュートリアル

このチュートリアルでは、Javaベースの軽量データベースである**H2 Database（H2DB）**を使用して、SQLデータベースとテーブルを作成する方法をステップバイステップで解説します。H2DBは開発やテスト環境に最適で、組み込みモードやサーバーモードで動作します。

## 目次

1. [H2 Databaseとは](#h2-databaseとは)
2. [H2DBのインストール](#h2dbのインストール)
3. [H2DBコンソールの起動](#h2dbコンソールの起動)
4. [データベースの作成](#データベースの作成)
5. [テーブルの作成](#テーブルの作成)
6. [データの挿入とクエリ](#データの挿入とクエリ)
7. [まとめ](#まとめ)

---

## H2 Databaseとは

H2 Databaseは、Javaで書かれたオープンソースのリレーショナルデータベース管理システム（RDBMS）です。以下の特徴を持ちます：

- **軽量で高速**：組み込みモードで動作し、リソース消費が少ない。
- **サーバーモードと組み込みモード**：用途に応じて柔軟に使用可能。
- **標準SQLサポート**：一般的なSQL標準に準拠。
- **ブラウザベースの管理コンソール**：GUIでデータベースを管理・操作可能。

---

## H2DBのインストール

### 1. Javaのインストール

H2DBはJavaで動作するため、まずJavaをインストールする必要があります。Javaがインストールされていない場合は、[Oracleの公式サイト](https://www.oracle.com/java/technologies/javase-downloads.html)から最新のJDKをダウンロードしてインストールしてください。

インストール後、ターミナル（コマンドプロンプト）で以下のコマンドを実行し、Javaが正しくインストールされたことを確認します。

```bash
java -version
```

### 2. H2 Databaseのダウンロード

公式サイトからH2DBの最新バージョンをダウンロードします。

- [H2 Database公式ダウンロードページ](https://www.h2database.com/html/download.html)

ダウンロードしたZIPファイルを任意のディレクトリに解凍します。

---

## H2DBコンソールの起動

解凍したディレクトリ内にある`h2*.jar`ファイルを使用して、H2コンソールを起動します。

### 1. コマンドラインから起動

ターミナル（コマンドプロンプト）を開き、H2DBのディレクトリに移動します。

```bash
cd path/to/h2/bin
```

次に、以下のコマンドを実行してコンソールを起動します。

```bash
java -jar h2*.jar
```

### 2. ブラウザでコンソールにアクセス

コマンドを実行すると、ブラウザが自動的に開き、H2コンソールのログイン画面が表示されます。開かない場合は、ブラウザで以下のURLにアクセスしてください。

```
http://localhost:8082
```

---

## データベースの作成

H2コンソールにアクセスすると、ログイン画面が表示されます。以下の情報を入力してデータベースに接続します。

- **JDBC URL**: `jdbc:h2:~/test`  
  - `~/test`はホームディレクトリに`test`という名前のデータベースを作成します。必要に応じてパスやデータベース名を変更してください。
- **ユーザー名**: `sa`
- **パスワード**: 空欄（デフォルト設定）

![H2コンソールログイン画面](https://www.h2database.com/html/images/console_login.png)

「Connect」ボタンをクリックすると、データベースに接続されます。接続に成功すると、SQLクエリを実行するためのインターフェースが表示されます。

---

## テーブルの作成

次に、データベース内にテーブルを作成します。ここでは、`users`という名前のテーブルを作成する例を示します。

### 1. SQLクエリの作成

H2コンソールのSQLエディタに以下のSQL文を入力します。

```sql
CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    username VARCHAR(50) NOT NULL,
    email VARCHAR(100) NOT NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
```

### 2. クエリの実行

「Run」ボタン（またはショートカットキー：`Ctrl + Enter`）をクリックしてクエリを実行します。正常に実行されると、テーブルが作成されたことが確認できます。

### 3. テーブルの確認

作成したテーブルを確認するために、以下のSQLクエリを実行します。

```sql
SHOW TABLES;
```

これにより、データベース内のテーブル一覧が表示されます。`users`テーブルが存在することを確認してください。

---

## データの挿入とクエリ

### 1. データの挿入

`users`テーブルにデータを挿入するには、以下のSQL文を使用します。

```sql
INSERT INTO users (username, email) VALUES ('alice', 'alice@example.com');
INSERT INTO users (username, email) VALUES ('bob', 'bob@example.com');
```

これらのクエリを実行すると、`users`テーブルに2件のレコードが追加されます。

### 2. データの確認

挿入したデータを確認するために、以下のSQLクエリを実行します。

```sql
SELECT * FROM users;
```

実行結果として、`users`テーブルの全レコードが表示されます。

![H2コンソールクエリ結果](https://www.h2database.com/html/images/console_result.png)

---

## まとめ

このチュートリアルでは、H2 Database（H2DB）を使用してSQLデータベースとテーブルを作成する基本的な手順を学びました。H2DBは軽量で扱いやすく、開発やテスト環境に非常に適しています。以下のポイントを押さえました：

1. **H2DBのインストール**：Java環境を準備し、H2DBをダウンロード・解凍。
2. **H2コンソールの起動**：ブラウザベースの管理コンソールを使用。
3. **データベースの作成**：JDBC URLを指定してデータベースに接続。
4. **テーブルの作成**：SQLクエリを実行してテーブルを定義。
5. **データの操作**：データの挿入やクエリを実行。

H2DBを活用して、さらなるデータベース操作やアプリケーションとの連携を試してみてください。

---

**参考リンク**

- [H2 Database 公式サイト](https://www.h2database.com/)
- [H2 Database ドキュメント](https://www.h2database.com/html/documentation.html)