MySQLとは?特徴や使い方の基本を解説!
2020年10月5日

 

MySQLは非常に人気のあるデータベースの管理システムで、データベースを取り扱う仕事をしているならば、聞いたことのない人はいないといっても過言ではありません。

仕事によっては、MySQLがどのようなものかは知らないが自分の仕事には関係しているという方もいるかもしれません。

本記事では、そんなMySQLとは一体どのようなものなのか、データベースそのものの解説を含めた関係性や特徴、オススメの学習サービスまで紹介していきます。

 

MySQLの概要

 

MySQLとは

MySQLは、オープンソースのリレーショナルデータベース管理システム(RDBMS)です。

世界でもっとも普及しているオープンソースのRDBMSとして知られており、2009年における利用企業数割合は世界が82.1%、日本が60.5%と圧倒的な数値を算出しています。

Drupal、Joomla、phpBB、WordPressなどのデータベース駆動型WEBアプリケーションの他、Facebook、Flickr、MediaWiki、Twitter、YouTubeといったWEBサイトでも使用されています。

 

名前の由来は共同設立者のMichael Widenius氏の娘の名前である“My”とStructured Query Languageの略称“SQL”を組み合わせからきています。

“SQL”の部分はデータベース言語のSQLを指します(※)が、これまでの説明でわかる通りMySQLはRDBMSでSQLとはまったく別の存在であるため、混同しないように注意しましょう。

 

※国際標準の規格票内では、“SQLは何かの略語ではない”と言明されています。

しかし、SQLが“structured query language”と紹介されることもあり、RDBMSの製品におけるSQLにおいては正しいとされています。

 

そもそもデータベースとは何なのか

データベースは、データの基礎・土台、データの基地という意味を表します。

検索や蓄積が容易にできるよう整理された情報の集まりのことで、身近なものではスマートフォンの電話帳や辞書などが当てはまります。

IT用語で使用される場合は、商用的に使われているもの・規模の大きなものを指すことが一般的です。

 

データベースの利点は“データの蓄積と整理により、情報として活用しやすくなる”という点です。

先ほど挙げた電話帳を例とすると、新たな連絡先を追加したり、すでにある連絡先の内容を編集・削除したりしてデータを整理することで、必要な連絡先を取り出しやすくすることができます。

 

一口にデータベースといってもさまざまな種類があり、ツリー状に構成される“階層型データベース”、網状に構成される“ネットワーク型データベース”、表で構成される“リレーショナルデータベース”が存在します。

 

MySQLの特徴

 

高い柔軟性

MySQLは、幅広い容量とプラットフォーム(OSと各エディション)に対応するデータベースです。

Windows、Mac、Linuxなどで動作し、低容量のアプリケーションはもちろん、1TB以上の巨大なビックデータの稼働にも活用できます。

また、MySQLはオープンソースなので、データベースサーバにオリジナルの機能を追加するなどの自由なカスタマイズが可能になっています。

 

高性能

MySQLには独自のストレージエンジン機構が採用されており、アプリケーションの用途に合わせて種類を選択可能です。

ストレージエンジンとは、データベースの作成、更新、削除といった基本的な操作を行うための中心機能です。

これにより、高速なトランザクション処理を必要とするシステムで使用するデータベースや、1日10億件ものクエリを処理するような大容量のWEBサイトのデータベースなど、過酷要件を課されているサービスへも柔軟に対応できます。

その他にも、高速ロードユーティリティ、独自のメモリキャッシュ機構、全文インデックスなどが装備されているので、要件にあわせてチューニング可能です。

 

データの保護

MySQLには、データの一貫性を保つために一連の処理が完了するまでデータを変更しないようにできる“トランザクション”という機能が実装されています。

作業中にトラブルが起きても、トランザクション機能により一連の処理をすべて破棄してデータに相違が出ないようにできます。

本機能は、金融機関などのデータに相違があると大きな問題となる用途で活躍します。

 

また、MySQLにはトランザクションをサポートする機能も多く存在しているため、データの一貫性を保つことにも秀でています。

その他、データのバックアップ機能やリカバリー機能などが用意されているので、いざという時に大事なデータを守れます。

 

優秀なセキュリティ技術

MySQLは、データベースの認証時に正規のユーザーだけがデータベースサーバにアクセスできるように制御可能な他、ユーザーによるデータベースサーバへのアクセスをクライアントマシン単位でブロックするといった制御も行えます。

また、データベースへのアクセス制御や安全な接続を保証する“SSH”や“SSL”といったセキュリティ技術がサポートされています。

データが第三者によって盗み見されることを防止する強力なデータ暗号機能も用意されています。

 

MySQLで可能な作業

 

大規模なWEBサイトおよびシステム

MySQLは高い性能を持っており、使用要件にあわせてチューニングも可能なため、ユーザーからのアクセスが多い大規模アプリケーションに適しています。

検索スピードも高速で、Yahoo!、Google、YouTubeといったトップ企業でも採用されています。

 

低コストでのデータベース管理システム利用

MySQLはオープンソースであり無料のバージョンも存在しているので、他の有償のデータベース管理システムよりも低いコストで運用できます。

大企業で有償のデータベース管理システムをMySQLに移行すると、億単位のコストダウンを実現できる場合もあります。

また、投資できる資金が少ない個人やスタートアップ企業でも採用しやすいため、幅広く利用されています。

 

MySQLの使用に必要な物

 

WEBサーバー(Apacheなど)

WEBサーバーは、クライアントソフトウェアのWEBブラウザに対して、HTTPに則りHTMLや画像などの表示を提供するサービスプログラムおよびそのサービスが動作するサーバーコンピュータを指します。

MySQLを単体で使用することは少なく、WEBサーバーやアプリケーションサーバとセットで使用することがほとんどです。

そのため、基本的には前もってWEBサーバーを立ちあげておき、MySQLと連携させることとなります。

 

PHP(Personal Home Page tool)

PHPは、コミュニティベースで開発されているオープンソースの汎用プログラミング言語およびその公式の処理系です。

サーバーサイドで動的なWEBページ作成するための機能を多く備えているという特徴があり、WEB開発ではサイトのボリュームを向上させるのに大きな役割を果たします。

サーバー側にあるデータベースと簡単に連携することが可能です。

 

MySQLのインストール&初起動までの手順

 

1:MySQLのダウンロード

MySQLの公式サイト内にある“MySQL Community Edition”のダウンロードページに移動し、“MySQL Community Server”をクリックします。

クリックするとOS選択画面に移るので、タイトルの下にある“Select Operating System:”欄をインストールしたいOSに変更し、その下にあるダウンロードボタンの中から使用しているPCに該当するものを選択し、ダウンロードを行います。

 

2:ダウンロードしたMySQLのインストール

1の項でダウンロードしたファイルを選択して実行します。

まずはライセンス条項を確認し、内容に問題がなければチェックボックスをクリックして進みます。

 

ライセンス条項の確認が終わると、セットアップ方法の選択に移ります。

“サーバーのみ”、“クライアントのみ”、“全て”、“カスタム”などの方法があるので、用途に合わせて選びましょう。

 

最後に、“Check Requirements”という画面で要件を満たしておらずインストールできない製品を確認します。

“Requirement”欄に足りないものが記載されるので、必要に応じて別途ダウンロードを行い、問題がなくなったらインストールを実行します。

 

3:初期設定を行う

インストールがすべて正常に完了した状態で“Next”ボタンを押すと、設定画面に進みます。

設定画面では、コンフィギュレーションタイプ、接続、rootアカウントのパスワード、Windows Service、プラグイン(ドキュメントストア)利用、最終確認の順に選択していきます。

サンプルをインストールしている場合はサンプルの初期設定も行います。

この工程が終了したら、インストールは終了となります。

なお、“Copy Log to Clipboard”をクリックするとインストールのログをクリップボードに保存できるので、業務などで記録が必要な場合は保存しておきましょう。

 

MySQLの基本的な使用方法

本項では、MySQLのクライアントプログラムを使用して簡単なデータベースを作成して使用する方法を紹介します。

 

サーバーへの接続(ログイン)

サーバーへ接続(ログイン)する際は、Windowsならばコマンドプロンプト、Macならばターミナルを使用します。

最初に“mysql -u root -p”と入力すると“Enter password:”と表示されます。

インストール時に設定したパスワードを入力してログインし、MySQLのコマンドで操作を進めていきます。

 

データベースの作成

サーバーへの接続が完了したら、データベースを作成します。

データベースの新規作成を行う場合は“create database (データベース名);”のコマンドを入力することで行えます。

また、“show databases;”のコマンドで、どのようなMySQLのデータベースがあるか確認できます。

 

テーブル作成

データベースを指定して、テーブルを作成することが可能です。

テーブル作成時のコマンドはCREATE TABLE文で作成します。

テーブルを作成するデータベースの選択は“use (データベース名);”、作成済テーブルの確認は“show tables;”で行えます。

 

データ編集

データの新規登録、確認、修正、削除ももちろん行えます。

データの新規登録は、“insert into (データベース名) values((フィールド名),’(データ型)’);”の形で行います。

この場合はデータベースに、指定のフィールド名、データ型が登録されます。

なお、定義してあればデータ型の欄は全角文字も入力できます。

 

格納されているデータを確認する場合は“select * from (データベース名)”、データ修正を行う場合は“update (データベース名) set name=’(データ型)’ where num=(フィールド名);”データ削除を行う場合は“delete from (データベース名) where num=(フィールド名);”を入力します。

 

ログアウト

ログアウトを行う場合は“exit”のコマンドを入力するだけで行えます。

 

MySQLの学習メリット

 

WEBアプリ開発の理解度向上

データベース管理システムは、ほとんどのWEBアプリで使用されています。

MySQLを学習することでデータベースとの連携やデータの操作方法なども理解できるため、WEBアプリ開発でその知識を活用していくことができます。

 

ビジネスにおいて活躍の機会が多い

企業におけるデータベース管理システムは、大企業がオラクルやMicrosoftSQL、スタートアップやWEB系ベンチャー企業ではMySQLが使われる傾向があります。

そのため、MySQLを習得すればスタートアップやWEB系ベンチャー企業から仕事を獲得するチャンスが生まれます。

 

また、サーバーを構築において“Linux”、“Apache”、“MySQL”、“PHP(またはRuby)”を組み合わせる“LAMP環境”というものが存在しており、サーバー構築費用が非常に安く済むため、多くの企業が採用しています。

こちらも自身の市場価値を高めていくうえで有用な知識であり、MySQLは習得ために必須の要素となります。

 

MySQL以外のデータベース管理システム

 

Oracle Database

米国のオラクル社(Oracle)が開発・販売しているRDBMSで、デファクトスタンダードと位置づけられています。

データベースを読み取る性能が高く、データにアクセスする最中に内容が更新されても、更新前のデータを読み取り素早くアクセスできます。

また、堅牢性も高く、データが破損してしまった場合でもデータベースを保護し継続して使用できるようなシステム構成となっています。

 

高機能ですが高額なため、大規模なデータ管理に使われることが多く、採用するのも大企業が一般的です。

その他、機能を使いこなすために専門知識が必要な程度には難しいシステムでもあり、“ORACLE MASTER”という世界共通基準の認定資格が存在しているほどです。

 

Microsoft SQL Server

マイクロソフトが開発しているRDBMSで、前述したOracle Databaseの対抗製品のような位置づけにあるといえます。

マウスだけで簡単に管理ができるので、データベースの操作に不慣れな人にも最適で扱いやすいのが特徴で、Oracle DatabaseやMySQLに次ぐ人気を誇っています。

また、その名称や開発元から想像できる通り、Windows ServerやMicrosoftの開発言語との相性は非常によいのも特徴の1つです。

 

PostgreSQL

“PostgreSQL”は、拡張性とSQL準拠を強調するフリーかつオープンソースのRDBMSです。

大規模商用データベースが持つような機能をもっており、DB-Engines.comによるマーケットシェア調査では、Oracle Database、MySQL、Microsoft SQL Serverに続いて4位に入るほどの人気を持っています。

 

PostgreSQLは、PostGISというサードパーティーソフトウェアで、GISオブジェクトをデータベースに格納し空間データに適した検索を行うインデックスと、GISオブジェクトを解析するための関数群が提供されています。

GISは、位置に関する情報を持ったデータ(空間データ)を管理し、地図などと組み合わせて位置を表示、検索、分析するシステムで、地図検索システムなどで利用実績があります。

また、MySQLと比べて関数や機能等が豊富なのも特徴です。

 

オススメのMySQL学習サービス

 

MySQLリファレンスマニュアル

MySQLの公式サイトより確認できるリファレンスマニュアルです。

エディションによっては含まれていない項目もありますが、おおよその機能に関する説明は掲載されている他、チュートリアルも用意されています。

非常にボリュームがあるマニュアルとなっているので、こちらを完全に理解できるころには初心者を卒業したといっても過言ではないでしょう。

 

DBonline

“DBOnline”は、MySQLやSQLiteなどの各種データベースのインストール方法や設定に関する解説を行っているサイトです。

MySQLを使ったデータベース、テーブル、ユーザー、トリガーなどの作成方法についてサンプルを見ながら学んでいく形となっています。

初心者向けにわかりやすく書かれているので、上記のMySQLリファレンスマニュアルの内容が難しく感じる方はこちらを活用するとよいでしょう。

もちろん、こちらを併用しつつリファレンスマニュアルを読み解いていくのもオススメです。

 

ドットインストール

短い動画で学習を進められる学習サービスで、“MySQL入門 基礎編(全27回)”と“MySQL入門 応用編(全37回)”が公開されています。

基礎編ではデータベース用語の整理や基本的な文法を、応用編ではデータ集計や分析の手法、複数テーブルの扱い、ウィンドウ関数、CTEについて学べます。

基礎編が2020年9月10日、応用編が2020年9月18日に公開されており、レッスン内容が比較的最近にアップデートされている点もうれしいポイントです(本記事は2020年10月掲載)。

 

まとめ

MySQLは、トップ企業でも採用されるほどの人気を持つRDBMSです。

データベースの操作という用途から、必ずしもあらゆる人にとって必須ということではないですが、アプリ開発などの用途においては非常に重要となってきます。

サーバーサイドのエンジニアを目指す人やWEBアプリを作りたいという人にはぜひ覚えてほしい知識です。

< 前へ

次へ >