在我所工作的每家公司,我发现人们仍然在ANSI-89标准中编写SQL查询:
select a.id, b.id, b.address_1
from person a, address b
where a.id = b.id
Run Code Online (Sandbox Code Playgroud)
而不是ANSI-92标准:
select a.id, b.id, b.address_1
from person a
inner join address b
on a.id = b.id
Run Code Online (Sandbox Code Playgroud)
对于这样一个非常简单的查询,可读性没有太大差异,但是对于大型查询,我发现将我的连接条件分组并列出表格可以更容易地查看我在连接中可能存在问题的位置,以及让我在WHERE子句中保留所有过滤功能.更不用说我觉得外连接比Oracle中的(+)语法更直观.
当我尝试向人们传播ANSI-92时,使用ANSI-92而不是ANSI-89有什么具体的性能优势吗?我会自己尝试,但是我们这里的Oracle设置不允许我们使用EXPLAIN PLAN - 不希望人们尝试优化他们的代码,是吗?
在最近的Microsoft SQL Server版本中是否支持自然连接?或者,是否有一个很好的替代方法可以使SQL Server ON根据参照完整性计算出在子句中的谓词?
关系代数和关系演算之间的确切区别是什么?在大多数参考文献中,它将是
Relational algebra is procedural and calculus is non procedural.
那么,这些代表什么呢.但是,我们可以使用关系代数解决所有问题.那么为什么我们要使用关系演算.除了定义,用例子解释非常感谢.
rdbms relational-algebra relational-database tuple-relational-calculus domain-calculus
每当我们面前有任何查询描述时,我们都会尝试应用启发式和头脑风暴来构建查询。
是否有任何系统的分步或数学方法可以根据给定的人类可读描述构建 SQL 查询?
例如,如何确定 SQL 查询是否需要联接而不是子查询、是否需要 group by、是否需要 IN 子句等等。
例如,任何研究数字电子学的人都会知道卡诺图或奎因·麦克劳斯基方法等方法。这些是简化数字逻辑的一些系统方法。
是否有类似这样的方法来手动分析sql查询以避免每次头脑风暴?
我在 MS Access 中有两个表,用于跟踪班级辅导员和他们辅导的班级。这两个表的结构如下:
tbl_促进者
facilID -> a unique autonumber to keep track of individual teachers
facilLname -> the Last name of the facilitator
facilFname -> the First name of the facilitator
Run Code Online (Sandbox Code Playgroud)
tbl_facilitatorClasses
classID -> a unique autonumber to keep track of individual classes
className -> the name of the class (science, math, etc)
primeFacil -> the facilID from the first table of a teacher who is primary facilitator
secondFacil -> the facilID from the first table of another teacher …Run Code Online (Sandbox Code Playgroud) 我一直在尝试完全理解 sql 连接的概念,维恩图在这方面帮助了我很多。我发现它们适用于所有类型的连接,但不适用于自然连接。
自然连接的维恩图是什么样子的?
这个问题来自我对CJ Date的SQL和关系理论的解读:如何编写准确的SQL代码并查找互联网上的连接(包括在NATURAL JOIN上发现多个帖子(以及关于SQL Server缺乏对它的支持) )
所以这是我的问题......
一方面,在关系理论中,自然连接是唯一应该发生的连接(或者至少是非常优选的连接).
另一方面,在SQL中建议不要使用NATURAL JOIN而是使用替代方法(例如带限制的内连接).
这些调和是:
和/或
?
sql ×6
join ×4
database ×2
natural-join ×2
ansi-92 ×1
ansi-sql ×1
heuristics ×1
inner-join ×1
ms-access ×1
rdbms ×1
self-join ×1
sql-server ×1
union ×1
venn-diagram ×1