Upgrade to Pro — share decks privately, control downloads, hide ads and more …

MySQL徹底入門 第4版 - ユーザー管理とか文字コードとか / MySQL Book 4 - User and Charset

MySQL徹底入門 第4版 - ユーザー管理とか文字コードとか / MySQL Book 4 - User and Charset

ニフクラエンジニアミートアップ https://fujitsufjct.connpass.com/event/182580/ でしゃべった時のスライドです。

とみたまさひろ

July 29, 2020
Tweet

More Decks by とみたまさひろ

Other Decks in Technology

Transcript

  1. 自己紹介 自己紹介 とみたまさひろ 日本MySQLユーザ会 (文字化け担当) MySQL Parameters 好きなMySQLの命令はSHOW CREATE TABLE

    富士通クラウドテクノロジーズ ニフクラ いま見てる人は全員知ってるはず 認知度100% @tmtms https://tmtms.hatenablog.com https://mysql-params.tmtms.net/mysqld/?vers=8.0.21 2
  2. 執筆分 執筆分 5 「ユーザー管理」 10.5 「データベースプログラミング Ruby」 11 「文字コードと日本語環境」 14

    「逆引きMySQL辞典」のうちの2項目 全体の1割弱 その他、GitLab や Mattermost を用意したり 全体をレビューしたり 3
  3. 文字列比較 文字列比較 なんでやねん! というのを説明 SELECT 'abc'='ABC' => ⭕ SELECT '〇'='0'

    => ⭕ SELECT 'うさぎさんちーむ'='ウサギ㌠' => ⭕ SELECT '平成'='㍻' => ⭕ SELECT '令和'='㋿' => ❌ 9
  4. 文字列比較 文字列比較 なんでやねん! というのを説明 SELECT * FROM tbl WHERE utf8mb4_col

    = _ascii'ABC' => ⭕ SELECT * FROM tbl WHERE ascii_col = _utf8mb4'ABC' => ⭕ SELECT * FROM tbl WHERE ascii_col = _utf8mb4'ほげ' => ❌ ERROR 1267 (HY000): Illegal mix of collations (ascii_general_ci, IMPLICIT) and (utf8mb4_0900_ai_ci,COERCIBLE) for operation '=' 10
  5. ソート順 ソート順 JISマニア向け utf8mb4_ja_0900_as_cs mysql> SELECT c,HEX(c) FROM t ORDER

    BY c; +------+--------+ | c | hex(c) | +------+--------+ | 亜 | E4BA9C | | 伊 | E4BC8A | | 宇 | E5AE87 | | 栄 | E6A084 | ← | 奥 | E5A5A5 | ← +------+--------+ 11
  6. ソート順 ソート順 長音記号もJIS準拠 mysql> SELECT * FROM tt ORDER BY

    c; +--------+ | c | +--------+ | あー | ←「あ」よりも前 | ああ | | あい | | あう | | いあ | | いー | ←「あ」と「い」の間 | いい | | いう | | うあ | | うい | | うー | ←「い」と「う」の間 | うう | +--------+ 12