【SQL】無料で使えるMySQLについて、他のDBとの違いを分かりやすく解説。
  • facebookページ
  • twitterページ
  • 2020.07.31

    【SQL】無料で使えるMySQLについて、他のDBとの違いを分かりやすく解説。

    本格的にやるかどうか悩んでる方にとって、学習する際に係るコストは出来るだけ排除したいものです。

    そこで今回は、MySQLというオープンソースデータベースについての解説を行っていきたいと思います。

    MySQLとはどんなものなのか?他のデータベースと何が違うのか?など、具体的な内容にも言及していきますので一読してみてください。

    MySQLとは

    MySQLは恐らく、世界で最も有名なオープンソース型のデータベースだと言えるでしょう。

    オープンソースということで一昔前までは個人使用を中心に人気が広がっていましたが、今現在では商用でも人気が伸びてきていることから使い勝手の良さも伺えます。

    開発元はスウェーデンのMySQL ABという企業ですが、まずこの企業がJavaで有名なサン・マイクロシステムズに買収され、その後にサン・マイクロシステムズをOracle社が買収したため、現在ではライセンスはOracle社のものとなっています。

    リレーショナルデータベース

    まず知っておかなければならないのは、MySQLはリレーショナルデータベースとだということです。

    リレーショナルデータベースとは、列と行からなる「事前定義された関連のあるデータ項目の集合体」を指します。

    リレーショナルデータベースはMySQL以外にも以下のデータベースがあります。

    • Amazon Aurora
    • Oracle Database
    • Microsoft SQL Server
    • PostgreSQL
    • MariaDB

    ここで敢えてリレーショナルデータべースだと宣言した理由には、近年台頭してきたリレーショナルデータベースに置き換わる可能性を持った別のデータベースがあるからです。

    この記事では具体的な説明は避けますが、”NoSQL”という言葉を耳にしたことがある方もいると思います。

    このNoSQLの”No”は”Not only”の略であり、NoSQLはSQLに限定されないリレーショナルデータベース以外のデータベース全般を指します。

    ライセンスについて

    先ほどから何度もMySQL=無料と説明してきましたが、その理由としてはMySQLがデュアルライセンスであることが挙げられます。

    このデュアルライセンスとは完全無償のGPLライセンスと有償の商用ライセンとで別れています。

    また商用ライセンスに至っては更に三つに細分化されています。

    大まかな区分けは次の通りです。

    配布条件 サポート
    無償 ・完成したソフトウェアを無償公開する
    ・公開したソフトウェアの改変および再配布を許可する
    技術サポートなし
    有償 ・完成したソフトウェアを無償公開しない
    ・公開したソフトウェアの改変および再配布を許可しない
    技術サポートあり

    MySQLのシェア

    MySQLは先にも述べたように世界でも高い評価を受けています。

    それを裏付けるのが次のDB-Engineランキングです。

    ランキングを見るとOracle社のDBが上位2位を独占している状態となっていることがわかります。

     

    MySQLの主な機能と特徴

    MySQLには非常に多くの機能が備わっていますが、代表的なもので言うと次のようなものが挙げられます。

    • 情報スキーマ
    • ビュー
    • パーティショニング
    • クエリオプティマイザ
    • トリガ
    • クラスタリング
    • トランザクション管理
    • 副問い合わせ
    • コネクタ

    Oracle社が元々開発していたOracle Databaseと比べると機能的には若干の物足りなさはあるものの、中規模開発までなら使い勝手の良さで逆にMySQLに軍配が上がることもしばしばあります。

    また基本的な部分では、Oracle DatabaseやPostgreSQLと比べ、動作が非常に高速であるという特徴もあります。

    Oracle Databaseとの違いについて

    親会社は一緒のこの二つのDBですが、仕様については若干の差異が発生します。

    この差異によりアプリケーションやデータを移植させる場合には注意が必要となります。

    これらの違いについてですが、例えば具体的には次のような点が挙げられます。

    NULLと空文字の仕様が異なる

    Oracle NULLと空文字を区別しない
    MySQL NULLと空文字は別のものとして区別される

    型の指定方法が異なる

    Oracle ・数値型:NUMBER
    ・文字列型:CHAR / VARCHAR2
    MySQL ・数値型:INTEGER / NUMBER
    ・文字列型:CHAR / VARCHAR

    書式が異なる

    Oracle ‘YYYY-MM-DD HH24:MI:SS’
    MySQL ‘%Y-%M-%D H%:i%:s%’

    命令句の違い

    上記のほかにも、使用できる命令句が異なる点には注意が必要です。

    次ではその例をいくつか挙げてみます。

    MINUS

    Oracle Databaseにある集合演算子でMINUSというものがありますが、MySQLにはこのMINUSが存在しない為、「NOT EXISTS」で書き換える必要があります。

    TRUNC

    Oracle Databaseで使用する関数で「TRUNC」というものがありますが、これもMySQLでは書き換える必要があります。

    文字列の連結

    文字列の端に別の文字列を追加するための演算子についても若干の違いがあります。

    Oracle Databaseでは文字列の連結には「||」という連結演算子が使用できますが、MySQLでは「||」という演算子は論理演算子として解釈されるため文字列を連結させる用途としては使用できません。

    まとめ

    いかがでしたか?

    今回はMySQLの「他のデータベースとの違い」について解説してみました。

    当然Oracle databaseとMySQLだけではなく、他のDBとも若干の違いは出てくるケースがあります。

    DBを移行する場合にはその辺りを踏まえて用意しておかなければ、いざ移行してみたらとんでもない数のエラーが出力されたということも十分考えられますので事前にDB毎の特徴を把握しておいた方が良いでしょう。



    優良フリーランス案件多数掲載中!
    フリーランスエンジニアの案件をお探しなら
    ポテパンフリーランス

    この記事をシェア

    • Facebookシェア
    • Twitterシェア
    • Hatenaシェア
    • Lineシェア
    pickup









    ABOUT US

    ポテパンはエンジニアと企業の最適なマッチングを追求する企業です。

    READ MORE