mysql

第51回ニフクラエンジニアミートアップで「これから始める人のための」SQL入門のお話をしました

ニフクラエンジニアミートアップ様にお声がけをいただいて、このたび「第51回」のイベントにて登壇させていただきました。 fujitsufjct.connpass.com この4日前にも似たようなレイヤである「入門」のお話をする場があり、期間が近いこともあって「同じ内容で…

LLイベント(ODC2022)でデータベース超入門のお話をしました

お誘いいただいて、LLイベントでSQLの超入門のお話をさせていただきました。 LLイベントは、当初(20年近く前)から「Lightweight Language」のイベントとして長らく開催されてきましたが、Lightweight に限らずもっと幅広い言語を学ぼうということで、2017…

MySQLリリースノートで(略)勉強会8.0.30を開催しました

MySQL 8.0.30 のリリースノートをみてわいわい言う勉強会を開催しました。mysql.connpass.com ここ数回は18時から開催していたところ、今回19時からの開催にしてみましたが、個人的には半端な時間だなぁという印象でした。皆さんにも尋ねたところ、まさに十…

MySQL: ゼロはFALSE、イチはTRUE

MySQLにおける、TRUEとFALSEとゼロとイチ。 同僚が WHERE column1 = 1 OR 2 が全ての行を返すと一瞬で看破していてすごい— yoku0825 (@yoku0825) 2022年8月15日 同僚が WHERE column1 = 1 OR 2 が全ての行を返すと一瞬で看破していてすごい 後者で悩まされた…

続続・歯抜けを埋めるSQL(WHERE句のRAND()関数に気をつけろ!編)

ひとつ前の日記で、こんなことを書きました。 1000回ループを回して1件ずつDELETEしたのに、1006件が消えている謎は、気持ち悪いので少し考えてみたいと思います。ナゾが解けた方はコメント欄やTwitterやご自身のブログなどで教えてください。 実はこの動作…

続・歯抜けを埋めるSQL(10万件編)

先日、こんな日記を書きました。 sakaik.hateblo.jp この中で、 この方法で、件数が多くなった場合にどれくらいの速度で動きますかね。 10万件かそこらでは意外とすんなり動く気もしていますが、1000万件となるときついかもという気もします。 と書いたので…

MySQLのオンライン交流会「生マイ」#3を開催しました

『今夜も生でMySQL(仮題) #03』(通称生マイ)を開催しました。「生マイ」は、Discordを使っておしゃべりしましょうという会です。mysql.connpass.com 今回は少なめ お盆休みの関係だと思いたいのですが、今回はずっと3人でおしゃべりしていました。内容は後…

歯抜け数字を埋めるSQL

MySQLユーザ会のメーリングリストで、こんな話題がありました。 INSERT SELECT でのテーブル別名の使い方「歯抜けの数字を、連番になるようにレコードを追加する」という方法について、相関サブクエリを使用して解決したものですが、これ、相関サブクエリを…

LINE Developer Meetup #73 - MySQL の回に参加(視聴)した話

昨火曜日にオンラインで開催された「LINE Developer Meetup #73 - MySQL」に参加させていただきました。オンライン開催なので「視聴」に近い形態ですが、sli.do や twitter などでわいわいできて、視聴者どうしの会話があったり、登壇者の方も反応してくださ…

MySQLでJSON体験(その3:JSONを生成する)

今回は MySQLを使ってJSON形式のデータを作ることにトライしてみました。正直よくわからんけど、まぁやりたいことは一応実現可能なのかな、といったレベルの理解です。 目標とするデータ形式 Cocoaのデータっぽい形式を目指すことにします。細かい部分で違っ…

MySQL の Generated Invisible PK(GIPK)を試す

7月にリリースされた MySQL 8.0.30 では「Generated Invisible Primary Key(GIPK)」という機能が追加されました。各テーブルにPKがあることを必須とし、ない場合はテーブル作成時に自動的に不可視列としてAUTO_INCREMENTなPK列を追加してくれる、という機能…

MySQL 8.0.30/MySQL5.7.39リリース。ミラーへの配布は終了?

MySQL 8.0.30 と MySQL 5.7.39 がリリースされました。. MySQL 8.0.30 ダウンロード: https://dev.mysql.com/downloads/mysql/ MySQL 8.0.30 リリースノート: https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-30.html . MySQL 5.7.39 ダウンロ…

MySQLでJSON体験(その2:JSON_TABLEを使う)

MySQLでJSONを扱う入門として 前回の日記 では比較的シンプルな関数群を試してみました。今回は、JSON 内の配列部分をテーブルにして返す JSON_TABLE 関数を試してみます。 JSON_TABLE() の基本的な使い方。 JSON_TABLE()は、JSON内の配列部分を引数に与えて…

MySQLでJSON体験(その1:基本編)

MySQLでのJSONデータの扱い方を、いつか試してみなきゃなぁと思い始めて2年以上が経っているのですが、ようやく、触ってみたいと思うJSONデータに出会ったので、重い腰を上げて試してみました。当方、JSON初心者ですので、このエントリは「お勉強日記」です…

羽生先生99期、ソータ先生9期。ではタイトル戦の少なかった時代の大山先生は何期相当?をSQLを使って雑に求めてみる

将棋のタイトル獲得期数の話をしていると、「昔はタイトル戦自体が少なかったから」「タイトル戦が3つしかなかった時代の大山先生が今の8つ時代ならいくつ獲っただろうね」という話題になることも多いですね。じゃぁ、年4つの時代に4つとも獲れば(今で言う…

MySQL: desc は explain !?

別件の確認のために MySQL マニュアルを見ていて、とんでもない事に気づいてしまいました。 The DESCRIBE and EXPLAIN statements are synonyms. MySQL :: MySQL 8.0 Reference Manual :: 13.8.2 EXPLAIN Statement ご存じの通り、MySQL において、DESC (ま…

COUNT()関数の中身の書き方による動作の違い

自分では「知っている」と思っていても、会話の中でふと自信がなくなることってありますよね。 自分の知識として「常識」になっているけど、気づけば10年以上も意識して試したことのないものとか。 表題のテーマが、今回の私のソレです。 ということで、COUN…

TiDB User Day 2022に参加してきた話

開催から2週間近くが経ってしまいましたが、「TiDB User Day」が開催され、参加してきました。非常に有意義かつ楽しい時間だったので、日記にしたためておきたいと思います。なお、当方、分散DBについてはまだよく分かっていないので、技術的な詳しい内容は…

オンラインでMySQLとかの話をわいわいする「今夜も生でMySQL(仮題)」を開催しました

長らくオフラインのイベントを開催できないと、ざっくばらんにわいわいと語り合うあの雰囲気を忘れそうにもなり、また、恋しくもなります。 オンラインで、何か少しでもあの雰囲気を作ることはできないか、と悩んだ結果、こんなイベントをやってみています。…

MySQLのLIMIT句の入れ子による面白い挙動と将来リリースでの修正予定

とみたさんから、MySQLの次の次のバージョンで挙動が変更になる話を教えてもらったので、記録。 mysql> use mysql mysql> SELECT user FROM user LIMIT 2; +------------------+ | user | +------------------+ | mysql.infoschema | | mysql.session | +---…

MySQLリリースノート勉強会8.0.29開催してました

MySQLリリースノートでわいわい言う勉強会 8.0.29 開催してました。 書き忘れていたので、後日記録として本エントリを記述しています。 mysql.connpass.comhttps://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8.0.29.html togetter.com

MySQLリリースノート勉強会8.0.28開催しました

MySQL リリースノートでわいわい言う勉強会 8.0.28 を開催しました。 今年は、今までの常識に囚われずに色々試していこうということで、平日18時からの開催という変則的なトライアルでしたが、たくさんの人に参加していただき、ありがとうございました。主に…

MySQL2021~地理情報(spatial)機能の進化

この記事は、『RDBMS-GIS(MySQL,PostgreSQLなど) Advent Calendar 2021』の1日目のエントリーです。 2021年のMySQLは、以下の5つのバージョンがリリースされました。 MySQL 8.0.23 (2021/01 リリース) MySQL 8.0.24 (2021/04 リリース) MySQL 8.0.25 (2021/…

OSC2021 Online Hokkaido 参画

オープンソースカンファレンス北海道(オンライン)に参加してきました。event.ospn.jp オンラインイベントの良いところは、興味のある時間だけセミナーを聞いて、あとは日常生活を送れる点。 オフラインイベントの良いところは、会場にある意味物理的に拘束さ…

MySQLをWindows(WSL)上でデバッグする環境を手に入れた(せじまさんの記事がすごい)

WindowsのWSL上でMySQLをビルドし、VSCodeを使ってデバッグする方法を、せじまさんが公開してくださいました。 labs.gree.jp私のこのエントリは、せじまさんの記事を読みながら実際に試してみた際に、考えたこと、苦労したこと、ちょっと変えてみたことなど…

MySQL8.0.24の新しいGIS関数(4)~CAST()を試す

MySQL 8.0.24 では、Spatial機能(GIS機能)にもう一つの大きな進化がありました。CAST() 関数と CONVERT() 関数の Spatial型対応です。 CAST() のジオメトリ対応 CAST()関数は、MySQL リファレンスマニュアルの以下の場所に記述があります。 MySQL :: MySQL…

MySQL、"UDF" の名称を "Loadable Function" に変更

MySQLのリファレンスマニュアルは日々更新されているのですが、本日、ちょっと大きめの用語の変更が加えられました。 その変更とは、今まで User-Defined Function (UDF) と呼ばれていたものがすべて、Loadable Function になった、というものです。本日時点…

「MySQL8.0.24リリースノートでわいわい言う勉強会」開催しました

MySQLリリースノートでわいわい言う勉強会 8.0.24(Myリノベ8.0.24) を開催しました。mysql.connpass.com MySQL 8.0.24 はMySQL 8.0シリーズの「メンテナンスリリースらしいメンテナンスリリース」で、新機能や機能の変更等は比較的おとなしめだったのですが…

MySQL8.0.24の新しいGIS関数(2)~ST_LineInterpolatePoints()を試す

ひとつ前のエントリ「MySQL8.0.24の新しいGIS関数(1)~LINESTRINGの経路点を求める~」で、LINESTRINGを 指定した割合ごとに区切ってPOINT集合を返す、ST_LineInterpolatePoints()関数を紹介しました。 MySQL 8.0 のGIS機能(spatial機能)のウリは「測地系に…

MySQL8.0.24の新しいGIS関数(1)~LINESTRINGの経路点を求める~

MySQL 8.0.24 では Spatial(GIS)関数に、4つの新たな関数が実装されました。 ST_LineInterpolatePoint() ST_LineInterpolatePoints() ST_PointAtDistance() ST_Collect() 前者3つが、LINESTRING上のポイントを返す関数、最後のひとつが複数のジオメトリ値…