データベース問題が解ける脳機能計測で博士号を取得した著者が「脳科学×AI」という切り口で、プログラミングやビジネス、人材育成について、私見をつづります。科学技術SQLの書き方・読み方のコツを紹介します。基本情報試験のDB問題にも役立ちます。内容は初心者向けです。SQLって、プログラムを書いたことがある人にとっても、なんだかとっつきづらいものです。C言語やJavaなどと比べると、何だか異なる感じがします。なにより魔法のような言葉がたくさん出てきて、馴染めないです。JOIN・・・・ですが、2つのコツを知れば、SQLと仲良くなれます。それは、コツ1:SQLが4ステップで書かれていることを知るコツ2:各命令で表がどう操作されるのか、例題で視覚的に理解するです。本記事ではSQLのコツを、図をたくさん使用して説明します。本記事の内容コツ1:SQLの4ステップコツ2:各命令で表がどう操作されるのか、例題で視覚的に理解するSQLの例題まとめコツ1:SQLの4ステップ魔法のような言葉が並ぶSQLですが、基本的には4つのステップで書かれています。1.表の結合2.絞り込み3.計算4.並び替えです。この4つのステップ(パーツ)でできあがっていることを知ります。各ステップの命令で、どのように表が操作されるのかイメージを身につければ、SQLが身近なものになります。並び替えから逆向きの順番で、命令によって表がどう変化するのかひとつずつ見ていきます。2:各命令で表がどう操作されるのか、例題で視覚的に理解する以下の表を例に、各ステップの命令で、表がどう操作されるのかを見ていきます。"吹奏楽部");並び替え並び替えは、単純です。byがステップ4の並び替えに対応することを分かりやすくするためです。student;絞り込みとっつきづらくなるのが、ここからです。ひとつずつ確認することで、分かるようになります。WHERE文を使った絞り込みです。INやLIKEがよく使われます。BYを使用する方法もあります。BYを使用すると、その列の値ごとに計算してくれます。以下の例ですと、部活IDごとに計算です。BYからさらに絞り込むにはHAVINGを使用します。count(*)>=3;結合ここから一番とっつきづらい結合に入ります。JOINは内部結合です。student.clubId=club.clubId;次に表を少し書き換えます。剣持君のclubIdをnullにします。id=9;この状態で次に外部結合を見ていきます。JOINは外部結合です。外部結合では、結合相手がいない場合にはnullを入れてくれます。student.clubId=club.clubId;ちなみに、このnull状態で内部結合すると、剣持君の行は消えてしまいます。内部結合にしてしまうと、基準の表でnullの行は消えることに注意しましょう。逆向きの外部結合です。student.clubId=club.clubId;以上、ここまででSQLが1表の結合⇒2絞り込み⇒3計算⇒4並び替えでできていることを知り、各ステップの操作の実例を見ました。これらの知識を用いて、例題を解いて、定着させます。SQLの例題まず「提出者の出席番号」と「宿題科目名」が記載された宿題テーブルを新たに追加します。"数学");例題1「サッカー部の宿題提出者人数を求めてください」4ステップの逆から考えていきます。今回並び替えはないので、ステップ3の提出者人数計算のときに、下のような表が欲しいです。ステップ2で絞り込む前は、きっと下のような表です。ステップ1でこの表を作ることを考えます。ステップ1で内部結合です。student.id=homework.id;さらにステップ2の絞り込みをかけます。=1;最後に計算します。=1;このように「結合、絞り込み、計算、並び替え」を一度逆から考えて、組み立てます。提出率なので、ステップ3の提出率計算のときには下のような表が欲しいですそこで、nullも欲しいので、外部結合を使います。student.id=homework.id;提出率を求めます。求める列名を宿題提出率と命名します。student.clubId;例題4「宿題テーブルに国語も追加されました。国語の宿題の未提出者を求めてください。最後の例題になります。"国語");この状態で内部結合すると、どうなるのか見てみましょう。student.id=homework.id;外部結合すると、どうなるのか見てみましょう。student.id=homework.id;先ほどの数学だけの場合とは異なり、nullは両方の宿題を出していない人です・・・そこで次のように工夫します。今回は国語に絞って結合させたいので、まず次のように書いて、結合させます。homework.subjectName="国語");さらに絞り込みます。null;これで、国語の未提出者を求めることができました。まとめ以上、SQLの読み方・書き方のコツでした。4ステップコツ2:各命令での操作実行結果を例題で理解する実際にMYSQLなどを自宅のPCにインストールして、手を動かして勉強するのが一番です。MYSQLの5.7系は相性が悪いようで、5.6系を私は入れています。MYSQLを使う場合は、HeidiSQLというクライアントソフトがおすすめです。テーブルの中身やSQL結果をすぐに表形式で見れます。SQL書き方ドリル」がおすすめです。以上、SQLの書き方・読み方のコツ(初級編)でした。Playbook」の日本語版まとめを記事にしました(Qiita)。【2018年】遺伝子検査キットの比較|マイコードの結果と感想、使い方、検査の流れ、癌・アルツハイマー病の発症傾向を知る|健康シリーズ6有名な3つの遺伝子検査キットを徹底比較します。「マイコード」の購入から使い方、結果の見方、感想...記事を読むTEDのおすすめ動画紹介【AI・機械学習・ディープラーニング関連】TEDから「AI・機械学習・ディープラーニング関連」のおすすめ動画を紹介します。されるプログラミングとの関係について紹介します。「機械学習、AI、ディープラーニングのプログラミングを解説」ブログ、著者のすぐると申します。PyQt)ディープラーニングを使用して、ドラゴンボールZの「スカウター(っぽいもの)」を作ってみたので紹介します。...記事を読む博士課程に進学か就職か悩む人へ|アドバイスと学振での給与生活のリアル「博士課程への進学か、それとも就職か」を悩んでいる人に回答します。本シリーズでは、Pythonを使用して機械学習を実装する方法を解説します。超長寿化し、AIが発達したこれからの社会で生きていくのに必要とされる能力を紹介します。様々な...記事を読むGMM・クラスタリング(クラスタ分析)【Pythonとscikit-learnで機械学習:第11回】GMM・クラスタリングによって、データをクラスタリング解析する手法を、実装・解説します。本シ...記事を読むKMeans、MiniBatch-Kmeans(クラスタ分析)【Pythonとscikit-learnで機械学習:第9回】データをクラスタリング解析する教師なし学習手法のKMeansを、実装・解説します。IT、機械学習を駆使し、「論語とAI」を合言葉に、人と組織の成長を科学しています。高専および大学・工学部でSTEM教育を受け、脳科学の分野で博士号を取得しました。その後、特任研究員として大学で研究や学生教育にたずさわり、現在は民間企業のIT・AI分野で働いております。機械学習、AI、ディープラーニングのプログラミングを。