SlideShare a Scribd company logo
1 of 32
SQLの奥深さに触れよう
セルコ
『プログラマのためのSQL第4版』
の歩き方
2013/09/13
日本MySQLユーザ会
坂井 恵
第5回札幌MySQL勉強会
今日は
の話をします。
自己紹介
• 坂井 恵(さかい けい) @sa
kaik
• 茨城県稲敷郡出身
• 千葉県我孫子市在住
■好き (参考)
ラーメン パズル 将棋(見るだけ)
自転車ロード(見るだけ) 音楽 歌舞伎(見
るだけ)
仕事と関係ないことを知ること 初めての街歩き
Facebook, twitter, gmail
など。
興味関心の合う方、おしゃべり
しましょう!
自己紹介
性格
基本的に、貧乏性。
「もったいない」
→遠出するなら、フルに周辺含めて楽しむ! いろんな用事を詰め込
みたい!
OSC-fukuoka の例とか、shimane の例とか
たいがい、行きと帰りでルートが違
う。
なるべく「1日多く」滞在する
ことの発端
梶山さんのご紹介で、つながった!
なんか上手に乗せられて
結局来ることに。
その他もろもろ、
今回の勉強会
『今回は数多くのMySQL書籍を執筆されて
いる坂井恵氏(@sakaik)をゲストとしてお招
きし』
・・・・数多く。。。。?
勉強会案内サイトでの、紹介文。
かどうかは、わかりませんが、、、
数多く?
こんな本の制作に関わってきまし
た。
キホンは共著。人と一緒にモノを作
り上げるのが、好き。
前置きはこれくらいにし
て・・・
セルコ!
今日のテーマ
セルコ
『プログラマのためのSQL』 第4版
• 発売日: 2013/0
5/23
• 著者: セルコ
• 監訳: ミック
• ページ数: 約800ページ
• 厚さ: 約4cm
• 価格: ¥4,830
その前の日本語版
(2001年)
第2版 日本語版
第3版は、日本語に翻訳されず
Joe Celko
12年の沈黙を破
り、
第4版の日本版
待望の出来!
セルコ
『プログラマのためのSQL』 第4版
• 発売日: 2013/0
5/23
• 著者: セルコ
• 監訳: ミック
• ページ数: 約800ページ
• 厚さ: 約4cm
• 価格: ¥4,830
なんの本なのか?
• 主に「SQL」について、
• ジョー・セルコが
• 気をつける点や、興味深い使い方などを
• 気が向くままに語ってくれている本
イメージとして・・・・・
「語り出すと止まらないジョー・セルコさんが、
飲み屋でSQLの話を始めてしまい、
もう誰も止められない状態。
(マイクを離さない状態)」
⇒でも、持っている知識と経験が膨大だから、おもしろ
い!
ここ、今日のポイント!
この雰囲気さえ掴んでくれたら
あとは、気楽にこの本を楽しんでも
らいたいです。
セルコの本は
• 網羅性を高めた学習書(学術書)じゃな
いけれども、結果として、網羅的!
• 読者として、とにかく自分の経験したこ
とのない世界を見ることができる。
しかも結構それらは「本質的」
厚さ比較 (2版vs4版)
セルコ4版 もくじ(日本版)
• 第1章 データベース VS ファイルシステム
• 第2章 トランザクションと同時実行制御
• 第3章 スキーマレベルのオブジェクト
• 第4章 ロケータと特別な数
• 第5章 基底テーブルとそれに関連する要素
• 第6章 手続き型プログラミング、半手続き
型プログラミング、宣言型プログラミング
• 第7章 手続き型の遺産
• 第8章 補助テーブル
• 第9章 正規化
• 第10章 数値型
• 第11章 時間型
• 第12章 文字列型
• 第13章 NULL:SQLにおける失われたデータ
• 第14章 複数列のデータ要素
• 第15章 テーブルの操作
• 第16章 比較演算子またはシータ演算子
• 第17章 評価述語
• 第18章 CASE式
• 第19章 LIKE述語とSIMILAR TO述語
• 第20章 BETWEEN述語とOVERLAPS述語
• 第21章 [NOT] IN 述語
• 第22章 EXISTS述語
• 第23章 量化子とサブクエリ述語
• 第24章 単純なSELECT文
• 第25章 高度なSELECT
• 第26章 仮想テーブル─ビュー、導出テーブ
ル、共通表式、マテリアライズドクエリテー
ブル
• 第27章 クエリによるデータの分割
• 第28章 グルーピング演算子
• 第29章 単純な集約関数
• 第30章 高度な集約、ウィンドウ関数、OLAP
• 第31章 SQLにおける記述統計
• 第32章 SQLにおける数列の扱い
• 第33章 SQLにおける配列
• 第34章 集合演算
• 第35章 部分集合
• 第36章 SQLで木と階層構造を扱う
• 第37章 SQLにおけるグラフ
• 第38章 時間を扱うクエリ
• 第39章 SQLの最適化
翻訳したのは
• ミックさん!
こんな本を書いたり翻訳したりされ
ています(セルコの既刊本もありま
す)。
※一部関係ない本も画像中には含ま
れています。
こんなお名前です
が、日本語もお上
手な、ふつうの日
本人です。
いや、、ふつうか
どうかのとらえ方
には、個人差があ
ります。個人の感
想です。
ミックさん
• 『SQLパズル』などの翻訳
• 『達人に学ぶSQL/DB設計』等の執
筆
• 膨大なDB知識と経験
• 現実的な解法とのバランス感覚
今回私は
• ご縁があって、本書の査読にて、お手伝
いをさせていただきました。
2012年7月 翻訳中であることを知る
お手伝いを申し出、尐し作業を開始するも、タイミング
合わずに
ほとんどお役には立てず m(_ _)m
2013年1月 初校開始。全力で読み、検証、調査、指摘etc
その後、2校も含め、前章読破(一部パスイチあり)
査読の効果 ⇒ 図書費がかからなくなった
普段、読書にあてている時間のほぼすべ
てを、本書の査読に充てたため、他の本
を全然買わなかったのです、この期間。
査読のススメ
査読をすると・・・・
(著者/訳者さんとの相性もありますが)
• 真剣に読む(何か言わなきゃいけないか
ら)
• わざと誤解しながら読む(理解度がわか
る)
• 著者への無限質問権つき!知人が本を書いていることを知ったら
「なにかお手伝いできることはありませんか」
と申し出てみよう!!
とにかく今回のセルコは、すご
い!
• 原書の誤り修正
• 原書のわかりにくい部分
の再構成
• すべてのクエリをOracleで
動作するよう書き換え
• 脚注の充実。洒落っ気。
• (なるべく)隅々まで行き届い
た、わかりやすい表現
英語版よりもていねいで正確。
もはや「日本語版」ではなく「日本版」
いま、セルコの第4版をもっとも良い状態
で読むことができるのは、日本人だけ!
http://d.hatena.ne.jp/sakaik/20130519/celko4ja
ということで、本書は英訳されて、全
世界の人々に読んでもらうべき!!
ここで一応セルコの(私の中で
の位置づけ)
データベース界の三神
• E.F.Codd -日本語で読める
文献は殆どない
• C.J.Date
• J.Celko
RDBMSの発明者
NULL嫌い
本日の話題の主役
Chris. J.Date
Amazonで 69,999 で入手可能 こちらも絶版?
電子化されて入手可能だそうです。
今回の札幌MySQL勉強会参加の方に教えて
いただきました!
話題をいくつか紹介
MySQLに関する話題
• 知ってた? WHERE句のIN節に書けるもの
• 左から処理するMySQL(15章)
• ソート順で、NULLは前?あと?(7章)
その他の話題
• クラーク・ケントの例の「意義と意味」(4
章)
• 原書の盛り上がりを地に落とす脚注(5章)
• アラビア語のUTF-8表現
以下、前ページの各項目やその他の項目につ
いて、ライブでお話をさせていただきまし
た。
資料はありません。
そのかわり、次ページ以降に、本公開資料用
に、メモを作成しました。
(補足)ざっとメモ程度ですが各項目につ
いて概要だけ追記しておきます(公開資料
用)
• 知ってた? WHERE句のIN節に書けるもの
– INの左側に書けるのはカラム名だけとは限らない。
– 左側に値、右辺の括弧内にカラムを並べてもいいんだよ。
• 左から処理するMySQL(15章)
– セルコ第4版では、選択クエリの列名羅列部分に記述されたもの
は「同時に」処理される、とあるが、MySQLでは左から順に評
価されていく。他のDBMSと異なるので、注意が必要。
• ソート順で、NULLは前?あと?(7章)
– NULLが含まれる可能性のある列でソートを行う場合、NULLを先
頭にもってきたい場合と、最後にしたい場合がある。
– MySQLのデフォルトでは、NULLは前(もっとも小さい)。
– クエリの書き方を工夫により、どちらにも対応可能
(オプション設定ではなく)
(補足)ざっとメモ程度ですが各項目につ
いて概要だけ追記しておきます(公開資料
用)
• クラーク・ケントの例の「意義と意味」(4章)
– いやぁ、ミックさんは、幅広い分野のことをご存じで、哲学にも造
詣が深いんですよ、というお話。
– セルコが、さらっと書いている話題には哲学的な前提知識を要する
ものがあって、それを丁重に説明していただきました。一部は脚注
にも反映されています。
• 原書の盛り上がりを地に落とす脚注(5章)
– とても現実的な「ミック節」炸裂。ぜひ読んでみてください。
• アラビア語のUTF-8表現
– コレーション問題の例としてセルコがあげているアラビア語の、頭
字、中字、尾字。実はUTF-8での表現はみんな一緒なのです、とい
う話。たぶんセルコの勘違い!?
• 400年問題
– 最後のほうの章に出てきた「400年ひとくみ」の話題。原書での
言っている内容がよくわからず、最後の最後まで頭を悩まされまし
た。

More Related Content

More from sakaik

More from sakaik (20)

MySQL徹底入門第4版出版記念 全体説明と自分のパート
MySQL徹底入門第4版出版記念 全体説明と自分のパートMySQL徹底入門第4版出版記念 全体説明と自分のパート
MySQL徹底入門第4版出版記念 全体説明と自分のパート
 
MySQL8.0.20リリースノートをみてわいわい言う勉強会
MySQL8.0.20リリースノートをみてわいわい言う勉強会MySQL8.0.20リリースノートをみてわいわい言う勉強会
MySQL8.0.20リリースノートをみてわいわい言う勉強会
 
MySQLと空間データ(GIS)
MySQLと空間データ(GIS)MySQLと空間データ(GIS)
MySQLと空間データ(GIS)
 
令和元年のMySQL元年的話題~ニフクラミートアップ
令和元年のMySQL元年的話題~ニフクラミートアップ令和元年のMySQL元年的話題~ニフクラミートアップ
令和元年のMySQL元年的話題~ニフクラミートアップ
 
MySQLで扱う空間情報のきほん~MySQL Cafe #6
MySQLで扱う空間情報のきほん~MySQL Cafe #6MySQLで扱う空間情報のきほん~MySQL Cafe #6
MySQLで扱う空間情報のきほん~MySQL Cafe #6
 
LOVE三角点~FOSS4G Niigata(2019) ライトニングトーク
LOVE三角点~FOSS4G Niigata(2019) ライトニングトークLOVE三角点~FOSS4G Niigata(2019) ライトニングトーク
LOVE三角点~FOSS4G Niigata(2019) ライトニングトーク
 
札幌の人に知ってもらいたい三角点の話~FOSS4G2019 Hokkaido LT
札幌の人に知ってもらいたい三角点の話~FOSS4G2019 Hokkaido LT札幌の人に知ってもらいたい三角点の話~FOSS4G2019 Hokkaido LT
札幌の人に知ってもらいたい三角点の話~FOSS4G2019 Hokkaido LT
 
GTFS勉強会#1 DB屋が見たGTFS-JP ファースト・インプレッション
GTFS勉強会#1 DB屋が見たGTFS-JP ファースト・インプレッションGTFS勉強会#1 DB屋が見たGTFS-JP ファースト・インプレッション
GTFS勉強会#1 DB屋が見たGTFS-JP ファースト・インプレッション
 
OSC2019-Hamanko LT 浜松の[三角点の]紹介
OSC2019-Hamanko LT 浜松の[三角点の]紹介OSC2019-Hamanko LT 浜松の[三角点の]紹介
OSC2019-Hamanko LT 浜松の[三角点の]紹介
 
MySQLとGISと私・この1年~MySQL Innovation Day LT
MySQLとGISと私・この1年~MySQL Innovation Day LTMySQLとGISと私・この1年~MySQL Innovation Day LT
MySQLとGISと私・この1年~MySQL Innovation Day LT
 
MySQL 8.0 にGIS機能がやってきた~ライトニングトーク~
MySQL 8.0 にGIS機能がやってきた~ライトニングトーク~MySQL 8.0 にGIS機能がやってきた~ライトニングトーク~
MySQL 8.0 にGIS機能がやってきた~ライトニングトーク~
 
MySQL 8.0 で強化されたGIS機能のご紹介 @ FOSS4G Okayama
MySQL 8.0 で強化されたGIS機能のご紹介 @ FOSS4G Okayama MySQL 8.0 で強化されたGIS機能のご紹介 @ FOSS4G Okayama
MySQL 8.0 で強化されたGIS機能のご紹介 @ FOSS4G Okayama
 
MySQL8.0の「地理情報」を理解しよう入門~いまからはじめるGIS
MySQL8.0の「地理情報」を理解しよう入門~いまからはじめるGISMySQL8.0の「地理情報」を理解しよう入門~いまからはじめるGIS
MySQL8.0の「地理情報」を理解しよう入門~いまからはじめるGIS
 
2018夏ClubDb2呑み会@ノムノ~ClubMySQLの紹介とか~
2018夏ClubDb2呑み会@ノムノ~ClubMySQLの紹介とか~2018夏ClubDb2呑み会@ノムノ~ClubMySQLの紹介とか~
2018夏ClubDb2呑み会@ノムノ~ClubMySQLの紹介とか~
 
周辺知識から理解するMySQL の GIS機能 ~ClubMySQL #4
周辺知識から理解するMySQL の GIS機能 ~ClubMySQL #4周辺知識から理解するMySQL の GIS機能 ~ClubMySQL #4
周辺知識から理解するMySQL の GIS機能 ~ClubMySQL #4
 
MySQLのGIS機能とか超入門 ~MyNA会2018年7月
MySQLのGIS機能とか超入門 ~MyNA会2018年7月MySQLのGIS機能とか超入門 ~MyNA会2018年7月
MySQLのGIS機能とか超入門 ~MyNA会2018年7月
 
追加参考資料:MySQLにGIS機能がやってきた@OSC2018北海道
追加参考資料:MySQLにGIS機能がやってきた@OSC2018北海道追加参考資料:MySQLにGIS機能がやってきた@OSC2018北海道
追加参考資料:MySQLにGIS機能がやってきた@OSC2018北海道
 
MySQLに本格GIS機能がやってきた~MySQL8.0最新情報~@OSC2018北海道
MySQLに本格GIS機能がやってきた~MySQL8.0最新情報~@OSC2018北海道MySQLに本格GIS機能がやってきた~MySQL8.0最新情報~@OSC2018北海道
MySQLに本格GIS機能がやってきた~MySQL8.0最新情報~@OSC2018北海道
 
OSC2017 Hokkaido. MySQL今こそインストールを極めよう~改めて考える環境構築~
OSC2017 Hokkaido. MySQL今こそインストールを極めよう~改めて考える環境構築~OSC2017 Hokkaido. MySQL今こそインストールを極めよう~改めて考える環境構築~
OSC2017 Hokkaido. MySQL今こそインストールを極めよう~改めて考える環境構築~
 
OSC2017 Nagoya これからデータベースmysqlを始める人のため
OSC2017 Nagoya これからデータベースmysqlを始める人のためOSC2017 Nagoya これからデータベースmysqlを始める人のため
OSC2017 Nagoya これからデータベースmysqlを始める人のため
 

Recently uploaded

Recently uploaded (10)

Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 

SQLの奥深さに触れよう セルコ第4版の歩き方~第5回札幌MySQL勉強会