無料でも使用できるオープンソースのデータベースとして有名なMySQLとはどんなものなのか、概要から特徴、Oracleとの違いなどをご紹介したいと思います。
目次
1.1 MySQLとは
1.2 MySQLはリレーショナルデータベース
1.3 MySQLのライセンス
1.4 MySQLのシェア
2.1 MySQLの主な機能
2.2 MySQLの特徴
2.3 MySQLとOracle Databaseとの違い
3.1 ダウンロード&インストール方法
3.2 データベース接続方法
3.3 MySQL workbenchの使い方と日本語化
3.4 ユーザの作成方法と権限の設定
3.5 データベースの作成方法
3.6 日本語データの文字化け回避方法
3.7 MySQLで使用可能なデータ型一覧
3.8 テーブルの作成・変更・削除方法
3.9 CSVへのエクスポートとインポート
3.10 mysqldumpの使い方と主要オプション
3.11 インデックスの貼り方
3.12 MySQLで使用可能な文字列結合方法
3.13 SELECT文の様々な使い方
3.14 MySQLで使える主要なコマンド一覧
3.15 MySQLから出力されるログファイルの設定
3.16 レプリケーションの設定
3.17 よくあるエラーの発生原因と対処方法
3.18 ストアドプロシージャの作り方と設定
3.19 MySQLのチューニング方法
1.MySQLとは?
1.1 MySQLとは
MySQLとは最も有名なオープンソースのデータベース(OSS-DB)であり、商用でも人気が伸びているRDBMSです。当初スウェーデンのMySQL ABで開発が行われましたが、現在はOracle社が権利を保有しています。
オープンソースであるためプライベートな利用を目的とする場合は無料でダウンロード可能ですが、商用利用を可能とするライセンスも用意されています。
MySQLは「リレーショナルデータベース(関係データベース)」です。リレーショナルデータベースとは行と列からなる表の集合とその関係からなるデータベースのことで、現在使用されているデータベースのほとんどが、このリレーショナル型のデータベースを採用しています。
MySQLはデュアルライセンスであり、無償のGPLライセンスと有償の商用ライセンス(コマーシャルライセンス)に大きく分かれています。さらに商用ライセンスについては、利用する機能やサポート内容でさらに3つに細分化しています。
細分化以前の有償ライセンスと無償ライセンスの使用条件を比較すると、次のようになります。
完成したソフトウェアを一般に配布する場合 | 社内や個人などプライベートで使用する場合 | |
---|---|---|
有償 |
・完成したソフトウェアをオープンソースとして公開しない ・完成したソフトウェアの改変と再配布を許可しない |
・技術サポートを利用する |
無償 |
・完成したソフトウェアをオープンソースとして公開する ・完成したソフトウェアの改変と再配布を許可する |
・技術サポートを利用しない |
なお商用ライセンスの料金はプランや利用環境の規模により異なりますが、2017年1月時点で最低でも24万円からとなっています。
前述のように、MySQLは世界的に高いシェアを誇るOSS-DBです。以前は日本国内ではPostgreSQLが優勢となっていましたが、MySQLは国内でも大きくシェアを伸ばしつつあります。
参考:2009年のMySQLおよびPostgreSQL利用企業数の割合
地域 | MySQL | PostgreSQL | 調査機関 |
---|---|---|---|
世界 | 82.1% | 27.1% | 451 Group |
平成21年春期 | 60.5% | 51.9% | IPA |
2.MySQLの主な機能と特徴
MySQLには様々な機能があります、そのうちの一部代表的なものを抜粋してみました。
・トランザクション管理
・副問い合わせ
・クラスタリング
・ストアドプロシージャ
・ビュー
・トリガ
・コネクタ
・情報スキーマ
・レプリケーション
・パーティショニング
・パフォーマンス・スキーマ
・クエリオプティマイザ
・プラガブル ストレージエンジン
など
MySQLには、同じOSS-DBであるPostgreSQLや、高価な商用DBの代表格であるOracle Databaseと比べて、動作が高速であるという特徴があります。
さらにOracle Databaseなどに比べると機能には少し不足があるものの、そのぶん開発が比較的容易であるという利点もあります。
MySQLとOracle Databaseにはいくつか仕様に相違点があります。そのためデータやアプリケーションの移植などを行う場合には、注意が必要です。
2つのDBの相違点のうち、ごく基本的なポイントには次のようなものがあります。
(1)データ型の指定方法が異なる
<Oracle> |
・数値型:NUMBER ・文字列型:CHAR/VARCHAR2 |
---|---|
<MySQL> |
・数値型:INTEGER/NUMERIC ・文字列型:CHAR/VARCHAR |
(2)日付書式が異なる
<Oracle> | ‘YYYY-MM-DD HH24:MI:SS |
---|---|
<MySQL> | ‘%Y-%M-%D H%:i%:s% |
(3)NULLと空文字の使い分けが異なる
<Oracle> | NULLと空文字を区別しない |
---|---|
<MySQL> | NULLと空文字は別物として区別する |
3.MySQLの使い方
当コラムでは、ほかにもMySQLの使い方に関する記事を掲載しています。
MySQLに関する記事へのリンクをまとめましたので、よろしければご覧ください。