タグ

SQLアタマアカデミーに関するsenecaのブックマーク (4)

  • 第10回 結合大全 (5)非等値結合 | gihyo.jp

    非等値結合 自己結合の用途 ところで、この自己結合というのは、いったいどういう局面で使う結合なのでしょう。これも業務によってはあまり利用しない人も多いかもしれません。 実は、自己結合というのは、SQLにおいてはほぼ用途が決まっています。それは、「⁠行間比較」をしたい場合です。行間比較とは、たとえばランキング(順位)算出のように行をまたいで条件を比較するような演算のことです。 自己結合+非等値結合 そして、そうした行間比較を行う場合、自己結合とほとんど常にセットで使われる演算が、非等値結合です。これは文字通り、結合条件に等号以外の<>や<=を使う結合方法で、多くの場合は不等号を使います。 たとえば、図1の部署テーブルに対して「自己結合+非等値結合」を使う例としてリスト6のようなコードが挙げられます。実行結果は図10のようになります。 リスト6 図1の部署テーブルに対して「自己結合+非等値結合

    第10回 結合大全 (5)非等値結合 | gihyo.jp
  • 第6回 SQLで木構造を扱う~入れ子区間モデル (3)フラクタルとしての入れ子集合 | gihyo.jp

    フラクタルとしての入れ子集合 フラクタル 入れ子区間モデルでノードを挿入するときに重要な役割を果たす公式ⓐとⓑ(第6回 SQLで木構造を扱う~入れ子区間モデル(1)参照)は、区間(線分)を3分するための2点を与えるものです。そしてこれを繰り返し適用すると、同じ構造を持つ小さな入れ子集合を次々と作ることができます。 このような自己相似的な図形をフラクタルと呼びます。フランスの数学者マンデルブロが1977年に一般化した概念で、日でも一時期はやりました。海岸線や樹木の形など自然界にも多く存在する形状ですが、それだけでなく経済活動など人間社会にもこれに近似した現象が観察できることで知られています[4](⁠図8⁠)⁠。 図8 フラクタル図形の一種:シェルピンスキーのギャスケット ※ この図は、Wikipedia語版の「シェルピンスキーのギャスケット」に掲載されている図をベースにアレンジしていま

    第6回 SQLで木構造を扱う~入れ子区間モデル (3)フラクタルとしての入れ子集合 | gihyo.jp
  • 第8回 SQLにおける論理演算~なぜ真理を隠すのか~ (2)SQLでブール式を使うと | gihyo.jp

    もしSQLがSELECT句でブール式の評価をサポートしていれば、リスト1のクエリは問題なく通るはずです(図4⁠)⁠。 リスト1 君、日に住んでいる? SELECT name, (state = 'Japan') AS Livin_in_Japan FROM Names; 図4 リスト1の結果 name Livin_in_Japan --------- ---------------- 太郎 true ジョン false カール false ギャビー false 源三郎 true パオロ false 真理値型をサポートしていないDBMSの場合 しかし、ご想像のとおり、このクエリが通るのはPostgreSQLMySQLのみです(MySQLの場合、結果の表示が0/1で行われます⁠)⁠。残るDBは真理値をサポートしていない以上、結果セットの中に真理値が含まれることを許容するわけもないので、エラ

    第8回 SQLにおける論理演算~なぜ真理を隠すのか~ (2)SQLでブール式を使うと | gihyo.jp
  • 第8回 SQLにおける論理演算~なぜ真理を隠すのか~ (1)各DBの真理値型のサポート | gihyo.jp

    はじめに 真理値と論理演算の重要性 プログラマやSEのみなさんは、真理値(真偽値)というものをご存じのことと思います。ほとんどの言語が持っている基的なデータ型で、数学者George Booleの名前にちなんで「BOOL型」とか「BOOLEAN型」とも呼ばれています。コンピュータを利用していると、BOOLEAN型が持つtrue(真)とfalse(偽)の2つの値と、NOT、AND、ORという3つの演算子だけから成るシンプルな演算(論理演算)を行うことが多くあります。これはプログラミング言語だけでなく、コンピュータの回路の基礎にもなっている演算です。 SQLにおける真理値と論理演算 SQLにも、真理値と論理演算が存在します。存在するどころか、WHERE句やHAVING句は、それ全体が論理演算のカタマリです。だから真理値はSQLの根幹をなす重要な要素と言っていいのですが、それにもかかわらず、SQ

    第8回 SQLにおける論理演算~なぜ真理を隠すのか~ (1)各DBの真理値型のサポート | gihyo.jp
  • 1