はい、承知いたしました。【完全初心者向け】MySQLの始め方と基本の使い方について、約5000語の詳細な記事を作成します。
【完全初心者向け】MySQLの始め方と基本の使い方
はじめに:データベースの世界へようこそ!
プログラミングやWeb開発に興味を持った皆さん、あるいは大量のデータを効率的に管理したいと考えている皆さんにとって、「データベース」は避けて通れない存在です。そして、その中でも特に人気が高く、世界中で広く使われているのが「MySQL」です。
この記事は、「データベースって何?」「MySQLってどうやって使うの?」といった疑問を持つ、まさに「完全初心者」の皆さんに向けて書かれています。MySQLのインストール方法から、データベースやテーブルの作成、データの登録、取得、更新、削除といった基本的な操作まで、ステップバイステップで丁寧に解説していきます。
この記事を読み終える頃には、MySQLを使ったデータ管理の基礎が理解できるようになり、あなたのプログラミング学習やデータ活用の一歩を踏み出すことができるでしょう。さあ、一緒にデータベースの世界を覗いてみましょう!
データベースとは?
私たちの身の回りには、様々な情報(データ)が溢れています。例えば、お店の顧客情報、商品の在庫情報、学校の生徒情報、Webサイトのユーザー情報などです。これらのデータを、ただ羅列するのではなく、整理して、必要なときに素早く取り出せるように保管しておく仕組みが「データベース」です。
イメージとしては、巨大な「電子的なファイルキャビネット」のようなものです。ファイルキャビネットの中には、たくさんの引き出し(テーブル)があり、それぞれの引き出しには、整理された書類(データ)が入っています。
RDBMS(リレーショナルデータベース管理システム)とは?
データベースにはいくつかの種類がありますが、現在最も主流なのが「リレーショナルデータベース」です。リレーショナルデータベースでは、データを「テーブル」という形で管理します。このテーブルは、Excelやスプレッドシートのような「行」と「列」を持つ表形式の構造をしています。
そして、このリレーショナルデータベースを管理するためのソフトウェアを「RDBMS (Relational Database Management System)」、日本語では「リレーショナルデータベース管理システム」と呼びます。MySQLは、このRDBMSの一つです。
RDBMSを使うことで、以下のような様々なメリットがあります。
- データの整理・構造化: データがテーブルとして整理されるため、構造が明確になります。
- データの永続化: コンピュータの電源を切ってもデータが失われません。
- データの検索・抽出: 条件を指定して、必要なデータを素早く探し出すことができます。
- データの更新・削除: データの追加、変更、削除が簡単に行えます。
- データの整合性維持: データ同士の関連性(リレーション)を定義し、矛盾が発生しないように管理できます。
- 複数ユーザーからのアクセス: 複数の人が同時に同じデータベースにアクセスして作業できます。
- セキュリティ: データへのアクセス権限を設定し、不正なアクセスを防ぐことができます。
MySQLは、これらの機能を備えた、高性能で信頼性の高いオープンソースのRDBMSです。
なぜMySQLを学ぶのか?
MySQLを学ぶことには、多くの利点があります。
- 世界中で利用されている: Webアプリケーション開発で最も広く利用されているデータベースの一つです。特にPHPとの組み合わせでよく使われ、「LAMP(Linux, Apache, MySQL, PHP)」スタックの中核を担っています。
- オープンソースで無料: 個人利用はもちろん、商用利用でも基本的に無料で使用できます。
- 高性能でスケーラブル: 大量のデータや多数のアクセスにも対応できる高い性能と拡張性を持っています。
- 学習リソースが豊富: 利用者が多いため、オンライン上の情報や書籍、コミュニティが非常に充実しており、困ったときに解決策を見つけやすいです。
- 様々なOSで動作: Windows, macOS, Linuxなど、主要なOSで利用できます。
これらの理由から、プログラマー、Webエンジニアを目指す方だけでなく、データ分析やデータ管理に関わる多くの方にとって、MySQLの学習は非常に有用です。
この記事では、MySQLの基本的な使い方を学ぶために、主に「コマンドラインインターフェース(CLI)」を使用します。CLIは最初は少し難しく感じるかもしれませんが、データベースの内部的な動きを理解する上で非常に役立ちます。もちろん、GUIツールについても後ほど紹介します。
それでは、MySQLを実際に使い始めるための最初のステップ、インストールから始めましょう!
1. MySQLのインストール
MySQLを使うためには、まずお使いのコンピュータにMySQLサーバーをインストールする必要があります。インストール方法はOSによって異なりますが、ここでは主要なOS(Windows, macOS, Linux)について説明します。
初心者の方は、MySQLサーバーだけでなく、データベースを操作するためのクライアントツールも同時にインストールできる「インストーラー」を使うか、WebサーバーやPHPなどもまとめてインストールできる「統合開発環境」を利用するのがおすすめです。
1.1. インストール前の確認
- お使いのOSの種類(Windows, macOS, Linux)とバージョンを確認してください。
- コンピュータがMySQLのシステム要件を満たしているか(基本的な開発環境であれば問題ないことが多いですが、公式ドキュメントで確認することもできます)。
1.2. 各OSごとのインストール方法
ここでは、一般的なインストール方法をいくつか紹介します。
1.2.1. Windowsの場合
WindowsでMySQLをインストールする方法はいくつかあります。
- MySQL Installerを利用する (推奨): MySQLの公式Webサイトから提供されているインストーラーを使う方法です。MySQLサーバー本体だけでなく、GUIツールのMySQL WorkbenchやODBCコネクタなど、関連ツールをまとめてインストールできます。
- MySQL公式サイトのダウンロードページ (https://dev.mysql.com/downloads/windows/installer/) にアクセスします。
mysql-installer-community-x.x.x.x.msi
という名前のファイルをダウンロードします(通常、大きい方のファイルを選びます)。- ダウンロードしたインストーラーを実行します。
- インストーラーの指示に従って進めます。「Setup Type」では、通常「Developer Default」を選択すると、開発に必要なものが一通りインストールされます。
- インストールの途中で、MySQLサーバーのRootパスワード設定やWindowsサービスとしての設定などを行います。Rootパスワードは必ず控えておいてください。
- 特に設定を変更する必要がなければ、デフォルトのまま進めてインストールを完了させます。
- XAMPP/WAMPなどを利用する: Webサーバー (Apache)、スクリプト言語 (PHP)、データベース (MySQL) をまとめてインストールできる統合環境です。Web開発も一緒に行いたい場合に便利です。
- XAMPP: Windows, macOS, Linuxに対応 (https://www.apachefriends.org/jp/index.html)
- WampServer: Windowsのみ (https://www.wampserver.com/en/)
- MAMP: macOS, Windowsに対応 (https://www.mamp.info/en/)
これらの環境をインストールすると、MySQLも同時にインストールされ、GUIツールのphpMyAdminも利用できるようになります。
1.2.2. macOSの場合
macOSでもいくつかのインストール方法があります。
- Homebrewを利用する (推奨): macOSのパッケージマネージャーであるHomebrewを使う方法です。コマンド一行で簡単にインストールできます。
- Homebrewがインストールされていない場合は、先にインストールします。(https://brew.sh/index_ja)
- ターミナルを開き、以下のコマンドを実行します。
bash
brew install mysql - インストールが完了したら、MySQLサーバーを起動します。
bash
brew services start mysql - インストール後の初期設定を行います。セキュリティ強化のための設定ウィザードを実行することを推奨します。
bash
mysql_secure_installation
このウィザードでは、Rootパスワードの設定、匿名ユーザーの削除、リモートからのRootログイン禁止、テストデータベースの削除などが行えます。指示に従って設定を進めてください。
- MySQL Installerを利用する: Windows版と同様に、公式インストーラーが提供されています。
- MySQL公式サイトのダウンロードページ (https://dev.mysql.com/downloads/mysql/) にアクセスします。
- macOS版のパッケージ (.dmgファイル) をダウンロードします。
- ダウンロードしたファイルを開き、インストーラーを実行します。
- 指示に従ってインストールを進めます。この際、Rootパスワード設定などを行います。
- MAMPなどを利用する: Windows版と同様に、Web開発環境とセットでインストールできます。
1.2.3. Linuxの場合
多くのLinuxディストリビューションでは、パッケージマネージャーを使って簡単にインストールできます。
- Debian/Ubuntu系 (apt):
bash
sudo apt update
sudo apt install mysql-server mysql-client
インストール中にRootパスワードの設定を求められることがあります。インストール後、セキュリティ強化のための設定ウィザードを実行することを推奨します。
bash
sudo mysql_secure_installation
このウィザードでは、Rootパスワードの設定、匿名ユーザーの削除、リモートからのRootログイン禁止、テストデータベースの削除などが行えます。指示に従って設定を進めてください。
MySQLサーバーの起動/停止/再起動は以下のコマンドで行います。
bash
sudo systemctl start mysql
sudo systemctl stop mysql
sudo systemctl restart mysql
sudo systemctl status mysql - Fedora/CentOS/RHEL系 (yum/dnf):
bash
sudo yum install mysql-server mysql
# または最新のFedora/CentOS Stream/RHEL 8以降の場合
sudo dnf install mysql-server mysql
インストール後、セキュリティ強化のための設定ウィザードを実行することを推奨します。
bash
sudo mysql_secure_installation
MySQLサーバーの起動/停止/再起動は以下のコマンドで行います。
bash
sudo systemctl start mysqld
sudo systemctl stop mysqld
sudo systemctl restart mysqld
sudo systemctl status mysqld
1.3. インストール後の確認
インストールが成功したか確認しましょう。ターミナルまたはコマンドプロンプトを開き、以下のコマンドを実行します。
bash
mysql --version
MySQLのバージョン情報が表示されれば、クライアントツールはインストールされています。
次に、MySQLサーバーが起動しているか確認します。
bash
mysql -u root -p
root
はMySQLの管理者ユーザー名です。インストール時に設定したRootパスワードの入力を求められるので、入力してEnterキーを押します。
パスワードが正しければ、MySQLのプロンプト mysql>
が表示されます。
“`
$ mysql -u root -p
Enter password: [設定したRootパスワードを入力]
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is …
Server version: … MySQL Community Server – GPL
Copyright (c) … Oracle and/or its affiliates.
Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.
mysql>
“`
このプロンプトが表示されれば、MySQLサーバーへの接続に成功しており、インストールは無事完了です!
MySQLプロンプトが表示されたら、以下のコマンドで終了できます。
sql
exit
これで、MySQLを使う準備が整いました。
2. MySQLクライアントツールの紹介
MySQLサーバーに接続し、データベースを操作するためには「クライアントツール」が必要です。先ほど使った mysql
コマンドもクライアントツールの一つです。
主なクライアントツールには以下の種類があります。
- CLI (Command Line Interface) ツール:
mysql
コマンド: ターミナルやコマンドプロンプトから直接SQLコマンドを入力して操作します。最初は敷居が高いと感じるかもしれませんが、処理が高速で、他のツールでは難しい高度な操作も可能です。データベースの学習においては、このCLIツールを使うことが、SQLやデータベースの理解を深める上で非常に役立ちます。
- GUI (Graphical User Interface) ツール:
- MySQL Workbench: MySQL公式が提供している統合開発環境ツールです。データベースの設計、開発、管理、監視など、様々な作業をGUIで行えます。初心者でも直感的に操作しやすいです。
- phpMyAdmin: Webブラウザからアクセスしてデータベースを管理できるツールです。XAMPPなどの統合環境に標準で含まれていることが多いです。手軽に使えるため人気があります。
- Sequel Ace / Sequel Pro: macOS向けのGUIツールです。シンプルで使いやすいと評判です。(Sequel Proは開発が停滞していましたが、Sequel Aceが後継として開発されています。)
- DBeaver: 様々なデータベースに対応したクロスプラットフォームのGUIツールです。MySQL以外にも触れる可能性がある場合などに便利です。
この記事では、データベースの基本的な仕組みやSQL文の構造を理解するため、主にCLIツールの mysql
コマンドを使って解説を進めます。GUIツールは非常に便利ですが、まずは基本的なコマンド操作をマスターすることをおすすめします。
3. データベースの基本概念(SQLとは?)
MySQLを操作するためには、「SQL」という言語を使います。SQLは “Structured Query Language” の略で、リレーショナルデータベースを操作するための標準的な言語です。ほとんどのRDBMSで共通して使うことができます。
SQL文は、やりたい操作によっていくつかの種類に分けられます。
- DDL (Data Definition Language): データベースやテーブルなど、データの「構造」を定義するための言語です。
CREATE
: データベースやテーブルなどを作成するDROP
: データベースやテーブルなどを削除するALTER
: テーブルの構造などを変更する
- DML (Data Manipulation Language): テーブルに格納されている「データ」自体を操作するための言語です。
INSERT
: 新しいデータを追加するSELECT
: データを検索して取得するUPDATE
: 既存のデータを更新するDELETE
: データを削除する
- DCL (Data Control Language): データベースへのアクセス権限などを制御するための言語です。
GRANT
: ユーザーに権限を与えるREVOKE
: ユーザーから権限を取り消す
- TCL (Transaction Control Language): 複数の操作をまとめて一つの処理(トランザクション)として管理するための言語です。(初心者向けのため、この記事では深くは触れません。)
COMMIT
: トランザクションを確定するROLLBACK
: トランザクションを取り消す
この記事では、主にDDLとDMLの基本的な使い方を学びます。
4. MySQL CLI の使い方
それでは、実際に mysql
コマンドを使ってMySQLを操作してみましょう。
4.1. MySQLサーバーへの接続
ターミナルまたはコマンドプロンプトを開き、以下のコマンドでMySQLサーバーに接続します。
bash
mysql -u ユーザー名 -p
-u
: ユーザー名を指定するオプションです。通常は管理者ユーザーであるroot
を使います。-p
: パスワード入力を求めるオプションです。このオプションを付けると、コマンド実行後にパスワードの入力を求められます。セキュリティ上、パスワードをコマンドラインに直接入力するよりも、こちらを使う方が安全です。
例: root
ユーザーで接続する場合
bash
mysql -u root -p
Enter password: [インストール時に設定したRootパスワードを入力]
mysql>
無事接続できれば、 mysql>
プロンプトが表示されます。
4.2. 接続解除
MySQLプロンプトから抜ける(MySQLサーバーとの接続を切る)には、以下のどちらかのコマンドを入力します。
sql
exit
-- または
quit
どちらの場合も、最後にセミコロン ;
は不要です。入力後、Enterキーを押すとプロンプトが閉じ、元のターミナルまたはコマンドプロンプトに戻ります。
4.3. ヘルプ表示
MySQLプロンプトで困ったときは、ヘルプを表示できます。
sql
help
-- または
\h
入力可能なコマンドや、SQL文のヘルプなどが表示されます。
4.4. SQL文の基本的な書き方ルール
SQL文を書く上での基本的なルールをいくつか覚えておきましょう。
- 大文字・小文字: SQLのキーワード(
SELECT
,FROM
,WHERE
など)は、大文字でも小文字でも動作します。慣習として大文字で書くことが多いですが、小文字でも問題ありません。ただし、データベース名、テーブル名、カラム名などは、OSの設定によっては大文字・小文字が区別される場合があります。統一した命名規則を用いることを推奨します。 - セミコロン: ほとんどのSQL文の終わりには
;
(セミコロン)を付けます。MySQL CLIでは、セミコロンを付けることで「このSQL文はここで終わりですよ」とMySQLに伝えます。セミコロンを付けずにEnterを押すと、複数行にわたってSQL文を書くことができます。 - スペースと改行: SQL文中のスペースや改行は、基本的に自由に入れることができます。長いSQL文は見やすくするために適宜改行すると良いでしょう。
- コメント: SQL文中にコメント(注釈)を入れることができます。
--
(行コメント): ハイフン2つの後に続く内容は、その行の終わりまでコメントとして無視されます。
sql
SELECT * FROM users; -- ユーザーテーブルから全データを取得/* ... */
(ブロックコメント):/*
と*/
で囲まれた範囲がコメントとして無視されます。複数行にわたるコメントに使えます。
sql
/*
これは複数行のコメントです。
以下のSQL文は全ユーザーを選択します。
*/
SELECT * FROM users;
5. データベースの操作 (DDL)
まず、データベースそのものを作成したり、削除したりといった操作を学びましょう。
5.1. データベース一覧の表示
現在MySQLサーバーに存在するデータベースの一覧を表示するには、以下のコマンドを使います。
sql
SHOW DATABASES;
実行結果例:
mysql> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.01 sec)
information_schema
, mysql
, performance_schema
, sys
などは、MySQLが内部的に利用するシステムデータベースです。誤って削除しないように注意しましょう。
5.2. データベースの作成
新しいデータベースを作成するには、CREATE DATABASE
文を使います。
sql
CREATE DATABASE データベース名;
データベース名は、半角英数字とアンダースコア _
を使うのが一般的です。日本語などのマルチバイト文字も使えますが、互換性の問題などから推奨されません。
例: mydatabase
という名前のデータベースを作成する
sql
CREATE DATABASE mydatabase;
実行結果例:
mysql> CREATE DATABASE mydatabase;
Query OK, 1 row affected (0.01 sec)
Query OK, 1 row affected
と表示されれば成功です。もう一度 SHOW DATABASES;
を実行して、リストに mydatabase
が追加されていることを確認しましょう。
5.3. 使用するデータベースの選択
テーブルを作成したり、データを操作したりするには、まず「どのデータベースを操作するのか」をMySQLに知らせる必要があります。これには USE
文を使います。
sql
USE データベース名;
例: mydatabase
を使用するデータベースとして選択する
sql
USE mydatabase;
実行結果例:
mysql> USE mydatabase;
Database changed
Database changed
と表示されれば成功です。これで、以降に実行するSQL文は mydatabase
に対して行われます。
5.4. 現在選択中のデータベースの確認
現在どのデータベースを選択しているか確認するには、以下の関数を使います。
sql
SELECT DATABASE();
実行結果例:
mysql> SELECT DATABASE();
+------------+
| DATABASE() |
+------------+
| mydatabase |
+------------+
1 row in set (0.00 sec)
mydatabase
が表示されていますね。
5.5. データベースの削除
不要になったデータベースを削除するには、DROP DATABASE
文を使います。この操作を行うと、データベース内の全てのテーブルとデータが完全に削除され、元に戻せません。実行には十分注意してください。
sql
DROP DATABASE データベース名;
例: mydatabase
を削除する
sql
DROP DATABASE mydatabase;
実行結果例:
mysql> DROP DATABASE mydatabase;
Query OK, 0 rows affected (0.02 sec)
SHOW DATABASES;
を実行して、リストから mydatabase
が消えていることを確認しましょう。
今回は練習なので削除しましたが、通常は安易に DROP DATABASE
を実行しないようにしましょう。
6. テーブルの操作 (DDL)
データベースを作成したら、その中にデータを格納するための「テーブル」を作成します。テーブルは、データの種類ごとに作成するのが一般的です。例えば、ユーザー情報なら users
テーブル、商品情報なら products
テーブルなどです。
6.1. テーブル一覧の表示
現在選択中のデータベース内に存在するテーブルの一覧を表示するには、以下のコマンドを使います。
sql
SHOW TABLES;
データベースを作成したばかりで、まだテーブルを作成していなければ、何も表示されないはずです。
6.2. テーブルの作成
テーブルを作成するには、CREATE TABLE
文を使います。テーブルには、どのような「列(カラム)」を持ち、それぞれの列にどのような「データ型」のデータを格納するのか、どのような「制約」を設けるのかなどを定義します。
sql
CREATE TABLE テーブル名 (
カラム名1 データ型 制約1 制約2 ...,
カラム名2 データ型 制約1 制約2 ...,
...
PRIMARY KEY (主キーとして使うカラム名),
FOREIGN KEY (外部キーとして使うカラム名) REFERENCES 参照元テーブル名 (参照元カラム名)
);
主なデータ型:
INT
: 整数(例: 1, 100, -5)DECIMAL(p, s)
: 固定小数点数(p: 全体の桁数, s: 小数点以下の桁数)。金額など正確な計算が必要な場合に使う。(例:DECIMAL(5, 2)
は-999.99
から999.99
まで)VARCHAR(n)
: 可変長文字列(n: 最大文字数)。名前や住所など、文字数が可変の文字列。(例:VARCHAR(255)
)TEXT
: 長文文字列。ブログ記事の本文など、非常に長い文字列。(VARCHARより遅くなる場合がある)BOOLEAN
(またはBOOL
): 真偽値(TRUEまたはFALSE)。MySQL内部では1(TRUE)または0(FALSE)のINTとして扱われます。DATE
: 日付(YYYY-MM-DD形式)(例: ‘2023-10-27’)TIME
: 時間(HH:MM:SS形式)(例: ’15:30:00’)DATETIME
: 日付と時間(YYYY-MM-DD HH:MM:SS形式)(例: ‘2023-10-27 15:30:00’)TIMESTAMP
: 日付と時間。DATETIMEと似ていますが、特定の設定により自動的に値が更新されるなどの特徴があります。
主な制約:
NOT NULL
: そのカラムにNULL(値が「ない」状態)を格納することを禁止します。UNIQUE
: そのカラムの値がテーブル内で一意(重複しない)であることを保証します。PRIMARY KEY
: そのテーブルの「主キー」であることを示します。主キーは、テーブル内の各行を一意に識別するためのもので、NOT NULL
とUNIQUE
の両方の性質を持ちます。一つのテーブルに一つだけ設定できます。FOREIGN KEY
: そのカラムが、他のテーブルの行を参照していることを示します。「外部キー」を設定することで、テーブル間の関連性を定義し、参照先のテーブルに存在しない値を誤って登録するなどの矛盾を防ぐことができます。DEFAULT default_value
: 値が指定されなかった場合に自動的に設定されるデフォルト値を指定します。AUTO_INCREMENT
: 数値型のカラムに設定すると、新しい行が追加されるたびに自動的に連番が割り振られます。主に主キーと一緒に使われます。
CREATE TABLE 文の例:
ユーザー情報を格納する users
テーブルを作成してみましょう。
id
: ユーザーID (整数, 主キー, 自動連番)name
: 名前 (文字列, 必須, 最大50文字)email
: メールアドレス (文字列, 必須, 一意, 最大100文字)age
: 年齢 (整数, 省略可能)created_at
: 作成日時 (日付+時間, デフォルト値は現在日時)
“`sql
— mydatabase を使用していることを確認
USE mydatabase;
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
email VARCHAR(100) NOT NULL UNIQUE,
age INT,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);
``
id INT AUTO_INCREMENT PRIMARY KEY
コードの解説:
*:
idという名前の整数型カラムを作成し、
AUTO_INCREMENT(自動連番) と
PRIMARY KEY(主キー) 制約をつけます。
name VARCHAR(50) NOT NULL
*:
nameという名前の可変長文字列型(最大50文字)カラムを作成し、
NOT NULL(必須) 制約をつけます。
email VARCHAR(100) NOT NULL UNIQUE
*:
emailという名前の可変長文字列型(最大100文字)カラムを作成し、
NOT NULL(必須) と
UNIQUE(一意) 制約をつけます。
age INT
*:
ageという名前の整数型カラムを作成します。制約がないので、NULLや重複した値も許容されます。
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
*:
created_atという名前の日付+時間型カラムを作成し、
DEFAULT CURRENT_TIMESTAMP` (デフォルト値は現在のサーバー日時) 制約をつけます。
このSQL文を実行すると、mydatabase
内に users
テーブルが作成されます。
実行結果例:
mysql> CREATE TABLE users (
-> id INT AUTO_INCREMENT PRIMARY KEY,
-> name VARCHAR(50) NOT NULL,
-> email VARCHAR(100) NOT NULL UNIQUE,
-> age INT,
-> created_at DATETIME DEFAULT CURRENT_TIMESTAMP
-> );
Query OK, 0 rows affected (0.03 sec)
Query OK
と表示されれば成功です。
6.3. テーブル構造の確認
作成したテーブルが意図した構造になっているか確認するには、DESCRIBE
または DESC
コマンドを使います。
sql
DESCRIBE テーブル名;
-- または
DESC テーブル名;
例: users
テーブルの構造を確認する
sql
DESC users;
実行結果例:
mysql> DESC users;
+------------+--------------+------+-----+-------------------+-----------------------------+
| Field | Type | Null | Key | Default | Extra |
+------------+--------------+------+-----+-------------------+-----------------------------+
| id | int | NO | PRI | NULL | auto_increment |
| name | varchar(50) | NO | | NULL | |
| email | varchar(100) | NO | UNI | NULL | |
| age | int | YES | | NULL | |
| created_at | datetime | YES | | CURRENT_TIMESTAMP | |
+------------+--------------+------+-----+-------------------+-----------------------------+
5 rows in set (0.01 sec)
* Field
: カラム名
* Type
: データ型
* Null
: NO
は NOT NULL
制約がある(NULLを許容しない)、YES
は NULL を許容する
* Key
: 制約 (PRI
は主キー, UNI
は一意キー)
* Default
: デフォルト値
* Extra
: 追加情報 (auto_increment
など)
意図した通りの構造になっていることが確認できました。
6.4. テーブルの削除
不要になったテーブルを削除するには、DROP TABLE
文を使います。この操作を行うと、テーブル内の全てのデータとテーブル構造が完全に削除され、元に戻せません。実行には十分注意してください。
sql
DROP TABLE テーブル名;
例: users
テーブルを削除する
sql
DROP TABLE users;
実行結果例:
mysql> DROP TABLE users;
Query OK, 0 rows affected (0.02 sec)
SHOW TABLES;
を実行して、リストから users
テーブルが消えていることを確認しましょう。
今回は練習なので削除しましたが、通常は安易に DROP TABLE
を実行しないようにしましょう。
7. データの操作 (DML)
テーブルを作成したら、次は実際にデータをテーブルに格納したり、格納されているデータを取得したり、更新したり、削除したりする操作を学びます。これには主にDML (Data Manipulation Language) を使います。
再び users
テーブルを作成し、そこにデータを操作していくことにします。
mydatabase
を選択し、以下の CREATE TABLE
文を実行して users
テーブルを再作成してください。
“`sql
USE mydatabase;
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
email VARCHAR(100) NOT NULL UNIQUE,
age INT,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);
“`
7.1. データの挿入 (INSERT)
新しいデータをテーブルに追加するには、INSERT INTO
文を使います。
基本的な構文は以下の通りです。
sql
INSERT INTO テーブル名 (カラム名1, カラム名2, ...) VALUES (値1, 値2, ...);
* (カラム名1, カラム名2, ...)
: 値を挿入するカラムのリストです。省略すると、テーブル定義のカラム順に全てのカラムに値を指定する必要があります。
* (値1, 値2, ...)
: それぞれのカラムに対応する値のリストです。文字列はシングルクォート '
またはダブルクォート "
で囲みます。数値はそのまま記述します。日付や時間も文字列と同様にクォートで囲みます。
例1: 全カラムに値を指定して単一行を挿入
id
カラムは AUTO_INCREMENT
なので、値を指定する必要はありません(指定しても無視されます)。代わりに NULL
を指定するか、カラム名のリストから省略します。ここでは省略する例を示します。created_at
もデフォルト値が設定されているので省略できます。
sql
INSERT INTO users (name, email, age) VALUES ('山田 太郎', '[email protected]', 30);
実行結果例:
mysql> INSERT INTO users (name, email, age) VALUES ('山田 太郎', '[email protected]', 30);
Query OK, 1 row affected (0.01 sec)
Query OK, 1 row affected
は、1行のデータが正常に追加されたことを示します。
例2: 複数行をまとめて挿入
複数のデータをまとめて挿入することもできます。
sql
INSERT INTO users (name, email, age) VALUES
('佐藤 花子', '[email protected]', 25),
('田中一郎', '[email protected]', 45);
実行結果例:
mysql> INSERT INTO users (name, email, age) VALUES
-> ('佐藤 花子', '[email protected]', 25),
-> ('田中一郎', '[email protected]', 45);
Query OK, 2 rows affected (0.01 sec)
Records: 2 Duplicates: 0 Warnings: 0
Query OK, 2 rows affected
は、2行のデータが正常に追加されたことを示します。
例3: 特定カラムのみに値を指定して挿入
age
カラムは NOT NULL
制約がないため、値を指定しなくても挿入できます。
sql
INSERT INTO users (name, email) VALUES ('鈴木 二郎', '[email protected]');
この場合、age
カラムにはデフォルト値(制約がなければNULL)が設定されます。created_at
カラムにはデフォルト値 (CURRENT_TIMESTAMP
) が設定されます。
挿入したデータを確認するには、次のセクションで説明する SELECT
文を使います。
7.2. データの取得 (SELECT)
テーブルに格納されているデータを取得するには、SELECT
文を使います。SELECT
文はSQLの中で最も頻繁に使われる文です。
基本的な構文は以下の通りです。
sql
SELECT カラム名1, カラム名2, ... FROM テーブル名;
例1: 全カラムのデータを取得
テーブルの全てのカラム、全ての行のデータを取得するには、カラム名の代わりに *
(アスタリスク) を使います。
sql
SELECT * FROM users;
実行結果例(現在のテーブルの内容によって異なります):
mysql> SELECT * FROM users;
+----+--------------+---------------------------+------+---------------------+
| id | name | email | age | created_at |
+----+--------------+---------------------------+------+---------------------+
| 1 | 山田 太郎 | [email protected] | 30 | 2023-10-27 16:00:00 |
| 2 | 佐藤 花子 | [email protected] | 25 | 2023-10-27 16:00:00 |
| 3 | 田中一郎 | [email protected] | 45 | 2023-10-27 16:00:00 |
| 4 | 鈴木 二郎 | [email protected] | NULL | 2023-10-27 16:05:00 |
+----+--------------+---------------------------+------+---------------------+
4 rows in set (0.00 sec)
id
カラムが自動で連番になっていること、鈴木 二郎
の age
が NULL
になっていること、created_at
に現在日時が入っていることが確認できます。
例2: 特定のカラムのみを取得
取得したいカラム名をカンマ区切りで指定します。
sql
SELECT name, email FROM users;
実行結果例:
mysql> SELECT name, email FROM users;
+--------------+---------------------------+
| name | email |
+--------------+---------------------------+
| 山田 太郎 | [email protected] |
| 佐藤 花子 | [email protected] |
| 田中一郎 | [email protected] |
| 鈴木 二郎 | [email protected] |
+--------------+---------------------------+
4 rows in set (0.00 sec)
例3: 条件を指定して取得 (WHERE句)
特定の条件を満たす行だけを取得するには、WHERE
句を使います。
sql
SELECT カラム名 FROM テーブル名 WHERE 条件式;
条件式には、比較演算子や論理演算子を使います。
- 比較演算子:
=
,!=
(または<>
),<
,>
,<=
,>=
- 論理演算子:
AND
,OR
,NOT
- その他の演算子:
IN
,BETWEEN
,LIKE
,IS NULL
,IS NOT NULL
例: 年齢が30歳以上のユーザーを取得する
sql
SELECT * FROM users WHERE age >= 30;
実行結果例:
mysql> SELECT * FROM users WHERE age >= 30;
+----+-----------+-------------------------+------+---------------------+
| id | name | email | age | created_at |
+----+-----------+-------------------------+------+---------------------+
| 1 | 山田 太郎 | [email protected] | 30 | 2023-10-27 16:00:00 |
| 3 | 田中一郎 | [email protected] | 45 | 2023-10-27 16:00:00 |
+----+-----------+-------------------------+------+---------------------+
2 rows in set (0.00 sec)
例: 名前が「山田」で始まるユーザーを取得する (LIKE
演算子とワイルドカード %
を使う)
sql
SELECT * FROM users WHERE name LIKE '山田%';
%
は「0文字以上の任意の文字列」を表すワイルドカードです。_
(アンダースコア) は「任意の1文字」を表します。
例: age
が NULL のユーザーを取得する (IS NULL
を使う)
sql
SELECT * FROM users WHERE age IS NULL;
NULLは他の値と比較できないため (= NULL
や != NULL
は期待通りに動作しない)、IS NULL
または IS NOT NULL
を使います。
例: 年齢が20歳から40歳までのユーザーを取得する (BETWEEN
演算子を使う)
sql
SELECT * FROM users WHERE age BETWEEN 20 AND 40;
BETWEEN 20 AND 40
は age >= 20 AND age <= 40
と同じ意味です。
例: idが1または3のユーザーを取得する (IN
演算子を使う)
sql
SELECT * FROM users WHERE id IN (1, 3);
IN (1, 3)
は id = 1 OR id = 3
と同じ意味です。
例: 年齢が30歳以上 かつ メールアドレスに @example.com
を含むユーザーを取得する (AND
演算子を使う)
sql
SELECT * FROM users WHERE age >= 30 AND email LIKE '%@example.com%';
例4: 結果の並べ替え (ORDER BY句)
取得したデータを特定のカラムの値で並べ替えるには、ORDER BY
句を使います。昇順(小さい順)の場合は ASC
、降順(大きい順)の場合は DESC
を指定します。デフォルトは ASC
です。
sql
SELECT カラム名 FROM テーブル名 ORDER BY 並べ替えカラム [ASC/DESC];
例: 年齢の若い順にユーザーを並べ替えて取得する
sql
SELECT * FROM users ORDER BY age ASC;
NULL
は通常、昇順の場合は最初、降順の場合は最後に表示されます(データベースシステムや設定によって異なる場合あり)。
例: 作成日時の新しい順にユーザーを並べ替えて取得する
sql
SELECT * FROM users ORDER BY created_at DESC;
複数のカラムで並べ替えることもできます。カンマ区切りで指定します。
例: 年齢の若い順に並べ、同じ年齢の場合はIDの昇順で並べる
sql
SELECT * FROM users ORDER BY age ASC, id ASC;
例5: 結果の絞り込み (LIMIT句)
取得する行数を制限するには、LIMIT
句を使います。例えば、検索結果の最初の数件だけを表示したい場合や、ページネーションを実装する場合などに使います。
sql
SELECT カラム名 FROM テーブル名 LIMIT 件数;
-- または
SELECT カラム名 FROM テーブル名 LIMIT 開始位置, 件数;
LIMIT 開始位置, 件数
の場合、開始位置は 0
から始まります。
例: 最初の2件のユーザーを取得する
sql
SELECT * FROM users LIMIT 2;
例: 3件目から2件のユーザーを取得する(インデックスは0から始まるので、3件目はインデックス2)
sql
SELECT * FROM users LIMIT 2, 2;
例6: 集計関数とGROUP BY句
テーブル内のデータを集計するには、集計関数を使います。
COUNT(*)
: 行数を数えるCOUNT(カラム名)
: 指定したカラムの値がNULLでない行数を数えるSUM(カラム名)
: 指定したカラムの値の合計を計算する (数値型のみ)AVG(カラム名)
: 指定したカラムの値の平均を計算する (数値型のみ)MIN(カラム名)
: 指定したカラムの値の最小値を求めるMAX(カラム名)
: 指定したカラムの値の最大値を求める
例: ユーザーの総数を取得する
sql
SELECT COUNT(*) FROM users;
例: ユーザーの年齢の平均を取得する
sql
SELECT AVG(age) FROM users;
age
が NULL の行は計算に含まれません。
集計関数は、GROUP BY
句と組み合わせて使うことで、特定のカラムの値ごとにグループ化して集計できます。
sql
SELECT グループ化カラム, 集計関数(カラム名) FROM テーブル名 GROUP BY グループ化カラム;
例: 年齢ごとにユーザー数を集計する
sql
SELECT age, COUNT(*) FROM users GROUP BY age;
実行結果例:
mysql> SELECT age, COUNT(*) FROM users GROUP BY age;
+------+----------+
| age | COUNT(*) |
+------+----------+
| 25 | 1 |
| 30 | 1 |
| 45 | 1 |
| NULL | 1 |
+------+----------+
4 rows in set (0.00 sec)
NULL
も一つのグループとして扱われます。
グループに対する条件を指定したい場合は、WHERE
句ではなく HAVING
句を使います。WHERE
句はデータをグループ化する前に、HAVING
句はグループ化して集計した後に条件を絞り込みます。
例: 年齢ごとのユーザー数を集計し、その数が2以上の年齢だけを表示する
sql
SELECT age, COUNT(*) FROM users GROUP BY age HAVING COUNT(*) >= 2;
現在のデータでは該当するグループがないため、結果は空になります。
例7: 重複行の排除 (DISTINCT)
特定のカラムの値の重複を取り除いて表示するには、DISTINCT
キーワードを使います。
sql
SELECT DISTINCT カラム名 FROM テーブル名;
例: ユーザーのユニークな年齢の一覧を取得する
sql
SELECT DISTINCT age FROM users;
7.3. データの更新 (UPDATE)
既存のデータの値を変更するには、UPDATE
文を使います。
sql
UPDATE テーブル名 SET カラム名1 = 新しい値1, カラム名2 = 新しい値2, ... WHERE 条件式;
* SET
: 更新するカラムと新しい値を指定します。
* WHERE
: 更新する行を指定するための条件式です。このWHERE句を省略すると、テーブル内の全ての行が更新されてしまうため、非常に危険です。更新する際は必ずWHERE句で対象を絞り込みましょう。
例: IDが1のユーザーの年齢を31歳に更新する
sql
UPDATE users SET age = 31 WHERE id = 1;
実行結果例:
mysql> UPDATE users SET age = 31 WHERE id = 1;
Query OK, 1 row affected (0.01 sec)
Rows matched: 1 Changed: 1 Warnings: 0
Query OK, 1 row affected
は、1行が更新されたことを示します。SELECT * FROM users;
で確認してみましょう。
例: 年齢がNULLのユーザー全員の年齢を0に更新する
sql
UPDATE users SET age = 0 WHERE age IS NULL;
複数のカラムを同時に更新することも可能です。
例: IDが2のユーザーの名前を「田中 花子」、メールアドレスを [email protected]
に更新する
sql
UPDATE users SET name = '田中 花子', email = '[email protected]' WHERE id = 2;
7.4. データの削除 (DELETE)
テーブルからデータを削除するには、DELETE FROM
文を使います。
sql
DELETE FROM テーブル名 WHERE 条件式;
* WHERE
: 削除する行を指定するための条件式です。このWHERE句を省略すると、テーブル内の全ての行が削除されてしまうため、非常に危険です。削除する際は必ずWHERE句で対象を絞り込みましょう。
例: IDが4のユーザーを削除する
sql
DELETE FROM users WHERE id = 4;
実行結果例:
mysql> DELETE FROM users WHERE id = 4;
Query OK, 1 row affected (0.01 sec)
Query OK, 1 row affected
は、1行が削除されたことを示します。SELECT * FROM users;
で確認してみましょう。
例: 年齢が40歳以上のユーザーを全て削除する
sql
DELETE FROM users WHERE age >= 40;
DELETE と TRUNCATE TABLE の違い
テーブル内の全てのデータを削除する場合、DELETE FROM テーブル名;
と TRUNCATE TABLE テーブル名;
という2つの方法があります。
DELETE FROM テーブル名;
: WHERE句がない場合はテーブル内の全ての行を削除しますが、行ごとに削除処理が行われます。AUTO_INCREMENTの値はリセットされません。トランザクション内で実行でき、ロールバックが可能です。DMLに分類されます。TRUNCATE TABLE テーブル名;
: テーブル構造を残して、テーブル内の全てのデータを素早く削除します。テーブルを再作成するのと似ており、DELETEよりも高速なことが多いです。AUTO_INCREMENTの値はリセットされます。トランザクション内でも実行できますが、多くのRDBMSではDDLとして扱われ、ロールバックができません。
全件削除する場合は、通常は高速な TRUNCATE TABLE
が使われますが、AUTO_INCREMENTの値をリセットしたくない場合や、ロールバックの必要がある場合は DELETE
を使います。
8. もう少し進んだSELECT文(JOINの基本)
複数のテーブルにデータが分かれている場合、それらを組み合わせてデータを取得する必要が出てきます。例えば、注文情報テーブルと商品情報テーブルを組み合わせて、「どの注文で、どの商品がいくつ買われたか」を知りたい、といったケースです。このような場合に使うのが「JOIN」です。
ここでは、最も基本的なJOINである INNER JOIN
の概念を簡単に紹介します。
新しいテーブル products
を作成し、いくつかデータを追加してみましょう。
“`sql
— mydatabase を使用していることを確認
USE mydatabase;
— products テーブル作成
CREATE TABLE products (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100) NOT NULL,
price DECIMAL(10, 2) NOT NULL
);
— products データ挿入
INSERT INTO products (name, price) VALUES
(‘リンゴ’, 150.00),
(‘バナナ’, 100.00),
(‘オレンジ’, 120.00);
— データ確認
SELECT * FROM products;
“`
次に、ユーザーが商品を注文した情報を格納する orders
テーブルを作成してみましょう。このテーブルは、どのユーザーが (usersテーブルのidを参照)、どの商品を買ったか (productsテーブルのidを参照)、といった情報を持つようにします。この際に、他のテーブルのidを参照するために「外部キー (FOREIGN KEY)」を使います。
“`sql
— orders テーブル作成
CREATE TABLE orders (
id INT AUTO_INCREMENT PRIMARY KEY,
user_id INT, — どのユーザーの注文か
product_id INT, — どの商品の注文か
quantity INT NOT NULL, — 数量
order_date DATETIME DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (user_id) REFERENCES users (id), — user_id は users テーブルの id を参照する
FOREIGN KEY (product_id) REFERENCES products (id) — product_id は products テーブルの id を参照する
);
— orders データ挿入
INSERT INTO orders (user_id, product_id, quantity) VALUES
(1, 1, 2), — 山田太郎がリンゴを2個
(1, 3, 1), — 山田太郎がオレンジを1個
(2, 2, 3), — 佐藤花子がバナナを3個
(3, 1, 1); — 田中一郎がリンゴを1個
— データ確認
SELECT * FROM orders;
“`
これで、users
, products
, orders
という3つのテーブルができました。
INNER JOIN
は、結合する両方のテーブルに一致する行が存在する場合に、それらの行を組み合わせて取得します。
構文:
sql
SELECT 取得したいカラム FROM テーブル1 INNER JOIN テーブル2 ON 結合条件;
結合条件は、通常、一方のテーブルの外部キーともう一方のテーブルの主キーが一致するという条件になります。
例: orders
テーブルの注文情報に、注文したユーザーの名前と商品名を追加して取得する
まず、orders
テーブルと users
テーブルを結合します。結合条件は orders.user_id
と users.id
が一致することです。
sql
SELECT
orders.id AS order_id, -- カラム名が重複する場合など、AS で別名を付けることができる
users.name AS user_name,
orders.product_id,
orders.quantity,
orders.order_date
FROM orders
INNER JOIN users ON orders.user_id = users.id;
実行結果例:
mysql> SELECT
-> orders.id AS order_id,
-> users.name AS user_name,
-> orders.product_id,
-> orders.quantity,
-> orders.order_date
-> FROM orders
-> INNER JOIN users ON orders.user_id = users.id;
+----------+-----------+------------+----------+---------------------+
| order_id | user_name | product_id | quantity | order_date |
+----------+-----------+------------+----------+---------------------+
| 1 | 山田 太郎 | 1 | 2 | 2023-10-27 16:30:00 |
| 2 | 山田 太郎 | 3 | 1 | 2023-10-27 16:30:00 |
| 3 | 佐藤 花子 | 2 | 3 | 2023-10-27 16:30:00 |
| 4 | 田中一郎 | 1 | 1 | 2023-10-27 16:30:00 |
+----------+-----------+------------+----------+---------------------+
4 rows in set (0.00 sec)
これで、user_id
がユーザー名に変換されました。
次に、この結果にさらに products
テーブルを結合して、product_id
を商品名に変換しましょう。複数のテーブルを結合する場合は、INNER JOIN
を続けて記述します。
sql
SELECT
o.id AS order_id,
u.name AS user_name,
p.name AS product_name, -- 商品名
o.quantity,
o.order_date
FROM orders o -- テーブル名にも AS で別名を付けることができる(短い名前で済むので可読性が上がる)
INNER JOIN users u ON o.user_id = u.id -- orders テーブルと users テーブルを結合
INNER JOIN products p ON o.product_id = p.id; -- 上の結果と products テーブルを結合
実行結果例:
mysql> SELECT
-> o.id AS order_id,
-> u.name AS user_name,
-> p.name AS product_name,
-> o.quantity,
-> o.order_date
-> FROM orders o
-> INNER JOIN users u ON o.user_id = u.id
-> INNER JOIN products p ON o.product_id = p.id;
+----------+-----------+--------------+----------+---------------------+
| order_id | user_name | product_name | quantity | order_date |
+----------+-----------+--------------+----------+---------------------+
| 1 | 山田 太郎 | リンゴ | 2 | 2023-10-27 16:30:00 |
| 2 | 山田 太郎 | オレンジ | 1 | 2023-10-27 16:30:00 |
| 3 | 佐藤 花子 | バナナ | 3 | 2023-10-27 16:30:00 |
| 4 | 田中一郎 | リンゴ | 1 | 2023-10-27 16:30:00 |
+----------+-----------+--------------+----------+---------------------+
4 rows in set (0.00 sec)
このように、JOINを使うことで、複数の関連するテーブルから必要なデータを組み合わせて取得することができます。
JOINには INNER JOIN
の他にも、LEFT JOIN
, RIGHT JOIN
, FULL JOIN
など様々な種類がありますが、これらは初心者レベルとしてはまず INNER JOIN
を理解できれば十分です。
9. さらに学ぶために
この記事では、MySQLのインストールから、データベース/テーブルの作成、基本的なCRUD (Create, Read, Update, Delete) 操作までをCLI中心に解説しました。これでMySQLの基本は掴めたと思いますが、MySQLやデータベースの世界は非常に奥深いです。さらに学びを進めるためのステップをいくつかご紹介します。
- GUIツールを使ってみる: MySQL WorkbenchやphpMyAdminなどのGUIツールを使ってみましょう。直感的な操作で、クエリの実行だけでなく、テーブル構造の設計やデータの視覚化なども行えます。CLIでの操作と併用することで、学習効率が上がるでしょう。
- SQLのより高度な文法:
- サブクエリ: 別のクエリの結果を、別のクエリの一部として使用する方法。
- CASE文: 条件に応じて表示する値を切り替える方法。
- ウィンドウ関数: 集計関数に似ていますが、行をグループ化せずに集計やランキングなどを計算する方法。
- 様々なJOIN:
LEFT JOIN
やRIGHT JOIN
などを理解し、より複雑なデータ取得に対応できるようにする。
- データベース設計(正規化): データをどのようにテーブルに分割し、関連付けるかという設計論です。データの重複をなくし、更新時の不整合を防ぐために重要です。
- インデックス: データの検索速度を劇的に向上させるための仕組みです。どのカラムにインデックスを作成すれば良いか、どのようなインデックスがあるかなどを学びましょう。
- トランザクション: 複数のデータベース操作をまとめて一つの単位として扱い、全て成功するか全て失敗するかを保証する仕組みです。金融システムなど、データの整合性が非常に重要なシステムで不可欠です。
- ユーザー管理と権限設定: データベースへのアクセス権限を適切に設定し、セキュリティを確保する方法。
- バックアップとリストア: 万が一のデータ損失に備えて、データベースのバックアップを取得し、必要に応じて復旧する方法。
mysqldump
コマンドなどを学びましょう。 - パフォーマンスチューニング: 大量のデータや高いアクセス負荷に対応するために、SQLクエリやデータベース設定を最適化する方法。
- プログラミング言語からの利用: Python (mysql-connector-python), PHP (mysqli, PDO), Java (JDBC), Node.js (mysql2) など、様々なプログラミング言語からMySQLデータベースに接続し、操作する方法を学ぶことで、動的なWebサイトやアプリケーション開発が可能になります。
これらのトピックについては、MySQLの公式ドキュメントや、専門の書籍、オンライン学習プラットフォームなどで学ぶことができます。
10. まとめ
この記事では、完全初心者向けにMySQLの基本的な使い方を解説しました。
- MySQLはリレーショナルデータベースを管理するためのシステム (RDBMS) であること。
- MySQLのインストール方法(Windows, macOS, Linux)。
- CLIツール (
mysql
コマンド) とGUIツールの紹介。 - データベースの基本概念(テーブル、カラム、レコード、主キー、外部キー)とSQLの役割(DDL, DML)。
mysql
CLIでの接続、終了、ヘルプの使い方。- DDLを使ったデータベース (
CREATE DATABASE
,DROP DATABASE
,USE
,SHOW DATABASES
) やテーブル (CREATE TABLE
,DROP TABLE
,ALTER TABLE
,DESCRIBE
,SHOW TABLES
) の操作。 - DMLを使ったデータの操作 (
INSERT INTO
,SELECT
,UPDATE
,DELETE
)。 SELECT
文におけるWHERE
(条件絞り込み),ORDER BY
(並べ替え),LIMIT
(件数制限), 集計関数,GROUP BY
(グループ化),DISTINCT
(重複排除) の使い方。- 複数のテーブルを結合する
INNER JOIN
の基本。
これらの基礎をしっかりと理解すれば、簡単なデータベースを使ったアプリケーション開発やデータ分析の第一歩を踏み出すことができます。データベースは多くのITシステムの中核をなす技術です。この機会にぜひ、MySQLの使い方をマスターしてください。
最初は慣れないコマンド操作に戸惑うこともあるかもしれませんが、繰り返し練習することが大切です。少しずつ理解できることが増え、データの操作が自由自在にできるようになるにつれて、きっと面白くなってくるはずです。
この記事が、あなたのMySQL学習の素晴らしいスタートになることを願っています。頑張ってください!