こんにちは、ラクシュミです。
インドからMySQLに関する情報をお届けします!
私は主にデータ分析の仕事をしているので、mySQLやSQLという単語はよく耳にします。私はデータ解析を始めるまでまともにプログラミングをしたことがなかったので、SQLを使って分析をすることにすごく不安を感じていました。
今回はSQLがプログラミング初心者にとってどれだけ難しいかを説明していきます。
MySQLはSQL言語の中では世界で一番使われている言語なので、需要の高いスキルです。
またSQL言語は全体的に似ている部分が多い(構文は違っても考え方は同じものが多い)ので、一つ習得すれば他の言語はユーザーガイドを読めばなんとなく触れることが多いです。
目次
意外と簡単?MySQLはプログラミング初心者でも難しくない
MySQLを含めたSQL言語は操作のコマンド自体は難しくありません。
MySQLの操作自体はプログラミングができる人なら、1~2時間触ればすぐに利用できるようになるでしょう。
またプログラミング自体触ったことのない人でも1か月程度で必要な機能を操作できるようになります。
逆に普段難しいプログラミングを組んでいる人だと、単純すぎて逆に分からなくなって混乱してしまうこともあるそうです。
MySQLマスターのコツはやることを順番立てて考えて、簡潔に考えること!
プログラミング初心者でも難しくない!
MySQLが難しくない理由
通常SQLでは『対話型』と呼ばれる、データベースに対する1つの命令を一行程度の文をコマンドを使用して命令を出す方式が採用されています。
MySQLも対話型なので、一つの動作に対して一行で命令を出します。そのため実行したい操作さえ把握していれば、コードを書くことはそんなに難しくありません。
例えば、
「インド映画の情報が載っているデータセットIndiaFilm.csvがある。このデータセットを開いて、一番人気の映画を特定したい、その次に平均値を知りたい。」
という操作を行うとします。
Pythonなどの場合、
「インド映画の情報が載っているデータセットIndiaFilm.csvがある。このデータセットを開いて、一番人気の映画を特定したい、その次に平均値を知りたい。」
という操作を一つのプログラムで行うこともできます。
MySQLでは、以下のように分解して命令する必要があります。
・IndiaFilm.csvを開く
・一番人気の映画を特定する
・平均値を計算する
こうやって細切れにしていかざるをおえないので、プログラミングに苦手意識のある人でもとっつきやすいでしょう。
MySQLは簡単な命令を適宜出すので難しくない
MySQLのコードを見てみよう
MySQLのコードが完結であることを紹介するためにコードを紹介していきます。
分からなくてもいいので、「短くて簡潔なんだな」という雰囲気が伝わればと思います。
データベースの作成(Inuという名前のデータベースを作成する。)
1 |
create database inu; |
Python並みに命令と構文が同じで分かりやすい!
仮にNekoという名前のデータベースを作成する場合は、
1 |
create database Neko; |
と書きます。
データセットの確認
今あるデータセットを一覧で確認するためには、
1 |
show databases; |
と命令します。
これから操作するデータセットを選択する
これからデータセットinuをいじりたいので、inuを選択します。
1 |
use inu; |
今のままでは名前がついているだけの空のデータセットしかないので、テーブルを作成します。
今のイメージは何も入力していない新しいExcel Bookにinu.xlsxと名付けた状態です。
テーブルを作成
今回は以下のような値を持つ表を作っていきます。
インドの愛のバイブル「ラーマ―ヤナ」の人たちです。スコアは作中でカッコよかった順です。
特に深い意味はないので、ラクシュマンファンの人は怒らないでくださいね…!
Name | Score |
Ram | 100 |
Lakshman | 80 |
Rada | 95 |
テーブルを作成します。
1 |
create table items(name VARCHAR(255),score INT); |
また一行目を追加します。
1 |
insert into items(name,score) values ('Ram',100); |
同様に二行目、三行目を追加します。
1 |
insert into items(name,score) values ('Lakshman',80); |
1 |
insert into items(name,score) values ('Rada',80); |
表を見ます。
1 |
select*from items; |
というわけで分かりやすくするために、3行目と4行目を削除して、そのあとでまた行を追加します。
条件に合う列の削除
今回は「nameがRadaの行」を削除します。
1 |
delete from items where name = 'Rada'; |
念のために表を確認します。
1 |
select*from items; |
また行を挿入して、表を確認します。
1 |
insert into items(name,score) values ('Rada',95); |
1 |
select*from items; |
せっかく表を作ってみたので、少しデータで遊んでみましょう、というわけでとりあえず平均値を取得します。
平均値を取得してみよう
スコアの平均を取ります。
1 |
select avg(score) from items; |
それっぽくなってきて楽しいですね!!
いかがでしたか?
MySQLの構文はPython並みに実行することとコマンドが結びついているのでわかりやすいと思います。
またあまり複雑な文章が組めないので、複雑に考えずに、単純に単純にバラしていく癖をつけると操作しやすくなります。
難しいのはデータの扱い
MySQLは操作が難しいのではなく、データをどう扱ったら希望の結果が作成できるのだろうかという思考の部分が難しいです。
実際のデータは外れ値(異常値のようなもの)があるので、初めに立てた方針で解析をしてみてもいい結果が出ずに方針の変更を検討しなければならない場合もあります。
「何をすれば適切な分析結果を出せるのか、説得力の高い結果になるのか」が分からない、決まらないことがデータベースの難しい点です。(私が若手なこともありますが…)
ベテランのデータサイエンティストの方だと、「効率的に短い時間でデータを処理すること」も必ず考えて処理をしています。高々数千行でExcelでも扱いきれるようなデータセットは適当にやっても実行時間はたいして変わりませんが、数万行、数十万行、数億行のような複雑なデータセットになればなるほど処理時間の短さは大切なポイントになります。
まとめ
MySQLの操作がそんなに難しくないことを説明していきました。
始めは難しく感じるかもしれませんが、数をこなせばMySQLはすぐに習得することができます。
苦手意識を持たずに根気強く取り組んでみてくださいね。