MySQLとは?特徴や使い方、インストール方法を初心者向けにカンタン解説
ITを学んでいると「データベース」という言葉をよく耳にします。データベースとは、データを効率的に整理・管理するソフトウェアで、なかでも「MySQL」は、リレーショナルデータベースと呼ばれる種類の管理システムの1つで、特にWEB系システムで広く使われています。
本記事では、MySQLとSQLの違いや、MySQLの特徴、メリット、インストール方法、学習方法を解説しています。ぜひご覧ください。
Contents
MySQLとは?
MySQL(マイエスキューエル)は、データを効率的に保存、管理、取り出すためのシステムで、Oracle社が提供するリレーショナルデータベース管理システム(RDBMS)です。
RDBMSは、データを表(テーブル)形式で管理し、異なるテーブル間の関係を定義できるため、複雑な情報を整理し、素早く検索できるようにするシステムです。
例えば、WEBサイトやアプリケーションの裏側で、利用者情報や商品データなどを管理します。
MySQLはWEB系企業を中心に、世界で2番目に多く利用されているデータベースです。
使いやすさと高性能が評価され、小規模なブログから大規模なECサイトまで、幅広い用途で活用されています。
MySQLでできること
MySQLは多くのWEBサイトで使われます。
- ・WordPressのようなブログやサイトを作るためのシステムでは、記事やユーザー情報を保存します。
- ・不動産の仲介サービスでは、物件情報を管理し、多様な条件に合う物件を検索できます。
- ・オンラインショップでは、商品情報や注文履歴を管理し、新商品の登録、在庫の追跡に役立ちます。
MySQLとSQLの違い
データベースの世界に足を踏み入れると、必ず目にするキーワードが「SQL」です。SQL(Structured Query Language)は、データベースにデータを追加したり、取り出したりするための言語です。SQLは、データベースに対して指示を出すための「会話の方法」と考えればわかりやすいでしょう。
MySQLは、リレーショナルデータベース管理システムで、特にWEBアプリケーションで広く使用されています。
では、SQLとMySQLの違いは何でしょうか?SQLはデータベースを操作するための言語自体を指し、MySQLはSQLを使ってデータを管理するための具体的なソフトウェア製品を指します。つまり、SQLは「言葉」で、MySQLは言葉を使ってデータを扱う「場所」です。
関連記事:SQLとは?プログラミング言語との違いや、構成、できることについて徹底解説
MySQLの機能と特徴
MySQLの機能と特徴を3つお伝えします。
リレーショナルデータベースを採用
リレーショナルデータベースは、行・列(テーブル)形式でデータを整理し、効率的に管理します。複数の異なるテーブル間の関係(データの関連性)を管理できます。
例えば、オンラインショップでは商品情報・注文情報を別々のテーブルで管理し、商品と注文の関係を明確にできるため、整合性を保ちながら、効率的なデータ管理を実現できます。
オープンソースで利用できる
オープンソースとは、ソースコードが公開されていて、基本的に無料で利用できるソフトウェアのことです。MySQLを利用してデータベースを構築すると、有料のデータベースに比べてコストを削減できます。また、MySQLは、有料サポートも用意されており、利用者が多いため日本語の情報も豊富にあります。オープンソースソフトウェアには、サポートがないものや、情報が少ないものも多いので、その点においても安心して利用できます。
関連記事:オープンソースとは?その特徴や使う際の注意点を解説
さまざまなOSとシステム開発規模に対応可能
MySQLは、OSを選ばずに実行できるマルチプラットフォーム(クロスプラットフォームともいう)になっているため、WindowsやmacOS、Linuxなど複数のOSで環境構築をできます。また、開発規模についても汎用性があり、個人での利用はもとより、大規模なシステム開発にも対応できるため、Googleやヤフー、Meta(旧Facebook)などの大企業でも採用されています。
MySQLのメリット
MySQLのメリットを4点お伝えします。
拡張性と柔軟性が高い
先述したように、MySQLは、OSを選ばずに利用できるため、柔軟性が高いRDBMSのひとつです。また、小規模から大規模まで利用できることは、拡張性が高いと説明できます。大規模なデータベースになると、同時利用をする顧客の数が増えるため、処理速度が遅くなりがちですが、MySQLは、データ検索や処理結果を素早く反映できるシステムを利用しているため、大規模なシステムにも対応できるようになっています。
さらに、ブラウザからデータベース接続が可能になる「phpMyAdmin」や、データベースの作成や設計、管理ができる「MySQL Workbench」というビジュアルツールもあり、この点においても拡張性や、柔軟性が高いと判断できます。
強力なセキュリティ
MySQLでは、SSH(Security Shellの略称)という遠隔でコンピューターを操作する際に、データを暗号化するプロトコル(通信規格)や、SSL(Secure Socket Layerの略称)というインターネット上で端末と、サーバー間のデータを暗号化するプロトコルが利用されています。また、正規ユーザー以外のデータベースサーバーへのアクセスを制御するメカニズムや、第三者の盗み見を防止する機能、復号機能(暗号化やデータ圧縮などで変換されたデータを元のデータに戻すこと)なども備わっています。
さまざまなプログラミング言語に対応している
MySQLは、PHPやPython、Javaなど多くのプログラミング言語と連携できます。
開発者は自分の得意な言語でのアプリケーション作成にMySQLの高度な機能を利用できます。
世界的企業の安心感
MySQLの開発元は、世界的なIT企業であるOracle(オラクル)社であり、GoogleやMetaなどのGAFAでも利用しているRDBMSのため、安心感があることは間違いないでしょう。また、Oracle社が継続的に管理をしており、バックアップや、リカバリーなどのデータを守る機能が充実していること、世界的なIT企業が提供しているシステムであるため、EOS(End Of Service|サービスの終了)のリスクが少ないことなどのメリットもあります。
MySQLの注意点
MySQLは、無料で利用できるため簡単に導入できますが、システム開発や運用をしていく過程で生じた問題については、自分で対処しなければなりません。そのため、データベースに詳しい人員がいないと、対応できなくなる可能性があります。また、システムが小規模なときはまだしも、運用していくなかでシステムが大規模になり、障害やトラブルが原因でサービスを停止してしまった場合、企業責任などを問われることも考えられます。
無料で利用することはコスト削減になりますので企業にとっては喜ばしいことですが、企業内の人材でも対応できない問題が発生する可能性もあるため、システムの規模によっては有料サービスも検討する必要があります。
MySQLのインストール方法
本項ではWindows環境への導入方法をご紹介します。
インストーラーの取得
MySQL :: Download MySQL Installer からMSIインストーラーを取得します。
バージョンやOSは既定値で問題ありません。
インストーラーは、容量が2種類あり、コンパクトな方はインストール時にインターネット接続が必要です。
「Download」を押すと、ログインか登録の選択になりますが、下の「No thanks,~」をクリックしてダウンロードできます。
インストーラーの実行
ダウンロードした.msiを実行します。
Setup Typeの選択では「Server Only」を選びNextを押します。
コンパクト版.msiではダウンロード内容が表示されます。Executeで進めます。
Download後、Nextを押しInstallationへ(以下、適宜Nextを押して進めていきます)
導入を開始するにはExecuteを押します。
インストーラーでの設定
しばらく待つと、Product Configurationに進みます
MySQL Serverの設定を進めます。
Type and Networking
既定値で進めます。
Authentication Method
既定値で進めます。
Accounts and Roles
管理アカウントrootのパスワードを確認のため2回入力し、Nextを押します。
Windows Service
既定値で進めます。
Server File Permissions
既定値で進めます。
Apply Configuration
設定の確認が表示されます。Executeで反映します。
設定反映後、Finishを押します。
Product Configurationに戻った場合、同様に設定をします。
インストールの終了
Finishで終了です。
パスの設定
コマンドプロンプトでmysqlを使うには、WindowsのシステムPATH設定をすると便利です。
MySQLの基本的な使い方
MySQLを操作するには、SQLを利用します。SQLは、国際標準化されている規格のため、SQLを覚えれば、他のRDBMSの操作も可能です。また、Microsoft SQL Serverの「Transact-SQL」のように、SQLの機能拡張をしたものも存在します。
加えて、SQLは、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つから構成され、構文も異なっています。こちらの内容については、関連記事の【3.SQLを構成する言語】で紹介していますので、よろしければご確認ください。
関連記事:SQLとは?プログラミング言語との違いや、構成、できることについて徹底解説
では、基本操作を見ていきましょう。
サーバーへログインする
コマンドインタフェース(CLI)を開く手順は以下です。
① CLIに接続
以下のいずれかで、MySQLのCLIに接続します。
- ・Windowsのスタートから、MySQL 8.x Command Line client – UNICODEを開く
- ・コマンドプロンプト(macOSなどは端末)を開き、mysql -u root -pを入力しエンターで実行
② パスワードを入力
Enter password: (rootのパスワードとエンターを入力)
③ 接続完了
正常に接続後は、mysql>に続けてSQLコマンドを入力します。
— 以下のSQL入力例で、ダブルハイフン以降はSQLコメントを表し、実行時は無視されます(入力不要)
データベースを作成する
sample_appの名で作成するSQL例:
CREATE DATABASE sample_app;
— sample_appデータベースを作成します。
— 構文: CREATE DATABASE データーベース名;
データベースを削除する
データベースsample_appを削除する例:
DROP DATABASE sample_app;
— sample_app データベースを削除します。
— 上記SQLの実行で、データベース内のすべてのデータが消えるので、実行前には十分な確認をしてください。
— 構文: DROP DATABASE データーベース名;
使用するデータベースを変更する
複数のデータベースがある環境で、操作対象を変更します。
USE sample_app;
— コマンド操作での操作対象を sample_app データベースへ切り替えます。
— 構文: USE データーベース名;
テーブルを作成する
新設する各カラムの名前・データ型・制約などを宣言します。
— 構文: CREATE TABLE テーブル名 (カラム定義1, カラム定義2, ……);
— 以下は、users テーブルを作成し、id・username・email・created_atの4カラムを定義します。
CREATE TABLE users ( — テーブル名は users
— 1つのカラム定義は以下のような形式で、カンマ区切りで複数カラムを定義できます。
— カラム名 データ型 基本的なオプション・制約
id INT AUTO_INCREMENT PRIMARY KEY, — `id`は整数型の自動増加する主キー。一意にレコードを識別します。
username VARCHAR(50) NOT NULL UNIQUE, — `username`は最大50文字の一意な非NULL(空でない)文字列
email VARCHAR(100) NOT NULL UNIQUE, — `email`は最大100文字の一意な空でない文字列
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP — `created_at`はレコード作成時の日時を自動設定
);
テーブルを削除する
テーブルusersを削除する例:
DROP TABLE users;
— users テーブルを削除します。
— テーブル内のすべてのデータが失われるため、慎重に実行してください。
— 構文: DROP TABLE テーブル名;
データを追加する
追加対象のテーブル名、カラム名、各値を記載します。
INSERT INTO users (username, email) VALUES (‘user1’, ‘user1@example.com’);
— usersテーブルのusernameとemailカラムに指定した値を持つ新しい行を追加します。
— ※ idとcreated_atカラムはテーブル作成時の指定により自動で値が追加されます。
— 構文: INSERT INTO テーブル名 (カラム1, カラム2, ……) VALUES (値1, 値2, ……);
データを更新する
更新するカラムと新しい値、条件などを指定します。
UPDATE users SET email = ‘newemail@example.com’ WHERE username = ‘user1’;
— WHERE によりusernameが’user1’と等しい行に限定して、emailを更新します。
— WHERE句を省略するとすべての行が更新されるため、注意してください。
ログアウトする
下記を入力するとCLIを終了します。
EXIT;
— または
QUIT;
MySQLを停止する
コマンドプロンプトを管理者権限で開き、以下を実行します。
mysqladmin -u root -p shutdown
# 求めに応じてrootのパスワードを入力します。
MySQLの将来性について
現状からMySQLの将来性を解説します。
クラウドサービスの普及により需要が高まっている
クラウドの急速な普及にともない、AWSなど主要企業がMySQLの運用代行サービスを提供し、クラウドネイティブ環境との親和性も高いため、MySQLの需要が急増しています。
データベースが重要な今後、MySQLは必要不可欠に
ビッグデータやAIの発展には大量データ管理が不可欠となっています。
MySQLは、大量データ処理やリアルタイム分析に対応できる機能拡張をおこない、オープンソースの利点の低コストと豊富な情報源も強みです。
以上の要因から、MySQLはクラウド時代のRDBMSとして、さらなる成長が期待できます。
MySQLの学習方法
MySQLの学習方法を3つお伝えします。
プログラミングスクールに通う
独学に比べると費用がかかりますが、効率的に勉強したい方は、プログラミングスクールで学習することをおすすめします。MySQLに特化したコースを組んでいるスクールはそれほど多くありませんが、SQLについて学習できるスクールは多く存在しています。プログラミングスクールは、カリキュラムがあるため勉強しやすい、質問対応があるため早く疑問を解決できる、就職や転職サポートがあるなどのメリットがあります。
書籍で学ぶ
MySQLは、人気のあるRDBMSのため書籍もたくさん販売されています。また、書籍は初心者向けの本から、上級者向けの本まで販売されていますので、最初は基礎的なことから学習していき、必要に応じて学習難易度を上げていくことも可能です。
初心者向けの本には以下のようなものがあります。
5年ぶりのバージョンアップ!DB、SQL、PHPまったくの初心者向け。(内容より抜粋)
・1週間でMySQLの基礎が学べる本(1週間プログラミング)
本書を読み進めながら、一緒にサンプルSQL文を入力してみることで、データベースの基礎とMySQLの基礎が分かるようになり、ちょっとだけSQL文が書けるようになります。(内容より抜粋)
本書はMySQLをはじめて触る方を対象として、開発環境の準備からSQLの基本的な書き方、PHPによるWebシステム開発まで、図解でわかりやすく解説します。(内容より抜粋)
運用・データ型・レプリケーション・文字コードなどの実務で役立つ内容もバランスよく解説します。(内容より抜粋)
また、MySQLに限らず、SQLやプログラミング言語の学習では自分で手を動かして覚えていくことが大切です。自分のパソコンにMySQLをインストールして学習を進めていきましょう。
学習サービスやWEBサイトなどを利用する
学習サービスの「ドットインストール」、「paizaラーニング」にはMySQLの学習コースが設けられており、コースの途中までなら無料で利用できます。学習コースのすべてを勉強するためには月額1,000円程度が必要になりますが、画像や動画などで視覚的に学びやすいと感じる方もいらっしゃると思います。また、「Udemy」では各種有料コースが設けられており、「Progate」は導入部分までの学習しかできませんが、無料で利用可能です。
加えて、Oracle社の公式サイトではMySQLのチュートリアルが公開されているため、チュートリアルに沿って勉強することができ、MySQLの勉強方法を無料で公開しているWEBサイトも存在します。書籍やこれらのサービスなどで独学は可能ですので、気になった方は無料のものを利用して気軽に始めてみましょう。
※参考:MySQL :: MySQL 8.0リファレンスマニュアル
まとめ
MySQLはRDBMSとして人気のあるもので企業でもよく利用されているため、習得できれば就職や転職の活動で評価されることが期待できます。また、MySQLを操作するためのSQLは他のRDBMSでも利用できるため、データベース操作の基本が身につくことも大きなメリットです。
データベースの知識はインフラ構築やデータ分析などで必要なので、知識としての汎用性も高く、関連する知識を増やしていくことでスキルアップもしやすくなります。これからエンジニアになろうとしている方はもとより、エンジニアとしてキャリアアップを望む方にもおすすめできますので、ぜひとも学習を検討してみてください。