如何选择关系代数中的外部联接给出的空值

时间:2017-03-25 10:48:55

标签: database relational relational-algebra

我需要一些关于代数代数问题的帮助:

假设我们有表A和表B,并且使用外连接,我创建了一个新表,该表有几个元组,其中属性x等于{{ 1}}。

如何只选择这些元组?

使用是否正确,作为选择谓词

null

还有其他方法吗?

2 个答案:

答案 0 :(得分:0)

请尝试TabC.x IS NULL

将NULL与任何值(包括另一个NULL)进行比较会导致自身为NULL,然后转换为FALSE

答案 1 :(得分:0)

  

属性import React, {Component} from 'react'; class App extends Component { constructor(props) { super(props); this.state = { isShow: false }; } handleClick(e) { this.setState({ isShow: !this.state.isShow }); } getComponent() { if (this.state.isShow) { return ( <div className="container"> <li>Item 1</li> <li>Item 2</li> <li>Item 3</li> <li>Item 4</li> </div> ) } return ''; } render() { return ( <div> <h1 className="text-xs-center">List of items:</h1> <button onClick={this.handleClick.bind(this)} className="btn btn-primary">Toggle</button> {this.getComponent()} </div> ); } } export default App; 等于x

查看null TabC.xNULL的标准SQL 3VL方式是TabC.x IS NULL。在SQL中,=不是“等于”;如果任一操作数为NULL,则返回false。 (人NULL不等于NULL”,但 “等于”是SQL =,而不是“等于”。)

There is no NULL or 3VL or OUTER JOIN in relational algebra.

  

在SQL中,运算符在特殊,语法和语义上对NULL值的处理方式与其他值不同,通常在比较两个值时返回FALSE,其中一个值为NULL。所以WHERE中的“=”不是相等的,它是一个像NULL一样的运算符,对NULL的行为不同。所以SQL WHERE与代数RESTRICT不是同一个运算符。

人们提出系统喜欢关系代数,调用关系代数。谁给你你正在使用的系统可以告诉你如何处理NULL。

  

如果有人想在关系代数中使用NULL来设置或查询关系变量,那么当他们说“AND”和“=”(还有关系运算符,如RESTRICT和PROJECT)时,你必须直截了当地指出运算符的含义,以及NULL是否是由他们特别处理的值。