SóProvas


ID
3134851
Banca
VUNESP
Órgão
SAAE de Barretos - SP
Ano
2018
Provas
Disciplina
Banco de Dados
Assuntos

Considere duas tabelas de um banco de dados relacional: 

T1 (A1, A2, A3)    T2 (B1, B2, B3)

A consulta SQL para obter, de forma conjunta, os valores de A2 e B2, no sistema gerenciador de bancos de dados MySQL (v. 6), é:

Alternativas
Comentários
  • União é a operação da álgebra relacional que retorna as tuplas de duas relações. Em SQL, a sintaxe é SELECT colunas_da_tabela_1 FROM tabela_1 UNION SELECT colunas_da_tabela_2 FROM tabela_2.

    GABARITO: E

  • Observei que muitos colegas marcaram a alternativa A, entretanto esta não funciona, não imprimindo nada na tela. Verifiquem através deste link:

    http://sqlfiddle.com/#!9/36d138/2

    Erros das demais alternativas:

    b) SELECT A2 + B2 FROM T1 + T2

    .

    c) SELECT A2 AND B2 FROM T1 AND T2

    .

    d) SELECT A2 FROM T1 INCLUDE

    SELECT B2 FROM T2

    .

    e) GABARITO, consoante explicado pelo colega Lucas

  • Questão confusa, com uma versão obscura de 2009 (https://dba.stackexchange.com/questions/207506/what-happened-to-mysql-6-7) ..... Testei no MySQL atual (8, de 2018) e MS SQl server e alternativa A meio que funciona, mas com valores duplicados:

    mysql> show variables like 'version';

    +---------------+--------+

    | Variable_name | Value |

    +---------------+--------+

    | version      | 8.0.21 |

    +---------------+--------+

    1 row in set (0.00 sec)

    mysql> Select * from T2;

    +------+------+------+

    | b1  | b2  | b3  |

    +------+------+------+

    |   1 |  20 |  30 |

    |   2 |  30 |  40 |

    |   3 |  40 |  50 |

    +------+------+------+

    3 rows in set (0.00 sec)

    mysql> Select * from T1;

    +------+------+------+

    | a1  | a2  | a3  |

    +------+------+------+

    |   1 |   2 |   3 |

    |   2 |   3 |   4 |

    |   4 |   5 |   6 |

    +------+------+------+

    3 rows in set (0.00 sec)

    mysql> Select * from T2;

    +------+------+------+

    | b1  | b2  | b3  |

    +------+------+------+

    |   1 |  20 |  30 |

    |   2 |  30 |  40 |

    |   3 |  40 |  50 |

    +------+------+------+

    3 rows in set (0.00 sec)

    mysql> select a2,b2 from T1,T2;

    +------+------+

    | a2  | b2  |

    +------+------+

    |   5 |  20 |

    |   3 |  20 |

    |   2 |  20 |

    |   5 |  30 |

    |   3 |  30 |

    |   2 |  30 |

    |   5 |  40 |

    |   3 |  40 |

    |   2 |  40 |

    +------+------+

    9 rows in set (0.00 sec)

    mysql>

    De fato, a alternativa D parece melhor:

    mysql> SELECT A2 FROM T1 UNION SELECT B2 FROM T2;

    +------+

    | A2  |

    +------+

    |   2 |

    |   3 |

    |   5 |

    |  20 |

    |  30 |

    |  40 |

    +------+

    6 rows in set (0.00 sec)

    mysql>