2017-03-25 1 views
0

J'ai besoin d'aide avec un problème en algèbre relationnelle:Comment choisir la valeur null donnée par une jointure externe en algèbre relationnelle

Disons que nous avons les tables A et B et, en utilisant une jointure externe, je crée une nouvelle table et cette table a un couple de tuples dans lequel l'attribut x est égal à null.

Que dois-je faire pour sélectionner uniquement ces tuples?

Est-il correct d'utiliser, comme un prédicat de sélection

TabC.x = "null" 

Y at-il d'autres méthodes?

Répondre

0

l'attribut x est égal à null

La méthode SQL 3VL standard pour voir si TabC.x est NULL est TabC.x IS NULL. En SQL, = n'est pas "est égal à"; il renvoie false si l'un des opérandes est NULL. (Les gens disent "NULL est pas égal à NULL", mais que "est égal à" est SQL =, non "est égal à".)

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

Dans SQL les opérateurs Traiter la valeur NULL spécialement, syntaxiquement et sémantiquement, différemment des autres valeurs, généralement en retournant FALSE lorsque vous comparez deux valeurs lorsque l'une d'entre elles est NULL. Donc "=" dans un WHERE n'est pas l'égalité, c'est un opérateur comme l'égalité qui agit différemment pour NULL. Donc SQL WHERE n'est pas le même opérateur que RESTRICT algébrique.

Les gens systèmes actuels comme algèbre relationnelle et appel it algèbre relationnelle. Celui qui vous a donné le système que vous utilisez peut vous dire comment NULL est traité.

Si quelqu'un veut utiliser NULL avec l'algèbre relationnelle pour définir ou des variables de relation de requête vous devez obtenir directement ce que les opérateurs qu'ils veulent dire quand ils disent des choses comme « ET » et « = » (aussi les opérateurs relationnels comme Réglementer et PROJECT), et si NULL est une valeur traitée spécialement par eux.

0

S'il vous plaît essayer TabC.x IS NULL

Comparaison des NULL à une valeur (y compris une autre NULL) se traduit par NULL, et à son tour, est converti en FAUX

+0

Également dans l'algèbre relationnelle? – Tsadoq

+0

Voulez-vous dire une plate-forme logicielle spécifique nommée "algèbre relationnelle" ou syntaxe mathématique pure? –