2020-01-01から1年間の記事一覧

MySQLでCTEを使ってマンデルブロを描く

MySQL に CTEが入ったんですよという話題の中で、PostgreSQLのCTEの定番でこんなものがあるんですよ、とPostgreSQLの(というかSRA OSSの)石井さんに教えていただきました。Mandelbrot set - PostgreSQL wiki もちろんこのままではMySQLでは動かないのです…

MySQL: CHAR(0)の動作が変わっていた

11年ほど前に書いた日記がふと目にとまりました。CHAR(0)という列を定義できるというお話。 sakaik.hateblo.jp 当時のバージョンが明記されていないため、よくわからないのですが、最新の 8.0.20では挙動が変わっているようです。 mysql> CREATE TABLE t1 ( …

こんにちはこんにちはこんにちは!を出すSQL

slack とかを使っていると、新たに部屋に参加した人は挨拶するじゃないですか。「こんにちは!」って。そしたら、既に部屋にいる人は「こんにちはこんにちは!」って返しますよね。その後に入ってきた人は、これを見て「こんにちはこんにちはこんにちは!」…

Oracle 19c 環境をてにいれた!

時々、Oracle Database 環境を触りたくなるタイミングがあって、でも最近は OTN の契約もしていないから(単なる興味のために、そこそこのお金を払うのは)難しいかなぁと思っていたところに、@ora_gonsuke777 さんから さくっと入れられる VM環境を教えてい…

MySQLで未定義のユーザ変数の表示がおかしい(8.0.20)

MySQL では @ で始まるユーザ定義変数を使うことができます。 mysql> SET @v1=123, @s1="ABC"; Query OK, 0 rows affected (0.00 sec) こんなふうに定義すると、SELECTなどで使うことができます。 ここで、上で定義した2つの変数と、未定義の変数をSELECT文…

MySQL: COUNT(*) は 1 ??

Twitterに書き殴ったのですが、流れてしまうので、一応こちらにもまとめておこうかと。これって、何を数えているんでしたっけ?mysql> SELECT COUNT(*);+----------+| COUNT(*) |+----------+| 1 |+----------+— 坂井 恵(SAKAI Kei) (@sakaik) 2020年5月1日 …

とみたさんの記事を見てUDFにトライ

とみたさんの UDF を作ろう記事を、そのまま試してみました。tmtms.hatenablog.comほとんど、書かれているとおりにソースコードをコピーして gcc かけて プラグイン動作させれば良いです。が、少しだけ悩んだ点があるので、そこだけ補足的メモ。 gcc がなか…

メモ:MySQLのサーバサイドでのプリペアド・ステートメント

通常は各プログラム言語側で プレースホルダ含みのSQLを書いたりするけど、 サーバ側での(というかSQLレベルでの)プリペアド・ステートメントの書き方に触れる機会があったので、メモとして記す。 テーブルの用意 とりあえず、id と name を格納するテーブ…

baserCMS 4.3.3を新規サーバに入れるメモ(MySQL8.0使用)

cms

baserCMS を初めてインストールしたのですが、細かいところで色々ハマったので、記録として書いておきます。 basercms.net 環境 さくらインターネットで借りているVPS に、Ubuntu 18.04 amd64 をインストール。 ドメイン名は別途持っているものがあったので…

MySQLで今月の日付一覧を得る(追記あり)

ふと、今月の日付一覧が欲しくなって、MySQLでやってみた。以前は、カマセデータ用に一時的にテーブルを作る必要があったけど、今は VALUES文のおかげで、随分ラクになった、、、、かな。 今月ついたちの日付を得るのは、色々なやり方があるけれども、これが…

MySQLとの戯れ:カラムの別名とグルーピングの動作について

この日記は、少し時間が取れるようになった私が自由気ままにMySQLと戯れた結果を、つらつらと書き殴ったものです。明確な目的もなく、ただただMySQLと会話をして(そう、MySQLには「対話モード」があるのですよ)、楽しかったぁ、という日記です:-) 今回は、…

Microsoft Universal Mobile Keyboard が充電できなくなった

Microsoft の Universal Mobile Keyboard というのがありましてね。質実剛健でありながらスリムなボディに惚れて、一時期、よく使っていたわけですよ。むかし。 最近、しばらく使っていなかったこいつを引っ張り出して、使って見ようと思ったのですが、電源…

個性的なcsvからデータを取り出した話

コンピュータシステム周辺に関わっているとCSVファイルとのお付き合いは避けて通れないものと言えるでしょう。みなさんはどんなCSVとお付き合いしたことがありますか。 セパレータが明確でない(というか明確なのだけど例外例外の積み重ねが意外とややこしい…

Geospatial Hackers Program に参加して優秀な成績を収めた話

少し前の話になるのですが、Geospatial Hackers Program (GHP)というイベントに参加して来ました。実は、ハッカソンなるものに参加するのは初めてのことで、勝手も分からずに緊張していたのですが、素敵な仲間たちと出会い、心地よく参加させていただくこと…

Ubuntu仮想環境 "Multipass" にトライした話(2)Windows編

レンタルサーバ上のUbuntuの上で multipass が動かなかったので、手元のWindows上で試すことにしました。とりあえずMySQLを動作させるところまでは成功。 環境・前提条件等 OS: Windows 10 Pro 64bit 1909 Memory: 十分にあるので細かいことは気にしない(32G…

Ubuntu仮想環境 "Multipass" にトライした話(1)

Ubuntu の仮想マシンをぽんぽん立ち上げられる "Multipass" というものがあると知り、興味を持ちました。 例えば MySQL のレプリケーションの例を示す時にも、MySQLサーバがどのように動作しているかを理解している人向けには「ポートを変えて立ち上げていま…

MySQL ST_PointFromGeoHash で得られる点はどこの点

ST_GeoHashで得たハッシュ文字列を ST_PointFromGeoHashでPOINTに変換する際に選ばれる点は、どこの点なのかという疑問が、先日発生しました。失礼しました。。確かに、一旦POINTに変換していましたね。(POINTに変換される時の座標の決め方は私も気になりま…

きょうMySQLユーザ会20周年イベントをやっているはずだった

2020年、日本MySQLユーザ会(MyNA)は設立20年を迎えます。15周年の時にはコロプラさんに全面的にご支援いただいて、記念イベントを開催しました。コロプラさん、その節はどうもありがとうございました。このご恩は5年経っても、たぶん10年経っても忘れません!…

MySQLの生成列を使って緯度・経度の列をGEOMETRYに

緯度と経度それぞれが別々のカラムに格納されているデータに対して、生成列を使ってGEOMETRY型のカラムとして扱えるようにする方法を考えてみました。速度面で何かディスアドバンテージがあるのか否かは未知数ですが、こんな方法もあるのだというヒントにな…

第7回 SD輪読会参加

第7回Software Design (2020年2月号、2020年3月号)輪読会 に参加してきました。softwaredesign.connpass.com 今まで Facebookでこっそりメモを残していたけど、折角なのでなるべくオモテにも書くようにしてみようと思います。 今回のキーワード(一部): ・…

(メモ)Ubuntu 18.04 にMySQLを初めてインストール

普段は CentOS を使っているのですが(と言っても、使っていると胸張れる程は使っていない)、今回はじめて Ubuntu に MySQL をインストールしたので、メモ。 もしかしたら不要な操作が含まれているかもしれないけど、OS: Ubuntu 18.04 amd 64 環境: さくら…

MySQL Casual Talks #13 に参加してきました

MySQL Casual Talks #13 に参加してきました。 ただ聞きに行くだけのつもりでしたが、発表枠が開いているようだったので、前日だったかな、急遽発表枠に入れていただきました。ありがとうございます。 connpassで、改めて発表枠に申込しなおそうと、一般参加…

OSC2020-Osakaに行ってきました

オープンソースカンファレンス2020大阪(OSC2020-Osaka)に行ってきました。・・・と書くと、普段は MySQLユーザ会としてブースを出したり、セミナーをやったりしてきました!という意味だったのですが、今回は申込期間中に参加可否が決められずに、出展をし…

MySQL8.0.19で加わった VALUES を試してみる

MySQL 8.0.19。MySQL 8.0 の「メンテナンスリリース」です。 8.0.19より前のMySQLには、「標準SQLのひとつであるVALUES文が実装されていない」という重大な不具合が含まれていたため、バグ修正として本リリースに含まれたようです(真に受ける人がいると困る…