Help us understand the problem. What is going on with this article?

はじめてMySQLを使ってみた話

MySQL Advent Calendar 2019の23日目エントリです。

初めてAdvent Calendarに参加してみました。

OracleメインでSQL使ってきたひとが、
ひょんなことからMySQLを使った際の気付きをまとめました。

MySQLを使うことになったきっかけ

知人にSQLを教えてと言われたのがきっかけです。
SQLのなかでもMySQLなのは、特別な理由はなかったみたいです。

ちなみに、そのときのわたしは、
「Oracle SQLできるなら、MySQLもなんとか大丈夫だろう」
とか思って、軽く了承してしまいました。

ただ、そんなのは間違いでした。
バージョンまわりで3つのつまづきポイントがありましたので紹介してみます。

前提

  • MySQL5がインストールだけしてた。
  • OSはWindows10
  • MySQL8だと、WITH句、WINDOW関数が使える

MySQL5では、WITH句、WINDOW関数が使えない

OracleではおなじみのWTIH句、WINDOW関数が使えないことに驚きました。

データの構成比をだすのに、累積和の出し方をWINDOW関数を使って教えられたらいいなと思ったのです。
しかし、WINDOW関数は使えないので別のロジックを探してみました。
以下のリンクの方法でできました。

MySQL で累積和を求める方法

ただ、リンク先のページの最後のほうに以下のようなことが書いてあり笑ってしまうとともに、
WITH句、WINDOW関数が使えるMySQL8を使う方針に切り替えました。

同じことをPostgreSQLでする場合
もっと簡単に取得できる
https://www.postgresql.jp/document/9.6/html/tutorial-window.html
PostgreSQLを使いましょう

オンライン実行環境は、MySQL5の環境しかみつからない

そこで、MySQLの環境を自分のPC上に作る前に、オンラインで公開されている
MySQLの環境から本当にWITH句やWINDOW関数が使えるか確認したくなりました。

結論から言うと、WITH句もWINDOW関数は使えませんでした。
私が探した限り、MySQL5の環境しかなかったからです。
よくばりすぎました。

ちなみに、確認してみたサイトは以下の通りです。
WITH句やWINDOW関数を使うとか欲張らなければとても便利です。

個人的には、SQL Fiddleが使いやすいように感じました。
サンプルコードが充実しており、実行結果の表示が見やすいなと思います。

MySQL8インストールしたら、MySQL5の残骸があったのかDB接続できない

MySQLに限らずな気がしますが、これも困りました。
今までインストールしていたMySQL5を「アプリケーションの追加と削除」で
アンインストール後に、MySQL8をインストールしました。
しかし、その後にテスト接続をしてみるもののエラーになってしまいました。

安易に「アプリケーションの追加と削除」でアンインストールしただけなのが原因だったようです。
以下の手順でやり直したらうまくいきました。

MySQL 5.7 for Windowsのアンインストール方法

おわりに

以上、MySQLバージョンまわりのつまづきポイント3つでした。
安請け合いはしてはいけませんね。

MySQLを始めたばかりなので考慮漏れ等あるかもしれません。
変更したほうがよさそうな場所があれば教えてくれると嬉しいです。

つぎの24日目は、@knktknkさんです。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした