Webサイト制作コースのお申し込みはこちら Webサイト制作コースのお申し込みはこちら

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

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

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

MySQLとは

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

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

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

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

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

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

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

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

この記事では具体的な説明は避けますが、”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」で書き換える必要があります。

// Oracle Databaseの場合
SELECT * FROM sample_table_A
MINUS
SELECT * FROM sample_table_B


// MySQLでは次のように記述する
SELECT * FROM sample_table_A
WHERE NOT EXISTS (
SELECT * FROM sample_table_B
WHERE sample_table_A.id = sample_table_B.id
)

TRUNC

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

// Oracle Databaseの場合
TRUNC(99.999)
// 若しくは
TRUNC(99.999, 0)


// MySQLでは次のように記述する
TRUNCATE(99.999, 0)

文字列の連結

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

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

// Oracle Databaseの場合
SELECT CONCAT('文字列A', '文字列B', ・・・)
// 若しくは
SELECT '文字列A' || '文字列B'


// MySQLでは次のように記述する
SELECT CONCAT('文字列A', '文字列B', ・・・)

まとめ

いかがでしたか?

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

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

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

エンジニアになりたい人に選ばれるプログラミングスクール「ポテパンキャンプ 」

ポテパンキャンプは卒業生の多くがWebエンジニアとして活躍している実践型プログラミングスクールです。 1000名以上が受講しており、その多くが上場企業、ベンチャー企業のWebエンジニアとして活躍しています。

基礎的な学習だけで満足せず、実際にプログラミングを覚えて実践で使えるレベルまで学習したいという方に人気です。 プログラミングを学習し実践で使うには様々な要素が必要です。

それがマルっと詰まっているポテパンキャンプでプログラミングを学習してみませんか?

卒業生の多くがWebエンジニアとして活躍

卒業生の多くがWeb企業で活躍しております。
実践的なカリキュラムをこなしているからこそ現場でも戦力となっております。
活躍する卒業生のインタビューもございますので是非御覧ください。

経験豊富なエンジニア陣が直接指導

実践的なカリキュラムと経験豊富なエンジニアが直接指導にあたります。
有名企業のエンジニアも多数在籍し品質高いWebアプリケーションを作れるようサポートします。

満足度高くコスパの高いプログラミングスクール「ポテパンキャンプ」

運営する株式会社ポテパンは10,000人以上のエンジニアのキャリアサポートを行ってきております。
そのノウハウを活かして実践的なカリキュラムを随時アップデートしております。

代表の宮崎もプログラミングを覚えサイトを作りポテパンを創業しました。
本気でプログラミングを身につけたいという方にコスパ良く受講していただきたいと思っておりますので、気になる方はぜひスクール詳細をのぞいてくださいませ。