Baixe o app para aproveitar ainda mais
Prévia do material em texto
Aluno: RAFAEL MENDONÇA RODRIGUES Matr.: 201802487603 Disc.: FUND.BANCO DE DADOS -- Aula 1 2019.2 (G) / EX Prezado (a) Aluno(a), Você fará agora seu TESTE DE CONHECIMENTO! Lembre-se que este exercício é opcional, mas não valerá ponto para sua avaliação. O mesmo será composto de questões de múltipla escolha. Após responde cada questão, você terá acesso ao gabarito comentado e/ou à explicação da mesma. Aproveite para se familiarizar com este modelo de questões que será usado na sua AV e AVS. 1. A auto informação do banco de dados está caracterizada pela existência: Dos aplicativos Do catálogo Do sistema de banco de dados Dos arquivos de dados Do SGBD Explicação: O catalogo armazena os metadados, ou seja, os dados que descrevem as estruturas de armazenamento do banco de dados, permitindo que o SGBD acesse os seus dados sem necessitar de informações externas. 2. O projetista de banco de dados na Arquitetura Ansi Sparc define o: Modelo Conceitual Modelo Lógico Modelo Físico Nível conceitual Nível interno Explicação: O Nível conceitual de um banco de dados corresponde aos seus objetos lógicos que são definidos pelo projetista de banco de dados. 3. O conceito que exemplifica o significado de INFORMAÇÃO é: O armazenamento de arquivo a manipulação de arquivos O armazenamento de dados O resultado do processamento, manipulação e organização de dados A manipulação de dados Explicação: A informação é produzida a partir do processamento dos dados, ou seja, é o conhecimento produzido a partir da análise dos dados. 4. Na Arquitetura Ansi Sparc quando nos referimos a forma como os diferentes usuários enxergam o banco de dados estamos no: , Nível conceitual Nível externo Sistemas Gerenciador de Banco de Dados Aplicativo Nível interno Explicação: O Nível externo é aonde são definidas as diversas visões do banco de dados, ou seja, a forma como os usuários enxergam o banco de dados. 5. Na Arquitetura Ansi Sparc o DBA trabalha no: NIVEL CONCEITUAL BANCO DE DADOS NIVEL EXTERNO NIVEL INTERNO SGBD Explicação: O DBA administrador de banco de dados é o responsável pela administração no Sistema Gerenciador de Banco de Dados que na arquitetura ANSI SPARC equivale ao NIVEL INTERNO 6. O usuário de banco de dados responsável por fazer o seu gerenciamento é o: Desenvolvedor Projetista de Banco de Dados Administrador de Dados Administrador de Banco de Dados Gerente de Sistemas Explicação: O administrador de banco de dados é responsável pelo gerenciamento do SGBD e, portanto, do próprio banco de dados Aluno: RAFAEL MENDONÇA RODRIGUES Matr.: 201802487603 Disc.: FUND.BANCO DE DADOS 2019.2 (G) / EX Prezado (a) Aluno(a), Você fará agora seu TESTE DE CONHECIMENTO! Lembre-se que este exercício é opcional, mas não valerá ponto para sua avaliação. O mesmo será composto de questões de múltipla escolha. Após responde cada questão, você terá acesso ao gabarito comentado e/ou à explicação da mesma. Aproveite para se familiarizar com este modelo de questões que será usado na sua AV e AVS. 1. O modelo que descreve as estruturas de armazenamento (taabelas) seus campos, suas chaves e demais características , é: Modelo de dados Modelo físico Modelo essencial Modelo conceitual Modelo lógico Explicação: O modelo lógico é construido a partir do modelo conceitual realizando o mapeamento do DER para os componentes do modelo relacional, tabelas, definindo suas colunas e chaves 2. O modelo que descreve a realidade do ambiente, constituindo uma visão global dos principais dados e relacionamentos, independente das restrições de implementação em um banco de dados, é o: Conceitual Essencial Físico Relacional Lógico Explicação: O modelo conceitual é feito utilizando o Diagrama Entidade Relacionamento e destina-se a formalizar a realidade apresentada no mini mundo, formalizando-a 3. O Projeto de um banco de dados é normalmente dividido em fases. Marque a alternativa correta. Projeto Físico: total independência do SGBD específico. Projeto Conceitual: define como os dados são armazenados no SGBD específico. Projeto Físico: descreve estruturas de armazenamento e métodos de acesso. Projeto Lógico: linguagem usada para especificar esquemas lógicos, consiste em criar um modelo físico de dados a partir do modelo conceitual independente do SGBD escolhido. Projeto Conceitual: é analisado um modelo de dados em função do SGBD definido e usa modelo de dados para descrever a realidade. Explicação: Projeto de Banco de Dados: Modelo Conceitual, Modelo Lógico e Modelo Físico. Projeto Conceitual: Modelo de dados abstrato, que descreve a estrutura de um banco de dados de forma independente de um SGBD particular. A técnica de modelo conceitual mais difundida é a abordagem Entidade-Relacionamento. Projeto Lógico: Descreve as estruturas que estarão contidas no banco de dados, considerando o modelo de dados do Sistema Gerenciador de Banco de Dados (SGBD), resultando em um esquema lógico de dados. Projeto Físico: Descreve as estruturas físicas de armazenamento de dados, tais como: tamanho dos campos, índices, tipo de preenchimento destes campos, etc... . É totalmente dependente do SGBD. 4. O modelo que descreve as estruturas de armazenamento de dados, tais como no SGBD como os tipos de dados esécíficos, índices, tipo de preenchimento destes campos, é: Modelo físico Modelo lógico Modelo Relacional Modelo conceitual Modelo essencial Explicação: O modelo de dados físico define a forma como as tabelas serão criadas no SGBD, com os seus tipos de dados, os indices a serem utilizados e as opções de armazenamento 5. Sobre modelos de dados conceituais, lógicos e físicos, marque a opção correta: Modelos de dados físicos são orientados a SGBDs específicos Modelos de dados físicos não descrevem detalhes de como os dados são armazenados Modelos de dados conceituais são totalmente dependentes da implementação Modelos de dados físicos usam conceitos próximos da visão dos usuários Modelos de dados lógicos utilizam conceitos que definem o armazenamento físico Explicação: Fases de Modelagem: Modelo Conceitual, Modelo Lógico e Modelo Físico. Modelo Conceitual: Modelo de dados abstrato, que descreve a estrutura de um banco de dados de forma independente de um SGBD particular. A técnica de modelo conceitual mais difundida é a abordagem Entidade-Relacionamento. Modelo Lógico: Descreve as estruturas que estarão contidas no banco de dados, considerando o modelo de dados do Sistema Gerenciador de Banco de Dados (SGBD), resultando em um esquema lógico de dados. Modelo Físico: Descreve as estruturas físicas de armazenamento de dados, tais como: tamanho dos campos, índices, tipo de preenchimento destes campos, etc. 6. O Diagrama Entidade-Relacionamento é utilizado para elaboração do seguinte modelo de dados: interno hierárquico conceitual físico externo Explicação: O Diagrama Entidade Relacionamento é a ferramenta utilizada no Projeto de Banco de Dados para realizar a modelagem conceitual Aluno: RAFAEL MENDONÇA RODRIGUES Matr.: 201802487603Disc.: FUND.BANCO DE DADOS 2019.2 (G) / EX Prezado (a) Aluno(a), Você fará agora seu TESTE DE CONHECIMENTO! Lembre-se que este exercício é opcional, mas não valerá ponto para sua avaliação. O mesmo será composto de questões de múltipla escolha. Após responde cada questão, você terá acesso ao gabarito comentado e/ou à explicação da mesma. Aproveite para se familiarizar com este modelo de questões que será usado na sua AV e AVS. 1. O Modelo ER (Entidade-Relacionamento) básico consiste em três classes de objetos que são: Campos, Relacionamentos e Atributos Índices, Entidades, Relacionamentos Entidades, Relacionamentos e Atributos Relacionamentos, Tabelas e Atributos Diagramas, Relacionamentos e Atributos Explicação: O DER tambem é conhecido como ERA , entidade, relacionamento e atributos, seus 3 elementos básicos 2. Trata-se de um conjunto de elementos do contexto do negócio, representados por um conjunto de atributos: Informação Classe Associação Entidade Dado Explicação: No contexto do MER uma entidade é um objeto do mundo real concreto ou abstrato que é descrito pelas suas caracteristicas, chamadas atributos. 3. Em uma das etapas do projeto de um banco de dados, definimos modelamos os relacionamentos tipo que se conectam: as Entidades tipo e outros relacionamentos tipo. Apenas as entidades tipo A outros relacionamentos tipo Apenas relacionamentos. Apenas as entidades Explicação: O relacionamento tipo é associação de duas entidades tipo 4. A realidade que esta sendo modelada durante o projeto de banco de dados denomina-se Mundo Real Mini Mundo Modelo Descritivo Requisito de Informação Modelo Conceitual Explicação: MINI MUNDO é a parcela do mundo real que se vai modelar atendendo aos requisitos de informação 5. Quando afirmamos que o notebook numero de Serie 23456 pertence ao Banco Libre, podemos afirmar que o Banco Libre é um exemplo de: Requisito de Informação Relacionamento Tipo Relacionamento Entidade Tipo Entidade Explicação: Entidade é um objeto do mundo real concreto ou abstrato como é o caso do BANCO LIBRE 6. A técnica de diagramação no modelo de Entidade - Relacionamento é bem simples. Utiliza basicamente um losango para representar I e um retângulo para representar II. As opções I e II são preenchidas, correta e respectivamente, por atributos - relacionamentos atributos - entidades entidades - atributos relacionamentos - entidades entidades - relacionamentos Explicação: a representação gráfica de relacionamento no DER é um losango e de entidade um retangulo Aluno: RAFAEL MENDONÇA RODRIGUES Matr.: 201802487603 Disc.: FUND.BANCO DE DADOS 2019.2 (G) / EX Prezado (a) Aluno(a), Você fará agora seu TESTE DE CONHECIMENTO! Lembre-se que este exercício é opcional, mas não valerá ponto para sua avaliação. O mesmo será composto de questões de múltipla escolha. Após responde cada questão, você terá acesso ao gabarito comentado e/ou à explicação da mesma. Aproveite para se familiarizar com este modelo de questões que será usado na sua AV e AVS. 1. Uma loja de material esportivo deseja efetuar o cadastro de seus cliente com as seguintes informações Nome, telefones, email. Sendo assim, o ideal é definir o atributo telefones como: Atributo multivalorado. Atributo obrigatório. Atributo composto. Atributo identificador. Atributo monovalorado. Explicação: Como se deseja armazenar mais de um telefone para cada cliente o correto é modelar o atributo como multivalorado 2. Na modelagem conceitual de um banco observou-se que um aluno pode ou não estar matriculado em um curso, podendo estar matriculado em vários e um curso necessita de um ou mais alunos para ocorrer. Seguindo a orientação descrita no texto, assinale o conjunto de cardinalidades correto abaixo: (0,N) e (1,N). (0,1) e (0,N). (0,1) e (1,N). (0,N) e (0,1). (0,N) e (0,N). Explicação: Quanto a aluno - pode não estar em nenhum curso - mínimo 0 - pode estar me vários curso - máximo 1 - cardinalidade - (0,N) Quanto a curso - precisar ter um aluno - mínimo 1 - pode ter vários - máximo N - cardinalidade (1,N) 3. Em um Modelo de Entidade e Relacionamento, o ATRIBUTO tem a seguinte função: Identifica unicamente uma entidade e não um relacionamento. É uma propriedade que descreve uma entidade ou um relacionamento. É uma propriedade que descreve somente um relacionamento. É sempre um atributo identificador único (chave primária) para apenas uma tabela. Identifica unicamente um relacionamento e não uma entidade. Explicação: Os atributos descrevem as caracteristica de uma entidade ou de um relacionamento 4. A afirmação: "um morador reside em uma e somente uma cidade e em uma cidade residem pelo menos um ou vários moradores", mostra que as cardinalidades de morador para cidade e de cidade para morador são respectivamente: (1,1) e (1,N) (0,1) e (1,N) (1,N) e (0,1) (1,N) e (0,N) (0,N) e (1,1) Explicação: Quanto a morador - mora em uma cidade - mínimo 1 - mora em somente uma - máximo 1 - cardinalidade (1,1) Quanto a cidade - possui no mínimo um morador - mínimo 1 - pode possuir vários - máximo N -cardinalidade (1,N) 5. Um atributo para ser identificador dever ser classificado como: Composto e Obrigatório Composto e monovalorado Não único e simples Único e Obrigatório Único e opcional Explicação: o atributo identificador é aquele que irá dar origem a uma chave primária na tabela, desta forma deve ter as mesmas caracteristicas de unicidade e obrigatoriedade 6. Um relacionamento com valor mínimo para a cardinalidade igual a um é do tipo: Singular Obrigatório Único Restrito Opcional Explicação: Quando uma entidade tipo A possui cardinalidade mínima 1 em seu relacionamento com a entidade tipo B isso significa que todas as entidades de A devem obrigatoriamente se relacionar com pelo menos uma entidade de B, ou seja o relacionamento é obrigatório Aluno: RAFAEL MENDONÇA RODRIGUES Matr.: 201802487603 Disc.: FUND.BANCO DE DADOS 2019.2 (G) / EX Prezado (a) Aluno(a), Você fará agora seu TESTE DE CONHECIMENTO! Lembre-se que este exercício é opcional, mas não valerá ponto para sua avaliação. O mesmo será composto de questões de múltipla escolha. Após responde cada questão, você terá acesso ao gabarito comentado e/ou à explicação da mesma. Aproveite para se familiarizar com este modelo de questões que será usado na sua AV e AVS. 1. Uma chave candidata em um modelo relacional é: Um atributo ou combinação de atributos que possuem a propriedade de identificar de forma única uma linha da tabela. Ocorre em uma relação se existir somente uma combinação de atributos possuindo a propriedade de identificação única. Ocorre em uma relação em que exista mais de uma combinação de atributos possuindo a propriedade de identificação única. Ocorre um atributo de uma relação chave primária em outra relação. O conjunto de atributos, que serão chave primária, que organiza e dá acesso à tabela. Explicação: A chave candidata é o atributo ou conjunto de atributos de uma tabelaque pode vir a constituir sua chave primária. Uma tabela pode ter nenhuma, uma ou várias destas chaves 2. Julgue as afirmativas abaixo: I-Para representar uma relação muitos-para-muitos, você deve criar uma terceira tabela, geralmente chamada de tabela de associação, que divide a relação muitos-para-muitos em duas relações um-para-muitos. II-Para representar uma relação muitos-para-muitos, insira a chave primária de cada uma das duas tabelas na terceira tabela. Como resultado, a terceira tabela registra cada ocorrência, ou instância, da relação. III-Para representar uma relação muitos-para-muitos, exporte a chave primária de uma tabela para a outra, como chave estrangeira. Somente a afirmação III está correta. Somente a afirmação II está correta. Somente as afirmações I e II estão corretas. Somente as afirmações II e III estão corretas Somente a afirmação I está correta. Explicação: Na modelagem lógica de um relacionamento N:N criamos um terceira tabela e exportamos para está as chaves primarias das tabelas resultantes das entidades tipo que participam do relaciomento tipo 3. Uma chave estrangeira em um modelo relacional é: Ocorre em uma relação de existir mais de uma combinação de atributos possuindo a propriedade de identificação única. Ocorre se um atributo de uma relação for atributo em outra relação. Um atributo ou combinação de atributos que possuem a propriedade de identificar de forma única uma linha da tabela. O Conjunto de atributos que serão chave primária que organiza e dá acesso a tabela. Ocorre se um atributo de uma relação for chave primária em outra relação. Explicação: a CHAVE ESTRANGEIRA (FK) materializa os relacionamentos no modelo lógico e consiste em exportar a CHAVE PRIMÁRIA (PK) de uma tabela para outra 4. Uma chave primária em um modelo relacional é quando: Um atributo único que possuem a propriedade de identificar de forma única uma linha da tabela. O Conjunto de atributos que serão chave primária, que organiza e dá acesso à tabela. Um atributo ou combinação de atributos que possuem a propriedade de identificar de forma única uma linha da tabela. Ocorre em uma relação de existir mais de uma combinação de atributos possuindo a propriedade de identificação única. Ocorre um atributo de uma relação se for chave primária em outra relação. Explicação: a chave primária para poder identificar uma linha da tabela deve obrigatoriamente ter valor, ou seja não pode ser nula, e única, não pode repetir o valor em outra linha 5. Qual o nome da regra em um banco de dados que assegura que um valor que apareça em uma relação para um dado conjunto de atributos também apareça para um certo conjunto de atributos em outra relação? Transitividade Composta. Dependência Composta. Dependência Semântica. Integridade Conceitual. Integridade Referencial. Explicação: Integridade Referencial - As chaves estrangeiras têm que ser respeitadas, ou seja, se existe um determinado valor para o atributo na tabela onde ele é chave estrangeira, este valor deve existir na tabela onde ele é chave primária. Integridade semântica - Garante que o dado inserido em uma linha da tabela seja um valor válido. Para esse valor ser válido deve ser do mesmo tipo de dados definido na especificação da coluna na tabela. Dependência Transitiva - Uma dependência funcional transitiva ocorre quando uma colua, além de depender da chave primária da tabela, depende de outra coluna ou conjunto de colunas da tabela. 6. No modelo de banco de dados relacional, os dados são representados por meio de: Ponteiros, que são as chaves primárias e estrangeiras. Listas encadeadas de tuplas. Tabelas. Matrizes tridimensionais formadas por linhas, colunas e chaves. Vetores de tuplas. Explicação: No modelo relacional, como o proprio nome diz, os dados são armazenados em TABELAS. Uma tabela na matemática é denominada Relação dai o nome MODELO RELACIONAL Aluno: RAFAEL MENDONÇA RODRIGUES Matr.: 201802487603 Disc.: FUND.BANCO DE DADOS 2019.2 (G) / EX Prezado (a) Aluno(a), Você fará agora seu TESTE DE CONHECIMENTO! Lembre-se que este exercício é opcional, mas não valerá ponto para sua avaliação. O mesmo será composto de questões de múltipla escolha. Após responde cada questão, você terá acesso ao gabarito comentado e/ou à explicação da mesma. Aproveite para se familiarizar com este modelo de questões que será usado na sua AV e AVS. 1. Dois comandos básicos da SQL pertencentes à classe de linguagem de manipulação dos dados(DML), são: update e delete update e drop alter e delete drop e delete alter e drop Explicação: os comandos de DML são INSERT, UPDATE E DELETE 2. A seguinte instrução ocasiona qual procedimento no banco: CREATE TABLE PESSOAS ( ID_PESSOA INT NOT NULL PRIMARY KEY, PESSOA VARCHAR(26) ); Mostra a tabela tbPessoa. Cria a tabela pessoa na forma descrita e com os campos preenchidos; Cria um identificador (ID_PESSOAS) que é a chave primária; Cria a tabela pessoa com 2 campos; Cria a tabela pessoa com 3 campos; Explicação: o COMANDO CREATE TABLE cria uma tabela 3. Ao implementar um sistema de gerência de fornecedores, o desenvolvedor percebeu que não existia no banco de dados relacional da empresa qualquer representação da entidade PRODUTO que aparecia em seu modelo de dados. Para corrigir essa falha, preparou um comando SQL que alteraria o esquema do banco de dados. Tal comando SQL deve ser iniciado com CREATE PRODUTO : TABLE ALTER SCHEMA ADD TABLE PRODUTO ALTER TABLE PRODUTO CREATE PRODUTO AS TABLE CREATE TABLE PRODUTO Explicação: A SOLUÇÃO SERIA CRIAR A TABELA PRODUTO COM O COMANDO CREATE TABLE 4. Um DBA criou uma tabela em um Banco de Dados no postgreSQL utilizando o comando CREATE TABLE mec ( cidade varchar(80), temp_baixa int, temp_alta int, nivel_precip real, data date ) Para o comando que insere dados na tabela mec, é usada a seguinte sintaxe: INSERT OVER mec(cidade, temp_baixa, temp_alta, nível_precip, data) VALUES ('Brasilia', 20, 34, 0.2, `2009-01-13'); INSERT ON mec(cidade, temp_baixa, temp_alta, nível_precip, data) VALUES ('Brasilia', 20, 34, 0.2, `2009-01-13'); INSERT FROM mec(cidade, temp_baixa, temp_alta, nível_precip, data) VALUES ('Brasilia', 20, 34, 0.2, `2009-01-13'); INSERT IN mec(cidade, temp_baixa, temp_alta, nível_precip, data) VALUES ('Brasilia', 20, 34, 0.2, `2009-01-13'); INSERT INTO mec(cidade, temp_baixa, temp_alta, nível_precip, data) VALUES ('Brasilia', 20, 34, 0.2, `2009-01-13'); Explicação: O Comando de INSERT tem como sintaxe INSERT INTO tabela VALUES (valores) 5. Considere o banco de dados relacional de uma clínica médica PACIENTE (id_pac, nome_pac, sexo, fone_pac) ESPECIALIDADE (id_espec, nome_espec) MEDICO (id_med, nome_med, fone_med, id_espec) CONSULTA (id_cons, dt_cons, vl_cons, id_pac, id_med) Dê o comando correspondente de Atualizar o nome da especialidade para a especialidade de id = 1. Update ESPECIALIDADE Set nome_espec = 'Clínico Geral' Where id_espec != 1 Update ESPECIALIDADE Set nome_espec = 'Clínico Geral' Where id_espec < 1 Update ESPECIALIDADE Set nome_espec = 'Clínico Geral' Where id_espec <> 1 Update ESPECIALIDADE Set nome_espec = 'Clínico Geral' Where id_espec = 1 UpdateESPECIALIDADE Set nome_espec = 'Clínico Geral' Where id_espec > 1 Explicação: o comando que atualiza os dados é o de update 6. Na linguagem SQL a Linguagem de Manipulação de Dados compreende os comandos para inserir, remover e modificar informações em um banco de dados. a Linguagem de Definição de Dados fornece tabelas para criação e modificação de comandos. os comandos básicos da Linguagem de Definição de Dados são Sort, Insert, Undo e Store. a Linguagem de Manipulação de Relacionamentos compreende os comandos para construir tabelas em um banco de dados. os comandos básicos da Linguagem de Definição de Dados são Select, Insert, Update e Delete. Explicação: DDL (Linguagem de Definição de Dados): Permitem a criação e definição de objetos como tabelas, views e outros objetos no banco de dados (ex: Create, Alter, Drop, Rename, Truncate) DRL (Linguagem de Recuperação de Dados): É o comando mais comum do SQL. Utilizado amplamente para recuperação dos dados de uma base. (Ex: select) DML (Linguagem de Manipulação de Dados): Comandos de manipulação dos dados. Usados nas aplicações que mantém a base de informações com inserções, atualizações e deleções de dados. (Ex: Insert, Delete, Update) DCL (Linguagem de Controle de Dados): São utilizados para atribuir ou remover direitos de acesso a objetos do banco de ados e suas estruturas. (Ex: Grant, Revoke) Aluno: RAFAEL MENDONÇA RODRIGUES Matr.: 201802487603 Disc.: FUND.BANCO DE DADOS 2019.2 (G) / EX Prezado (a) Aluno(a), Você fará agora seu TESTE DE CONHECIMENTO! Lembre-se que este exercício é opcional, mas não valerá ponto para sua avaliação. O mesmo será composto de questões de múltipla escolha. Após responde cada questão, você terá acesso ao gabarito comentado e/ou à explicação da mesma. Aproveite para se familiarizar com este modelo de questões que será usado na sua AV e AVS. 1. Considere o esquema de uma empresa conforme segue: Func (cod_func, nome, dta_nasc, salario, nro_depto, cod_superv) ; Depto (nro_depto, nome) ; Projeto (cod_proj, nome, duracao, nro_depto) ; Participa (cod_proj, cod_func, horas_trab). Marque a alternativa que contém o comando em SQL para recuperar o nome e o salário dos funcionários do departamento 5, com salário na faixa entre 1000 e 2000. SELECT NOME, SALARIO FROM FUNC WHERE NRO_DEPTO = 5; SELECT NOME, SALARIO FROM FUNC WHERE SALARIO BETWEEN 1000 AND 2000; SELECT NOME, SALARIO FROM FUNC WHERE NRO_DEPTO = 5 AND SALARIO BETWEEN 1000 AND 2000; SELECT NOME, SALARIO FROM FUNC WHERE SALARIO = 1000 AND NRO_DEPTO BETWEEN 1 AND 5; SELECT NOME, SALARIO FROM FUNC WHERE NRO_DEPTO = 5 OR SALARIO BETWEEN 1000 AND 2000; Explicação: O comando deve ter o between para definir a faixa dos salarios e o operador AND para ligar as duas condições 2. Assinale a alternativas que selecione somente a coluna nome de todos os produtos utilizando uma cláusula que pode ser usada em um comando SELECT da linguagem SQL: SELECT qtde FROM produto; SELECT * FROM produto; SELECT nome FROM produto; SELECT produto FROM nome SELECT nome, qtde FROM produto; Explicação: Para selecionar somente uma coluna de uma tabela, apenas indique o nome da coluna e utiliza o comando Select nome_coluna FROM Tb_tabela; 3. Abaixo segue parte do esquema do banco de dados Shark, sabendo-se que os atributos em negrito e sublinhados são chaves primárias e os atributos em itálico são chaves estrangeiras: AREA (CODAREA, NOMEAREA) LOCAL (CODLOCAL, CODAREA, NOMELOCAL) TUBARAO (IDTUBARAO, IDESPECIE, COMPRIMENTO, SEXO) CAPTURA (NUMCAPTURA, IDEMB, IDTUBARAO, CODLOCAL, LATITUDE, LONGITUDE, DATA, TEMPAGUA) Assinale a alternativa abaixo que representa um comando SQL que consulte todos os dados de capturas e de tubarões cujas datas sejam posteriores a 2009, o comprimento seja a partir de 4 metros e o sexo seja masculino (M). SELECT * FROM CAPTURA C, TUBARAO T WHERE C.IDTUBARAO = T.IDTUBARAO AND DATA >= '31/12/2009' AND COMPRIMENTO > 4 AND SEXO = "M"; SELECT * FROM CAPTURA C, TUBARAO T ON C.IDTUBARAO = T.IDTUBARAO AND DATA > '31/12/2009' AND COMPRIMENTO >= 4 AND SEXO = 'M'; SELECT * FROM CAPTURA C, TUBARAO T ON C.IDTUBARAO = T.IDTUBARAO AND DATA > '31/12/2009' AND COMPRIMENTO > 4 AND SEXO = 'M'; SELECT * FROM CAPTURA C, TUBARAO T WHERE C.IDTUBARAO = T.IDTUBARAO AND DATA > '31/12/2009' AND COMPRIMENTO >= 4 AND SEXO = 'M'; SELECT * FROM CAPTURA, TUBARAO WHERE DATA > '31/12/2009' AND COMPRIMENTO >= 4 AND SEXO = "M"; Explicação: o comando exige o uso de tres condições ligadas por dois operadores AND 4. Assinale a alternativa que selecione todos os clientes que terminem com o nome 'Morais' Select * From Cliente Where nome like '%Mor' Select * From Cliente Where nome like '%M' Select * From Cliente Where nome like '%Morais' Select * From Cliente Where nome like '%M%' Select * From Cliente Where nome <> 'Morais' Explicação: É necessario o uso do like com o caracter curinga % 5. Assinale a alternativa que Selecione todos os pedidos para o cliente cujo código seja = 150 e cujo valor total seja maior que 500. Select * FROM pedido Where cliente_id= 150; Select * FROM pedido Where cliente_id= 150 AND pedido_valor_total > 500; Select * FROM pedido Where cliente_id= 150 AND pedido_valor_total = 500; Select * FROM pedido Where pedido_valor_total > 500; Select * FROM pedido Where cliente_id= 150 OR pedido_valor_total < 500; Explicação: Como temos duas condições devemos utilizar um operador lógico 6. Assinale a alternativa que selecione todos os clientes cujo código NÃO esteja entre 50 e 75. SELECT * FROM Cliente Where cliente_id NOT BETWEEN 50 OR 75; SELECT * FROM Cliente Where cliente_id >= 50 AND cliente_id <=75; SELECT * FROM Cliente Where cliente_id = 50 AND 75; SELECT * FROM Cliente Where cliente_id BETWEEN 50 AND 75; SELECT * FROM Cliente Where cliente_id NOT BETWEEN 50 AND 75; Explicação: É necessario utilizar not between para filtrar as linhas que estão fora da faixa Aluno: RAFAEL MENDONÇA RODRIGUES Matr.: 201802487603 Disc.: FUND.BANCO DE DADOS 2019.2 (G) / EX Prezado (a) Aluno(a), Você fará agora seu TESTE DE CONHECIMENTO! Lembre-se que este exercício é opcional, mas não valerá ponto para sua avaliação. O mesmo será composto de questões de múltipla escolha. Após responde cada questão, você terá acesso ao gabarito comentado e/ou à explicação da mesma. Aproveite para se familiarizar com este modelo de questões que será usado na sua AV e AVS. 1. Abaixo segue parte do esquema do banco de dados Shark, sabendo-se que os atributos em negrito e sublinhados são chaves primárias e os atributos em itálico são chaves estrangeiras: AREA (CODAREA, NOMEAREA) LOCAL (CODLOCAL, CODAREA, NOMELOCAL) TUBARAO (IDTUBARAO, IDESPECIE, COMPRIMENTO, SEXO) CAPTURA (NUMCAPTURA, IDEMB, IDTUBARAO, CODLOCAL, LATITUDE, LONGITUDE, DATA, TEMPAGUA) Assinale a alternativa abaixo que representa uma consulta que exiba todos os dados de áreas e locais ordenados decrescentemente pelo nome do local. SELECT * FROM AREA A, LOCAL L WHERE A.CODAREA = L.CODAREA ORDER BY NOMELOCAL DESC; SELECT * FROM AREA A INNER JOIN LOCAL L WHERE A.CODAREA = L.CODAREA ORDER BY NOMELOCAL DESC; SELECT * FROM AREA A, LOCAL L WHERE A.CODAREA = L.CODAREA ORDER NOMELOCAL DESC; SELECT * FROM AREA A, LOCAL L WHERE A.CODAREA =L.CODAREA ORDER NOMELOCAL ASC; SELECT * FROM AREA A INNER JOIN LOCAL L ON A.CODAREA = L.CODAREA ORDER NOMELOCAL DESC; Explicação: PARA ORDENARMOS DE FORMA DESCRECENTE PRECISAMOS UTILIZAR ORDER BY DESC 2. Baseado no modelo de banco de dados mostrado a seguir: CARRO(idcarro,placa,modelo,tipo,cor,ano,Km,valor,chassis,idfilial) ALUGUEL(NF,idcarro,idcliente,valor,CNH,dataIni,dataFim,idfuncionario) Mostre o tipo dos carros e quantos carros são do mesmo tipo: SELECT tipo, count(*) FROM carro GROUP BY tipo; SELECT tipo, sum(tipo) FROM carro GROUP BY sum(tipo); SELECT tipo, sum(tipo) FROM carro GROUP BY tipo; SELECT tipo, max(tipo) FROM carro GROUP BY tipo; SELECT tipo, count(*) FROM carro; Explicação: Para a correta execução temos que contar utilizando count e agrupar utilizando Group By 3. O retorno do valor médio de uma coluna contendo diversos números é possibilitado pela expressão SQL SELECT AVG OF column_name FROM table_name SELECT column_name (AVG) FROM table_name SELECT AVG(column_name) FROM table_name SELECT FROM table_name AVG(column_name) SELECT column_name FROM table_name SETTING AVG Explicação: A função AVG(X) retorna o valor médio da coluna x, ignorando os valores nulos. 4. Considere a seguinte representação de uma tabela de um banco de dados relacional: Estoque (id, Item, Quantidade, Categoria) O comando SQL para se obter a soma dos valores do atributo Quantidade, agrupada por Categoria, apenas para as Categorias com Quantidade total superior a 50 unidades, é: SELECT GROUP (Categoria), SUM (Quantidade) FROM Estoque WHERE Quantidade > 50 SELECT GROUP (Categoria), COUNT (Quantidade) FROM Estoque WHERE Quantidade > 50 SELECT Categoria, Quantidade FROM Estoque WHERE Quantidade > 50 GROUP BY Categoria SELECT Categoria, SUM(Quantidade) FROM Estoque WHERE GROUP BY Categoria HAVING SUM(Quantidade) > 50 SELECT Categoria, SUM (*) FROM Estoque GROUP BY Categoria HAVING SUM (*) > 50 Explicação: Como é necessario filtrar os grupos temos que usar a clausula HAVING 5. Considere a tabela definida pelo comando SQL abaixo. Create table func ( nome varchar(50) not null, salario numeric(9,2) not null, cod_depto int null); Considere a consulta SQL abaixo: Select nome, salario from func where salario > 900 and cod_depto is not null order by salario O requisito abaixo que NÃO é atendido por esta consulta é: apresentar o resultado em ordem alfabética. só considerar os registros que apresentem o atributo COD_DEPTO não nulo; listar a coluna SALARIO da tabela FUNC; só considerar os registros que apresentem o atributo SALARIO maior que 900; listar a coluna NOME da tabela FUNC; Explicação: Como a ordenação foi realizada por uma coluna numerica não apresentara a ordem alfabetica crescente no resultado 6. Em um modelo de dados que descreve a publicação acadêmica de pesquisadores de diferentes instituições em eventos acadêmicos, considere as tabelas abaixo. DEPARTAMENTO (CodDepartamento, NomeDepartamento) EMPREGADO (CodEmpregado, NomeEmpregado, CodDepartamento, Salario) Na linguagem SQL, o comando mais simples para recuperar os códigos dos departamentos cuja média salarial seja maior que 2000 é SELECT CodDepartamento FROM EMPREGADO WHERE AVG (Salario) > 2000 GROUP BY CodDepartamento SELECT CodDepartamento, AVG (Salario) > 2000 FROM EMPREGADO GROUP BY CodDepartamento SELECT CodDepartamento FROM EMPREGADO GROUP BY CodDepartamento HAVING AVG (Salario) > 2000 SELECT CodDepartamento FROM EMPREGADO GROUP BY CodDepartamento ORDER BY AVG (Salario) > 2000 SELECT CodDepartamento FROM EMPREGADO WHERE AVG (Salario) > 2000 Explicação: Como temos que filtrar os grupo devemos utilizar a clausula HAVING Aluno: RAFAEL MENDONÇA RODRIGUES Matr.: 201802487603 Disc.: FUND.BANCO DE DADOS 2019.2 (G) / EX Prezado (a) Aluno(a), Você fará agora seu TESTE DE CONHECIMENTO! Lembre-se que este exercício é opcional, mas não valerá ponto para sua avaliação. O mesmo será composto de questões de múltipla escolha. Após responde cada questão, você terá acesso ao gabarito comentado e/ou à explicação da mesma. Aproveite para se familiarizar com este modelo de questões que será usado na sua AV e AVS. 1. Baseado no modelo de banco de dados mostrado a seguir: FILIAL(idfilial(PK), nome, cidade,endereço,telefone) FUNCIONARIO(idfuncionario(PK),nome,endereço,telefone,salario,idfilial) CLIENTE(idcliente(PK),nome,cpf,endereço,telefone,cidade) CLIENTE_ESPECIAL(idcliente(PK),Km,desconto) CARRO(idcarro(PK),placa,modelo,tipo,cor,ano,Km,valor,chassis,idfilial) ALUGUEL(NF(PK),idcarro,idcliente,valor,CNH,dataIni,dataFim,idfuncionario) O nome das filiais e a quantidade de funcionários que cada filial possui, mostre somente filiais com mais de 10 funcionários? SELECT fi.nome Filial, count(*) Quantidade FROM filial fi LEFT JOIN funcionário fu ON fi.idfilial=fu.idfilial GROUP BY Filial HAVING count(*) > 10; SELECT fi.nome Filial, count(*) Quantidade FROM filial fi INNER JOIN funcionário fu ON fi.idfilial=fu.idfilial; SELECT fi.nome Filial, count(*) Quantidade FROM filial fi, funcionário fu ON fi.idfilial=fu.idfilial GROUP BY Filial HAVING count(*) > 10; SELECT fi.nome Filial, count(*) Quantidade FROM filial fi INNER JOIN funcionário fu ON fi.idfilial=fu.idfilial GROUP BY Filial HAVING count(*) > 10; SELECT fi.nome Filial, count(*) Quantidade FROM filial fi RIGHT JOIN funcionário fu ON fi.idfilial=fu.idfilial GROUP BY Filial HAVING count(*) > 10; Explicação: O comando para produzir o resultado deve fazer uma junção interior, usando portanto INNER JOIN 2. Baseado no modelo de banco de dados mostrado a seguir: FILIAL(idfilial(PK), nome, cidade,endereço,telefone) FUNCIONARIO(idfuncionario(PK),nome,endereço,telefone,salario,idfilial) CLIENTE(idcliente(PK),nome,cpf,endereço,telefone,cidade) CLIENTE_ESPECIAL(idcliente(PK),Km,desconto) CARRO(idcarro(PK),placa,modelo,tipo,cor,ano,Km,valor,chassis,idfilial) ALUGUEL(NF(PK),idcarro,idcliente,valor,CNH,dataIni,dataFim,idfuncionario) O nome dos clientes, os códigos dos carros que o cliente alugou e o valor de cada aluguel? SELECT c.nome cliente, a.idcarro, a.valor FROM aluguel a LEFT JOIN cliente c where a.idcliente=c.idcliente SELECT c.nome cliente, a.idcarro, a.valor FROM aluguel a INNER JOIN cliente c SELECT c.nome cliente, a.idcarro, a.valor FROM aluguel a, cliente c where a.idcliente=c.idcliente SELECT c.nome cliente, a.idcarro, a.valor FROM aluguel a RIGHT JOIN cliente c where a.idcliente=c.idcliente SELECT c.nome cliente, a.idcarro, a.valor FROM aluguel a, cliente c ON a.idcliente=c.idcliente Explicação: O comando exije uma junção interior, no caso foi escrita na sintaxe tradicional 3. Baseado no modelo de banco de dados mostrado a seguir: FILIAL(idfilial(PK), nome, cidade,endereço,telefone) FUNCIONARIO(idfuncionario(PK),nome,endereço,telefone,salario,idfilial) CLIENTE(idcliente(PK),nome,cpf,endereço,telefone,cidade) CLIENTE_ESPECIAL(idcliente(PK),Km,desconto) CARRO(idcarro(PK),placa,modelo,tipo,cor,ano,Km,valor,chassis,idfilial) ALUGUEL(NF(PK),idcarro,idcliente,valor,CNH,dataIni,dataFim,idfuncionario) O nome dos clientes que são cadastrados como especiais? SELECT c.nome cliente FROM cliente c, cliente_especial ce ON c.idcliente=ce.idcliente SELECT c.nome cliente FROM cliente c LEFT JOIN cliente_especial ce ONc.idcliente=ce.idcliente SELECT c.nome cliente FROM cliente c INNER JOIN cliente_especial ce SELECT c.nome cliente FROM cliente c RIGHT JOIN cliente_especial ce ON c.idcliente=ce.idcliente SELECT c.nome cliente FROM cliente c INNER JOIN cliente_especial ce ON c.idcliente=ce.idcliente Explicação: Para sabermos o nome dos clientes especiais temos que fazer uma junção interior entre a tabela de clientes especiais e a de cliente. 4. Abaixo segue parte do esquema do banco de dados Shark, sabendo-se que os atributos em negrito e sublinhados são chaves primárias e os atributos em itálico são chaves estrangeiras: ESPECIE (IDESPECIE, NOME_CIENTIFICO, DENTICAO, STATUS_EXTINCAO, HABITAT, TIPOREPRODUCAO) CAPTURA (NUMCAPTURA, IDEMB, IDTUBARAO, CODLOCAL, LATITUDE, LONGITUDE, DATA, TEMPAGUA) TUBARAO (IDTUBARAO, IDESPECIE, COMPRIMENTO, SEXO) Assinale a alternativa abaixo que representa uma consulta que exibe o nome científico e o sexo dos tubarões correlacionados corretamente. SELECT NOME_CIENTIFICO, SEXO FROM ESPECIE E INNER JOIN TUBARAO T ON E.IDESPECIE = T.IDESPECIE; SELECT NOME_CIENTIFICO, SEXO FROM ESPECIE E NATURAL JOIN TUBARAO T ON E.IDESPECIE = T.IDESPECIE; SELECT NOME_CIENTIFICO, SEXO FROM ESPECIE E CROSS JOIN TUBARAO T ON E.IDESPECIE = T.IDESPECIE; SELECT NOME_CIENTIFICO, SEXO FROM ESPECIE E, TUBARAO T; SELECT NOME_CIENTIFICO, SEXO FROM ESPECIE JOIN TUBARAO; Explicação: A consulta deseja recuperar os seguintes campos: - nome científico: encontra-se na tabela Espécie - sexo: encontra-se na tabela Tubarão. Sendo assim temos que realizar uma junção interior. 5. Baseado no modelo de banco de dados mostrado a seguir: FILIAL(idfilial(PK), nome, cidade,endereço,telefone) FUNCIONARIO(idfuncionario(PK),nome,endereço,telefone,salario,idfilial) CLIENTE(idcliente(PK),nome,cpf,endereço,telefone,cidade) CLIENTE_ESPECIAL(idcliente(PK),Km,desconto) CARRO(idcarro(PK),placa,modelo,tipo,cor,ano,Km,valor,chassis,idfilial) ALUGUEL(NF(PK),idcarro,idcliente,valor,CNH,dataIni,dataFim,idfuncionario) O nome dos clientes que mesmo cadastrados no banco de dados da Locadora NÃO fizeram nenhum aluguel? SELECT c.nome cliente FROM aluguel a RIGHT JOIN cliente c ON a.idcliente=c.idcliente where a.idcliente IS NULL SELECT c.nome cliente FROM aluguel a LEFT JOIN cliente c ON a.idcliente=c.idcliente where a.idcliente IS NULL SELECT c.nome cliente FROM aluguel a, cliente c ON a.idcliente=c.idcliente SELECT c.nome cliente FROM aluguel a INNER JOIN cliente c ON a.idcliente=c.idcliente where a.idcliente IS NULL SELECT c.nome cliente FROM aluguel a, cliente c where a.idcliente=c.idcliente Explicação: Como precisamos obter os não relacionados necessitamos fazer uma junção exterior 6. Analise o modelo a seguir: Empregado (nome_empregado, rua,cidade) Trabalha (nome_empregado,nome_companhia,salario) Companhia (nome_companhia,cidade) Qual é a consulta em SQL para encontrar nome, endereço e cidade de residência de todos os empregados da XXX que ganham mais de dez mil reais? SELECT e.nome_empregado, rua, cidade FROM empregado e WHERE t.nome_companhia = 'XXX' AND t.salario > 10000; SELECT e.nome_empregado, rua, cidade FROM empregado e WHERE t.nome_companhia = 'XXX' AND t.salario < 10000; SELECT e.nome_empregado, rua, cidade FROM empregado e LEFT JOIN trabalha t ON e.nome_empregado = t.nome_empregado WHERE t.nome_companhia = 'XXX' AND t.salario > 10000; SELECT e.nome_empregado, rua, cidade FROM empregado e INNER JOIN trabalha t ON e.nome_empregado = t.nome_empregado WHERE t.nome_companhia = 'XXX' AND t.salario > 10000; SELECT e.nome_empregado, rua, cidade FROM empregado e, trabalha t ON e.nome_empregado = t.nome_empregado WHERE t.nome_companhia = 'XXX' AND t.salario > 10000; Explicação: Temos que fazer uma junção interior portanto utilizamos inner join Aluno: RAFAEL MENDONÇA RODRIGUES Matr.: 201802487603 Disc.: FUND.BANCO DE DADOS 2019.2 (G) / EX Prezado (a) Aluno(a), Você fará agora seu TESTE DE CONHECIMENTO! Lembre-se que este exercício é opcional, mas não valerá ponto para sua avaliação. O mesmo será composto de questões de múltipla escolha. Após responde cada questão, você terá acesso ao gabarito comentado e/ou à explicação da mesma. Aproveite para se familiarizar com este modelo de questões que será usado na sua AV e AVS. 1. Baseado no modelo de banco de dados mostrado a seguir: FILIAL(idfilial(PK), nome, cidade,endereço,telefone) FUNCIONARIO(idfuncionario(PK),nome,endereço,telefone,salario,idfilial) CLIENTE(idcliente(PK),nome,cpf,endereço,telefone,cidade) CLIENTE_ESPECIAL(idcliente(PK),Km,desconto) CARRO(idcarro(PK),placa,modelo,tipo,cor,ano,Km,valor,chassis,idfilial) ALUGUEL(NF(PK),idcarro,idcliente,valor,CNH,dataIni,dataFim,idfuncionario) Qual o nome do Funcionário que tem o maior salário? SELECT nome FROM funcionario fu where salario = (select Max(salario) from funcionario); SELECT nome, Max(salario) FROM funcionario fu group by nome; SELECT nome FROM funcionario fu where salario = Max(salario); SELECT nome, Max(salario) FROM funcionario; SELECT nome FROM funcionario fu where salario = (select sum(salario) from funcionario); Explicação: Inicialmente utiliza-se uma subconsulta para obter o maior salario e a seguir o seu retorno para filtrar as linhas na consulta principal 2. Dada a instrução SQL: SELECT * FROM FUNCIONARIO WHERE salario > (SELECT AVG(salario) FROM FUNCIONARIO ); É correto afirmar que se trata de um exemplo de INNER JOIN. se trata de um exemplo de OUTER JOIN. serão selecionados todos os registros da tabela FUNCIONARIO cujo conteúdo do campo "salario" seja maior que a média dos salários de todos os vendedores. serão selecionados todos os registros da tabela FUNCIONARIO cujo conteúdo do campo "salario" seja maior que o número de vendedores cadastrados. serão selecionados todos os registros da tabela FUNCIONARIO cujo conteúdo do campo "salario" seja maior que a soma dos salários de todos os vendedores Explicação: O comando não realiza uma junção, ele utiliza uma subconsulta para obter a media salarial dos empregados e a seguir filtrar os dados da consulta principal 3. Considere as seguintes tabelas: CLIENTE (idCli, NomeCli) PEDIDO (idPEDIDO, Data, idCli, ValorPedido) Qual alternativa apresenta os clientes que NÃO tiveram nenhum pedido? SELECT * FROM CLIENTE SELECT NomeCli FROM CLIENTE C RIGHT JOIN PEDIDO P ON C.idCli = P.idCli SELECT NomeCli FROM CLIENTE C LEFT JOIN PEDIDO P ON C.idCli = P.idCli SELECT * FROM CLIENTE WHERE idCli IN (SELECT idCli FROM PEDIDO) SELECT * FROM CLIENTE WHERE idCli NOT IN (SELECT idCli FROM PEDIDO) Explicação: O comando utiliza uma subconsulta para obter o id dos clientes que fizeram pedidos e a seguir filtra os clientes que não aparecem no conjunto retornado 4. Considere as seguintes tabelas de um banco de dados: 1) Fornecedor (cod_fornec, nome_fornec, telefone, cidade, UF) 2) Estado (UF, nome_estado) A expressão SQL que obtém os nomes dos estados para os quais não há fornecedores cadastrados e: SELECT E.nome_estado FROM Estado AS E WHERE E.UF IN (SELECT F.UF FROM Fornecedor AS F); SELECT E.nome_estado FROM Estado AS E WHERE E.UF NOT IN (SELECT F.UF FROM Fornecedor AS F); SELECT E.nome_estado FROM Estado AS E, FROM Fornecedor AS F WHERE E.UF = F.UF; SELECT E.nome_estado FROMEstado AS E, FROM Fornecedor AS F WHERE E.nome_estado = F.UF; SELECT E.UF FROM Estado AS E WHERE E.nome_estado NOT IN (SELECT F.UF FROM Fornecedor AS F); Explicação: A subconsulta obtem os estados dos fornecedores e a seguir a consulta principal verifica os estados que não aparecem no conjunto retornado 5. Baseado no modelo de banco de dados mostrado a seguir: FILIAL(idfilial(PK), nome, cidade,endereço,telefone) FUNCIONARIO(idfuncionario(PK),nome,endereço,telefone,salario,idfilial) CLIENTE(idcliente(PK),nome,cpf,endereço,telefone,cidade) CLIENTE_ESPECIAL(idcliente(PK),Km,desconto) CARRO(idcarro(PK),placa,modelo,tipo,cor,ano,Km,valor,chassis,idfilial) ALUGUEL(NF(PK),idcarro,idcliente,valor,CNH,dataIni,dataFim,idfuncionario) Qual o código do Carro que tem o maior valor de aluguel? SELECT idCarro, Max(valor) FROM aluguel a group by idcarro; SELECT idCarro FROM aluguel a where valor = (select sum(valor) from aluguel); SELECT idCarro FROM aluguel a where valor = (select Max(valor) from aluguel); SELECT idCarro, Max(valor) FROM aluguel; SELECT idCarro FROM aluguel a where valor = Max(valor); Explicação: Para executarmos a consulta temos que primeiro obter o maior valor de aluguel em uma subconsulta e depois utilizar este valor para filtrar as linhas na consulta principal 6. Em um projeto lógico de um sistema foi identificado que um projeto é de um certo tipo. Assim, as relações abaixo foram definidas: TIPO_PROJETO (ID_TIPO, NOME) PROJETO (ID_PROJETO, NOME, DESCRICAO, ID_TIPO, VALOR) Conforme a linguagem SQL e as relações dadas, escolha a opção que mostre o nome de cada tipo de projeto que não possua um projeto e que comece com a letra A. SELECT TP.NOME FROM TIPO_PROJETO TP, PROJETO P WHERE ID_TIPO IS NULL AND TP.NOME LIKE '%A%'; SELECT TP.NOME FROM TIPO_PROJETO TP, PROJETO P WHERE ID_TIPO IS NULL AND P.VALOR=0 AND TP.NOME LIKE 'A%'; SELECT TP.NOME FROM TIPO_PROJETO TP, PROJETO P WHERE TP.ID_TIPO = P.ID_TIPO AND TP.ID_TIPO IS NULL AND TP.NOME LIKE '%A%'; SELECT TP.NOME FROM TIPO_PROJETO TP, PROJETO P WHERE TP.ID_TIPO = P.ID_TIPO AND P.VALOR IS NULL AND TP.NOME LIKE '%A%'; SELECT NOME FROM TIPO_PROJETO WHERE ID_TIPO NOT IN (SELECT DISTINCT ID_TIPO FROM PROJETO) AND NOME LIKE 'A%' ; Explicação: A subconsulta retorna o ID do tipos de projeto que possuem projeto e a clausula where filtrar as linhas da consulta principal que estão no conjunto retornado e ainda os nomes que não começam por A
Compartilhar