StanfordDB class自学笔记 (15) Recursion

Basic Recursive WITH Statement - Introduction

SQL不是一种图灵完整的语言-即SQL不能做所有的计算

  • Simple, convenient, declarative 
  • Expressive enough for most database queries 
  • But basic SQL can’t express unbounded computations

下面是一个例子 如果sql能做递归的查询,那么能提供极大的便利

StanfordDB class自学笔记 (15) Recursion

SQL with 语言

StanfordDB class自学笔记 (15) Recursion

with后可以有R1...Rn 这些relation,可以把它们想象是临时创建的view,在view中我们会做一些query!

最后的一个finally query我们可以对任意的R1...Rn中的

 

SQL With Recursive Statement

StanfordDB class自学笔记 (15) Recursion

StanfordDB class自学笔记 (15) Recursion

老师说注意这里的union是不会产生重复tuple的,否则recursiion会陷入死循环

下面的demo视频我听的还是有点懵,对于recursion的这个格式还是不熟悉,不知道到底内部是怎么实现recursion的

Linear Recursion

 

 

StanfordDB class自学笔记 (15) Recursion