Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
1
Help us understand the problem. What is going on with this article?
@asmrt_ds

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

More than 1 year has passed since last update.

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さんです。

1
Help us understand the problem. What is going on with this article?
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
asmrt_ds

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
1
Help us understand the problem. What is going on with this article?