ブログ

MySQLの基礎知識|インストールから基本操作まで

MySQLの基礎知識|インストールから基本操作まで

目次

※この記事にはプロモーションを含みます

WEBMASTERSのトップページへ

はじめに

Webアプリ開発やバックエンドを学び始めると、必ずと言っていいほど登場するのがデータベースです。

MySQLは世界で最も広く使われているオープンソースのリレーショナルデータベース管理システム(RDBMS)です。WordPressやECサイト、業務システムなどあらゆる規模のWebサービスで採用されており、データベーススキルを身につけるうえでMySQLは最初の選択肢として最適です。

この記事では、MySQLとは何かという概要から、インストール方法(直接インストール・Docker)、GUIツールのMySQL Workbench、基本的なSQL操作(SELECT・INSERT・UPDATE・DELETE)まで、初心者が必要とする情報を体系的に解説します。

MySQLとは?

まずはMySQLの基本的な性質と、他のデータベースとの違いを整理しましょう。

MySQLの基本概要とリレーショナルデータベースの仕組み

MySQLは1995年にスウェーデンで開発されたオープンソースのデータベース管理システムです。現在はOracle Corporationが管理しており、無償で使えるコミュニティエディション(MySQL Community Edition)が広く普及しています。

MySQLはリレーショナルデータベース(RDB) の一種です。リレーショナルデータベースとは、データを「表(テーブル)」の形式で管理するシステムです。Excelのスプレッドシートに近いイメージで、行と列でデータを整理します。

  • usersテーブルの例
| id | name     | email                         | age |
|----|-------------|--------------------------------|------|
| 1  | 田中太郎 | tanaka@example.com | 28  |
| 2  | 山田花子 | yamada@example.com | 32  |

複数のテーブルを「リレーション(関係)」で結びつけることで、複雑なデータ構造も効率よく管理できます。データの操作にはSQL(Structured Query Language) という専用の言語を使います。

PostgreSQL・SQLiteなど他のDBとの違い

代表的なRDBMS(リレーショナルデータベース管理システム)を比較してみましょう。

特徴主な用途
MySQL高速・安定・広く普及WebアプリのDB(WordPress等)
PostgreSQL高機能・拡張性が高い大規模システム・複雑なクエリ
SQLiteファイル単体で動作・軽量モバイルアプリ・小規模ツール
Oracle DB高信頼性・企業向け機能が豊富大規模企業システム

MySQLはWebアプリケーションとの親和性が高く、PHPやPython・Node.jsとの組み合わせが特に多いです。初心者が最初に学ぶDBとしても最もポピュラーな選択肢です。

MySQLのインストールと環境構築

MySQLを使い始めるには環境構築が必要です。ローカルへの直接インストールとDockerを使った方法の両方を紹介します。

Windows・MacへのMySQLの直接インストール

Windowsの場合

1.MySQL公式サイトから「MySQL Installer for Windows」をダウンロードする
2.インストーラーを起動し「Developer Default」または「Server only」を選択する
3.インストール完了後、rootパスワードを設定する
4.コマンドプロンプトで以下を実行してバージョンを確認する

mysql --version

Macの場合

Homebrewを使うのが最も手軽です。

# Homebrewのインストール(未インストールの場合)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

# MySQLのインストール
brew install mysql

# MySQLの起動
brew services start mysql

# 初期設定(rootパスワード等)
mysql_secure_installation

インストール後、以下でMySQLにログインできます。

mysql -u root -p

Dockerを使ったMySQL環境の構築

現代の開発現場ではDockerを使ったMySQL環境の構築が主流です。docker-compose.yml を使うことで、環境の再現性を保ちながら簡単にMySQLを起動できます。

# docker-compose.yml
version: '3.8'
services:
  db:
    image: mysql:8.0
    environment:
      MYSQL_ROOT_PASSWORD: rootpassword
      MYSQL_DATABASE: myapp_db
      MYSQL_USER: appuser
      MYSQL_PASSWORD: apppassword
    ports:
      - "3306:3306"
    volumes:
      - mysql_data:/var/lib/mysql

volumes:
  mysql_data:

以下のコマンドでMySQLコンテナを起動します。

docker-compose up -d

コンテナが起動したら、以下でMySQLに接続できます。

docker exec -it <コンテナ> mysql -u root -p

DockerはPCの環境を汚さず、チームメンバーと同一の環境を共有できるため、実務でもよく採用される構築方法です。

MySQL Workbenchの使い方

コマンドラインだけでなく、GUIツールを使うことでMySQLの操作がより直感的になります。

MySQL Workbenchとは?

MySQL Workbenchは、Oracle公式が提供するMySQLの統合開発環境(GUIツール)です。コマンドライン操作が不要で、以下の機能をグラフィカルに操作できます。

  • データベース・テーブルの作成・変更・削除
  • SQLクエリの実行と結果の確認
  • ER図(テーブル間の関係図)の作成・表示
  • データのインポート・エクスポート
  • ユーザー権限の管理

これらの機能により、MySQLの操作をより直感的かつ効率的に行えます。

MySQL Workbenchでできること

インストール方法

MySQL公式サイトから無料でダウンロードできます。Windows・Mac・Linuxに対応しています。

Workbenchを使ったデータベース接続と基本操作

インストール後、以下の手順でMySQLサーバーに接続します。

1.MySQL Workbenchを起動する
2.「MySQL Connections」の「+」ボタンをクリックする
3.接続名・ホスト(localhost)・ポート(3306)・ユーザー名・パスワードを入力する
4.「Test Connection」でテストし、「OK」をクリックする

接続後はSQLエディタにクエリを入力して実行できます。テーブルの一覧表示やデータの確認もGUIから直感的に行えます。

初心者がSQL学習の出発点として使うには、コマンドラインとWorkbenchの両方を触って慣れることをおすすめします。

MySQLの基本SQL操作

MySQLの核心はSQLによるデータ操作です。基本の4操作(CRUD) を解説します。

テーブルの作成とデータの挿入

MySQLでデータを扱うには、データベース・テーブルの作成からデータ挿入・取得まで一連の流れを把握することが重要です。

データベースとテーブルの作成

-- データベースの作成
CREATE DATABASE myapp_db;

-- データベースの選択
USE myapp_db;

-- テーブルの作成
CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(100) NOT NULL,
    email VARCHAR(255) UNIQUE NOT NULL,
    age INT,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

データの挿入(INSERT)

-- 1件挿入
INSERT INTO users (name, email, age) VALUES ('田中太郎', 'tanaka@example.com', 28);

-- 複数件まとめて挿入
INSERT INTO users (name, email, age) VALUES
    ('山田花子', 'yamada@example.com', 32),
    ('佐藤次郎', 'sato@example.com', 25);

データの取得(SELECT)

-- 全件取得
SELECT * FROM users;

-- 条件を絞って取得
SELECT name, email FROM users WHERE age >= 30;

-- 並び替え
SELECT * FROM users ORDER BY age DESC;

データの更新・削除

データの更新(UPDATE)

-- 特定のレコードを更新
UPDATE users SET age = 29 WHERE id = 1;

-- 複数のカラムを同時に更新
UPDATE users SET name = '田中太郎(更新)', age = 30 WHERE id = 1;

UPDATE文を使う際の最重要ポイントは、必ずWHERE句で対象を絞ることです。WHERE句を省略すると、テーブル内の全レコードが更新されてしまう危険があります。

-- 危険な例(WHERE句なし)
UPDATE users SET age = 0;  -- 全ユーザーのageが0になる!

-- 正しい例
UPDATE users SET age = 0 WHERE id = 1;  -- id=1のユーザーのみ更新

データの削除(DELETE)

-- 特定のレコードを削除
DELETE FROM users WHERE id = 3;

-- 条件に合うレコードをまとめて削除
DELETE FROM users WHERE age < 20;

DELETEもWHERE句なしで実行すると全件削除になるため、必ず確認してから実行しましょう。

MySQLを実務で使うためのポイント

基本操作を習得したら、実務で欠かせない知識も押さえておきましょう。

トランザクションとロールバックの基本

トランザクションとは、複数のSQL操作をひとまとまりとして扱う仕組みです。「すべて成功する」か「すべて失敗(ロールバック)する」かを保証し、データの整合性を保ちます。

-- トランザクション開始
START TRANSACTION;

-- 処理1:残高を減らす
UPDATE accounts SET balance = balance - 1000 WHERE id = 1;

-- 処理2:残高を増やす
UPDATE accounts SET balance = balance + 1000 WHERE id = 2;

-- 問題なければ確定
COMMIT;

-- エラーがあれば取り消し
-- ROLLBACK;

銀行の送金処理のように「引き落とし」と「入金」が必ずセットで成功しなければならない場面では、トランザクションが不可欠です。

インデックスとパフォーマンス改善の考え方

データ量が増えるとSQLの実行速度が遅くなることがあります。インデックスはデータの検索を高速化するための仕組みです。

-- インデックスの作成
CREATE INDEX idx_email ON users(email);

-- EXPLAINでクエリの実行計画を確認
EXPLAIN SELECT * FROM users WHERE email = 'tanaka@example.com';

インデックスはよく検索条件に使われるカラム(メールアドレス・ユーザーIDなど)に設定すると効果的です。ただし、インデックスが多すぎるとINSERT・UPDATEの処理が遅くなるため、必要なカラムにのみ設定するのがベストプラクティスです。

まとめ

MySQLは世界最大級のシェアを持つオープンソースのリレーショナルデータベースであり、Webアプリ開発の現場で幅広く使われています。

環境構築は直接インストールのほか、Dockerを使う方法が現代の開発現場では主流です。MySQL WorkbenchのようなGUIツールを併用することで、データの確認や操作が視覚的に行いやすくなります。

基本のSQL操作(SELECT・INSERT・UPDATE・DELETE)を身につけることがMySQL習得の出発点であり、特にUPDATE・DELETE時のWHERE句の指定は実務でも必ず意識すべき重要なポイントです。

トランザクションやインデックスまで理解できると、より実践的なデータベース設計ができるようになります。