- 更新日: 2017年05月22日
- 公開日: 2016年02月12日
MySQLとは?データベース管理システム、MySQLを徹底入門!
Web業界を目指す人ならまず聞いたことがあるであろうMySQL。世界的に有名だから知っておくべきと思っても、データベース、しかもオープンソースということで躊躇している方もいらっしゃるのではないでしょうか。
「MySQLは名前だけ知っているけど具体的に何?」という方に向けて、覚えておくと後々便利なキーワードを交えつつ、概略から勉強方法までをごく簡単にご紹介します。
そもそもMySQLとは?
オープンソースのリレーショナルデータベース管理システム(RDBMS)です。オープンソース系としては世界的には最も多く使用されています。
(DB-ENGINES 2016年2月ランキングより)
現在は多くの企業で採用
Facebook、Twitter、YouTube、Amazon、Wikipediaなど、有名企業が導入しています。DeNA、SCSK、サイボウズといった日本の企業でも導入事例があります。公式サイトではWebサイトやデータウェアハウス向きと明記されていますが、条件がそろえば基幹業務システムにも利用可能で、コスト削減が見込めます。
MySQLの特徴
高性能なストレージエンジン「InnoDB」
ストレージエンジンとは,DBMSがデータベースからのデータの読み込み、データベースへの書き込みに使われるMySQL独自のコンポーネントのことです。 MySQLでは様々なストレージエンジンをサポートしており、以前はトランザクション非対応である代わりに参照が高速なMyISAMが使われていました。現在はACID(※)に準拠した強固なトランザクションサポートを実現しているInnoDBがデフォルトとなっています。
※ACID…Atomic:原子性、Consistent:一貫性、Isolated:独立性、Durable:永続性 の頭文字を取ったもの
レプリケーション
レプリケーションとは、データベースサーバー (マスター) のデータを1つまたは複数のデータベースサーバー (スレーブ) に複製することです。これにより、負荷分散、バックアップ、スレーブでの情報分析などが可能になります。
MySQLのレプリケーションには、
- 非同期レプリケーション…マスターは、イベントがスレーブに届いたかは確認しない。マスターとスレーブのデータが違う可能性がある
- 準同期レプリケーション…マスターのトランザクションがコミットされた後、少なくとも1つのスレーブがイベントを受け取るまで待機する
- (完全)同期レプリケーション…マスターのトランザクションがコミットされた後、全てのスレーブがイベントを受け取るまで待機する
対応OS
Oracle Linux、Solaris、Microsoft Windows、Apple OS Xなど様々なプラットホームに対応。MySQL, OSの組み合わせ可否はバージョンによって異なるので、詳しくはこちらをご参照ください。
Oracleとの関係
MySQLとOracle Databaseは利用形態や利用者層が異なり、補完関係にあるとのこと。Oracle Database向けのツールがMySQLにも対応するなど、年々親和性が増しています。(ただMySQLがオープンソースで継続できるか、現在でも一部で疑念が持たれている模様です)
MySQLの簡単なコード紹介!
MySQLの操作例です。この例ではMySQL 5.7 Command Line Clientを使用します。
(画像はOS:Windows 10 , MySQL:MySQL Community Server 5.7.11の画面)
データベース作成
データベースを作成するにはCREATE DATABASE構文を使います。
[例]create database code_bu;
データベース一覧を表示するにはSHOW DATABASES構文を使います。
[例]show databases;
"code_bu"というデータベースが作成されました。
テーブル作成
テーブルを作成するにはCREATE TABLE構文を使います。
[例]create table sample(id varchar(3),name varchar(30),section varchar(3),partner varchar(3),grade varchar(3));
テーブル一覧を表示するにはSHOW TABLES構文を使います。
[例]show tables;
"sample"というテーブルが作成されました。
データの追加・選択・更新・削除
・テーブルにデータを追加するにはINSERT構文を使います。
[例]insert into sample(id,name,section,partner,grade) values("001","Tanaka","020","","G1");
・データを選択するにはSELECT構文を使います。
[例]select * from sample;
(*は全てのテーブル項目を示します)
"sample"テーブルにID="001"のデータが挿入され、全てのデータを選択しました。
・データを更新するにはUPDATE構文を使います。
[例]update sample set section ="030" where id ="001";
"sample”テーブルで、ID="001"のデータのSECTIONが"030"に更新されました。
・データを削除するにはDELETE構文を使います。
[例]delete from sample where id="001";
"sample"テーブルからID="001"のデータが削除されました。
テーブル削除
テーブルを削除するにはDROP TABLE構文を使います。
[例]drop table sample;
"sample"テーブルが削除されました。
データベース削除
データベースを削除するにはDROP DATABASE構文を使います。
[例]drop database code_bu;
"code_bu"データベースが削除されました。
MySQLをイチから勉強するなら
ドットインストール MySQL入門
3分動画でおなじみのドットインストールにはMySQLの講座があります。データベース自体が初めてであれば、こちらでイメージを掴んでみてはいかがでしょうか。
paiza.io
ブラウザで様々な言語のプログラムを実行できるpaiza.ioのサイト。MySQLが利用できます。
CodeCamp
CodeCampではPHP/MySQLコースを開設しています。好きな時間に、演習を行いながらのマンツーマンレッスンが可能です。PHPも併せて本格的に学習したい方はぜひ。
\AIエンジニアに必要なスキルが身に付く/
まとめ
以上駆け足でご紹介しました。まだまだ将来性が見込まれる技術なので、ぜひチャレンジしてみてください。
- この記事を書いた人
- murase miho