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関数は使えないので別のロジックを探してみました。
以下のリンクの方法でできました。
ただ、リンク先のページの最後のほうに以下のようなことが書いてあり笑ってしまうとともに、
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さんです。