SQL递归查询知多少

CTE 是在 SQL Server 2 005 中引入的。

2 005 编号:2 005
WITH 语句定义 CTE。

这是一个陷阱,不信,不做。

实用提醒:使用后处理CTE,不要保存桌子。

数据库的类型都有哪些?

说到数据库,这是老生常谈了。
关于第一个关系数据库的报告。
这东西就像一个旧文件柜。
我们把文件放进去,如果我们搜索一个文件,我们搜索它,它就会出来。
常见的有Oracle、DB2 、SQL Server、Access、MySQL,这些都是老数据库了。

然后我们谈论非关系型数据库,它就像现代的智能办公桌。
它不仅可以存储文件,还可以自动插入文件,使搜索变得更加容易。
NoSql、Cloudant、MongoDb、Redis 和 HBase 等都很流行。
说到这里,非关系型数据库有很多优点,比如性能高、部署快、可扩展性强等。
数据没有粘性,可以随意扩展。

我们来谈谈关系数据库的好处。
首先,提问方便。
使用SQL语句,可以轻松执行复杂的查询,无论是单表还是多表。
另一个好处是事务支持,以确保数据的安全访问。
它就像一个保险箱。
别人无法夺走你所保存的东西。

说实话,当时我并没有觉得这两个数据库哪个更好。
后来慢慢的我发现,每个人都有自己的优势,就看你的需求了。
例如,如果您将有大量数据需要处理并且对性能要求较高,那么非关系型数据库会更适合您;如果您需要复杂的查询并且对数据安全性有严格的要求,那么相对的数据库可能更适合。

简而言之,虽然数据库没有绝对的好或坏,但这完全取决于你用它做什么。
就像吃饭一样,有的人想吃米饭,有的人想吃面条,对吧?

sqlserver 中 有connect prior by 这个方法,怎么使用的啊?请举例说明。

语法我都懂,用起来也很方便。
我第一次接触到它是在2 02 2 年的北京,当时我在一家小公司做报告,老板坚持让我运行递归查询来检查特定产品的所有上下游来源。
该表很简单,只是一个Test1 ,有三个字段:Inpro、Pro 和 Quantity。

想了半天,我想到了递归查询。
看一下这样写的:
sql subqry(inpro, per, 数量) 为 ( 选择 Inpro、Pro、数量 来自测试1 其中 pro = 'A' 团结大家 选择test1 .inpro、test1 .pro、test.quantity subqry.quantity作为数量 来自 test1 ,子查询 其中 test1 .pro = subqry.inpro ) 选择 通过子查询;
起初我担心自己会拼写错误,所以我花了很长时间才写出来。
必须添加union all,否则会报错。
在数量 subqry.quantity 中,作为数量,我几乎写了+,但后来我意识到它意味着乘法。
我们还能如何计算数量?
这个查询相当慢。
我测了一下,大约需要3 秒。
该表包含的数据不多,只有 2 000 多个项目。
但当时的服务器性能一般,只是一台老旧的Windows服务器。
现在服务器已准备就绪,所需时间不到 1 秒。

不管怎样,使用递归查询还是很方便的。
我看了你的例子,绝对没问题。
这是数量 subqry.quantity。
你不能拼写错误。
我以前也犯过这个错误。
也许我有点极端,我认为正确使用递归比编写存储过程更容易。
不过,并不是所有情况都适合,要根据具体情况而定。