Buscar

BD QUIZ

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 15 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 15 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 15 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Revisar envio do teste: Clique aqui para iniciar o Quiz
SP_GRAD_686276_2201_01 2104-BANCO DE DADOS Quiz
REVISAR ENVIO DO TESTE: CLIQUE AQUI PARA INICIAR O QUIZ 
Usuário YASMIM KRYSTINNI RIBEIRO ROCHA
Curso 2104-BANCO DE DADOS
Teste Clique aqui para iniciar o Quiz
Iniciado 30/03/22 09:17
Enviado 30/03/22 09:26
Data de vencimento 30/03/22 23:59
Status Completada
Resultado da tentativa 10 em 10 pontos  
Tempo decorrido 8 minutos
Resultados exibidos Todas as respostas, Respostas enviadas, Respostas corretas, Comentários
Pergunta 1
Considere a seguinte tabela:
Tabela de municípios:
nome uf populacao area
São Paulo SP 12 252 023 1 521
Belo Horizonte MG 2 512 070 331
Sorocaba SP 679 378 450
Guaratinguetá SP 121 798 752
Rancharia SP 29 707 1 587
Altamira PA 114 594 159 533
Fonte: https://cidades.ibge.gov.br/
É correto afirmar que essa tabela:
Sala de Aula Tutoriais
1 em 1 pontos
YASMIM KRYSTINNI RIBEIRO ROCHA
7
https://senacsp.blackboard.com/webapps/blackboard/execute/courseMain?course_id=_178368_1
https://senacsp.blackboard.com/webapps/blackboard/content/listContent.jsp?course_id=_178368_1&content_id=_7961098_1&mode=reset
https://www.ead.senac.br/
https://senacsp.blackboard.com/webapps/portal/execute/tabs/tabAction?tab_tab_group_id=_193_1
https://senacsp.blackboard.com/webapps/portal/execute/tabs/tabAction?tab_tab_group_id=_210_1
https://senacsp.blackboard.com/webapps/login/?action=logout
Resposta
Selecionada:
c. 
Respostas: a. 
b. 
c. 
d.
e. 
Comentário
da
resposta:
Possui os campos “nome”, “uf”, “populacao” e “area”.
Possui 4 campos e 7 registros.
Possui 4 registros.
Possui os campos “nome”, “uf”, “populacao” e “area”.
U�liza todos os �pos de colunas presentes no MySQL: text e
integer.
Não é uma tabela; na verdade é uma tupla.
c. Cada coluna que vemos corresponde a um campo da tabela do banco
de dados. A primeira linha que vemos representa os nomes dos
campos; já as linhas subsequentes representam os registros da tabela
do banco de dados.
Pergunta 2
6.1.2.1 Orientações do usuário final para a segurança de senha
 
Use a opção --password = password ou -ppassword na linha de
comando. Por exemplo:
 
shell> mysql -u francis -pfrank db_name
 
Aviso
 
Isso é conveniente, mas inseguro. Em alguns sistemas, sua senha
fica visível para programas de status do sistema, como ps, que
podem ser invocados por outros usuários para exibir linhas de
comando. Os clientes MySQL geralmente substituem o argumento da
senha da linha de comandos com zeros durante sua sequência de
inicialização. No entanto, ainda há um breve intervalo durante o qual o
valor é visível. Além disso, em alguns sistemas, essa estratégia de
substituição é ineficaz e a senha permanece visível para o ps. (Os
sistemas SystemV Unix e talvez outros estejam sujeitos a esse
problema.)
 
Se o seu ambiente operacional estiver configurado para exibir seu
comando atual na barra de título da janela do terminal, a senha
1 em 1 pontos
Resposta
Selecionada:
a.
Respostas: a.
b.
c.
d.
e.
Comentário
da
resposta:
permanecerá visível enquanto o comando estiver em execução,
mesmo se o comando já estiver fora de vista.
 
MYSQL. MySQL 8.0 Reference Manual. 2020.
 
O trecho acima do manual do MySQL explica que um determinado método de
login possui um certo risco de segurança.
 
Indique qual seria uma alternativa segura ao método discutido.
Logar com a opção -p sem passar o parâmetro (senha) no comando, o
que fará com que a senha seja lida a par�r de um prompt seguro do
terminal.
Logar com a opção -p sem passar o parâmetro (senha) no comando, o
que fará com que a senha seja lida a par�r de um prompt seguro do
terminal.
Logar com a opção -p sem passar o parâmetro (senha) no comando, o
que fará com que o usuário anônimo seja u�lizado.
Logar como o discu�do, passando a senha na linha de comando, mas
especificando o uso de uma conexão SSL segura entre cliente e banco
de dados.
Logar como o discu�do, passando a senha na linha de comando, mas
usando um contêiner Docker.
O manual do MySQL está defasado. Na úl�ma versão disponível do
MySQL, o método discu�do é inteiramente seguro.
a. Com a senha sendo digitada em modo interativo (com a opção -
p), não há como outro programa capturar a senha digitada, a
menos que haja algum programa espião que capture as teclas
sendo digitadas.
Pergunta 3
Considere a seguinte consulta: 
SELECT nome FROM funcionario WHERE not(idade > 65 AND sexo = 'M' OR idade
> 60 AND sexo = 'F');
1 em 1 pontos
Resposta Selecionada:
d. 
Respostas:
a. 
Assinale a alternativa que indica um par válido de entrada e saída para essa
consulta.
Obs: Todas as entradas se referem à tabela “funcionario”.
Entrada:
 
+----------+-------+------+
| nome | idade | sexo |
+----------+-------+------+
| Moacir | 70 | M |
| Geraldo | 67 | M |
| Enzo | 23 | M |
| Karolyne | 23 | F |
| Josefina | 63 | F |
| Ivone | 70 | F |
+----------+-------+------+
 
Saída:
 
+----------+
| nome |
+----------+
| Enzo |
| Karolyne |
+----------+
Entrada:
 
+----------+-------+------+
| nome | idade | sexo |
+----------+-------+------+
| Moacir | 70 | M |
| Geraldo | 67 | M |
| Enzo | 23 | M |
| Josefina | 63 | F |
| Ivone | 70 | F |
+----------+-------+------+
 
Saída:
+----------+
| nome |
+----------+
| Enzo |
| Josefina |
| Ivone |
+----------+
b. 
c. 
Entrada:
 
+----------+-------+------+
| nome | idade | sexo |
+----------+-------+------+
| Moacir | 70 | M |
| Geraldo | 67 | M |
| Enzo | 23 | M |
| Josefina | 63 | F |
| Ivone | 70 | F |
+----------+-------+------+
 
Saída:
 
+----------+
| nome |
+----------+
| Moacir |
| Geraldo |
| Josefina |
| Ivone |
+----------+
Entrada:
 
+----------+-------+------+
| nome | idade | sexo |
+----------+-------+------+
| Moacir | 70 | M |
| Geraldo | 67 | M |
| Enzo | 23 | M |
| Karolyne | 23 | F |
| Josefina | 63 | F |
| Ivone | 70 | F |
+----------+-------+------+
 
Saída:
 
+----------+
| nome |
+----------+
| Moacir |
| Geraldo |
| Enzo |
| Karolyne |
| Josefina |
+----------+
d. 
e. 
Comentário
da
resposta:
Entrada:
 
+----------+-------+------+
| nome | idade | sexo |
+----------+-------+------+
| Moacir | 70 | M |
| Geraldo | 67 | M |
| Enzo | 23 | M |
| Karolyne | 23 | F |
| Josefina | 63 | F |
| Ivone | 70 | F |
+----------+-------+------+
 
Saída:
 
+----------+
| nome |
+----------+
| Enzo |
| Karolyne |
+----------+
Entrada:
 
+----------+-------+------+
| nome | idade | sexo |
+----------+-------+------+
| Moacir | 70 | M |
| Geraldo | 67 | M |
| Josefina | 63 | F |
| Ivone | 70 | F |
+----------+-------+------+
 
Saída:
 
…Syntax error…
D. A consulta irá selecionar todos os homens com idade até 65
anos e todas as mulheres com idade até 60 anos. Nas opções A e
B, temos “Ivone”, de 70 anos, sendo selecionada, por isso essas
opções estão erradas. Na opção C, temos “Josefina”, de 63 anos,
sendo selecionada, por isso essa opção também está errada. Como
a consulta não possui erro de sintaxe (opção E), a alternativa
correta é a D.
Pergunta 4
Como o MySQL utiliza índices
1 em 1 pontos
Resposta
Selecionada:
d.
Respostas: a.
b.
c.
d.
e.
 
Os índices são usados para rapidamente localizar linhas com valores de
coluna específicos. Sem um índice, o MySQL deve começar com a
primeira linha e depois ler a tabela inteira para encontrar as linhas
relevantes. Quanto maior a tabela, mais isso custa. Se a tabela �ver um
índice para as colunas em questão, o MySQL poderá determinar
rapidamente a posição a ser procurada no meio do arquivo de dados sem
precisar examinar todos os dados. Isso é muito mais rápido do que ler
todas as linhas sequencialmente.
 
(Traduzido da documentação oficial do MySQL. Disponível em: <h�ps://dev.mysql.com/doc/refman/8.0/en/mysql-indexes.html>. Acesso em: mar.
2020.
 
Sobre índices é correto afirmar que:
Considere uma base de dados construída para análises cien�ficas que
é montada uma vez e depois não é mais atualizada, e que possui
muitos dados. Nesse caso compensa construir diversos índices que
serão úteis para as consultas dos cien�stas, pois mesmo que o tempo
de criação dos índices seja grande, a alta velocidade das leituras
subsequentes compensará o tempo de criação dos índices.
A criação de índices é imprescindível para qualquer tabela do MySQL.
Considere um sistema muito acessado por usuários de todo o mundo
e uma tabela que armazene os eventos de login desses usuários.
Nesse caso, a criação de um índice nessa tabela de registro de login é
conveniente para acelerar o tempo de inserção, provendo uma melhor
experiência para o usuário.
Índices deixam inserções mais lentas e consomem mais espaço em
disco. Por essas razões devem ser usados apenas em tabelas com mais
de um milhão de registros. Só nesses casos os custos compensarão os
ganhos de velocidade de leitura.
Considere uma base de dados construída para análises cien�ficas que
é montada uma vez e depois não é mais atualizada, e que possui
muitos dados. Nesse caso compensa construir diversos índices que
serão úteis para as consultas dos cien�stas, pois mesmo que o tempo
de criação dos índices seja grande, a alta velocidade das leituras
subsequentes compensará o tempo de criação dos índices.
https://dev.mysql.com/doc/refman/8.0/en/mysql-indexes.html
Comentário
da
resposta:
Os índices são recursos u�lizados em bancos de dados an�gos. O
sistema de o�mização de consultas do MySQL (optimum lookup
process) dispensa a u�lização de índices em tabelas do MySQL.
d. Índices aceleram consultas e são muito u�lizados. Um problema
muito comum em sistemas lentos é a falta de índices em tabelas do
banco de dados (seja no MySQL ou em outros SGBDs). Por outro lado, o
preço a se pagar é: inserções mais lentas e mais espaço ocupado no
disco. Contudo, tabelas muito pequenas podem dispensar índices.
Pergunta 5
Analise a seguinte sequência de comandos realizada com o usuário administrador
(aquele que possui todos os privilégios sobre a instância do SGBD):
 
CREATE USER 'u1'@'%' IDENTIFIED BY 'senha';
CREATE USER 'u2'@'%' IDENTIFIED BY 'senha';
CREATE USER 'u3'@'%' IDENTIFIED BY 'senha';
 
CREATE DATABASE db1;
USE db1;
CREATE TABLE tb1 (id int, x int);
CREATE TABLE tb2 (id int, x int);
GRANT SELECT ON db1.* TO u1;
GRANT SELECT, DELETE ON db1.* TO u2;
GRANT UPDATE, INSERT ON db1.tb1 TO u3;
 
CREATE DATABASE db2;
USE db2;
CREATE TABLE tb1 (id int, x int);
CREATE ROLE r1;
GRANT ALL ON db2.* TO r1;
GRANT r1 TO u3;
SET DEFAULT ROLE ALL TO u3;
FLUSH PRIVILEGES;
 
Considerando que os comandos apresentados já foram executados (todos com
sucesso), associe a lista de comandos à lista de trechos das saídas produzidas
por esses comandos.
 
Lista de comandos (o sinal $ indica um comando realizado no sistema operacional
e o sinal > indica um comando realizado no MySQL):
 
(I) $ mysql -u u1 db2 -psenha
 
1 em 1 pontos
Resposta Selecionada: b. 
Respostas: a. 
b. 
c. 
d. 
e. 
Comentário
da
resposta:
(II) $mysql -u u2 db1 -psenha
> DROP tb2;
 
(III) $ mysql -u u3 db1 -psenha
> UPDATE tb1 SET x = 2*x WHERE x > 10;
 
(IV) $ mysql -u u3 db2 -psenha
> UPDATE tb1 SET x = 2*x WHERE x > 10;
 
Lista de trechos das saídas:
 
( ) SELECT command denied to user
 
( ) Access denied for user
 
( ) Query OK
 
( ) You have an error in your SQL syntax
 
A sequência correta dessa associação é:
(III) (I) (IV) (II)
(IV) (I) (III) (II)
(III) (I) (IV) (II)
(IV) (I) (II) (III)
(I) (II) (III) (IV)
(IV) (III) (II) (I)
b. O comando I resultará em acesso negado, pois u1 não tem
nenhum privilégio sobre db2. O comando II resultará em erro de
sintaxe, pois o comando correto seria “DROP TABLE tb2”. O
comando III resultará em erro de permissão, pois, apesar de ter
direito ao UPDATE, u3 não possui direito de SELECT em db1.tb1, e
a condição do WHERE impõe a necessidade de leitura da tabela.
Já o comando IV resultará em sucesso, pois u3 recebeu os
privilégios de r1, que tem acesso total a db2.
Pergunta 6
Níveis de abstração: da realidade ao dado
 
A evolução da humanidade pode ser encarada em parte como um
trajeto no sentido da aquisição progressiva da capacidade
1 em 1 pontos
Resposta Selecionada: e. 
Respostas: a. 
b. 
c. 
d. 
e. 
Comentário da resposta:
individual de abstração. De um ser intimamente ligado ao
universo e em particular à natureza, o ser humano individual
tornou-se ao longo do tempo um ente independente, isolado e
com cada vez maior capacidade de introspecção objetiva, isto é,
sem que este dependa de fatores subjetivos, temporais e
individuais.
 
(SETZER, V. W.; SILVA, F. S. C. da. Banco de dados: aprenda o
que são, melhore seu conhecimento, construa os seus. São
Paulo: Edgard Blücher, 2005.)
 
Assim como Setzer & Silva consideram a história da humanidade como um
crescente na capacidade de abstração, a história da programação de
computadores também pode ser encarada como uma busca por formas cada
vezes mais abstratas de dar instruções a máquinas.
 
Considere essas três formas de se utilizar o computador para se obter a previsão
do tempo:
 
I –
SELECT temperatura, precipitacao FROM previsao WHERE data = CURDATE();
 
II – Computador, por favor, me dê a previsão do tempo de hoje.
 
III -
temperatura = None
precipitacao = None
for prev in previsoes:
 if prev.data = date.today():
 temperatura = prev.temperatura
 precipitacao = prev.precipitacao
 print(“ temperatura=”, temperatura)
print(“precipitacao=”, precipitacao)
 
Assinale a alterna�va que corretamente ordena os itens acima em ordem crescente de
abstração.
III, I, II.
I, II, III.
III, II, I.
II, I, III.
Todas os itens estão no mesmo nível de abstração.
III, I, II.
Texto feedback
Pergunta 7
Resposta Selecionada:
e. 
Respostas: a. 
b. 
Considere uma tabela que registre as doações recebidas pelos partidos políticos
para as eleições de 2014 no estado de São Paulo (Fonte: http://dados.gov.br/dat
aset/prestacao-de-contas-das-campanhas-eleitorais).
 
Considere que a tabela doacoes possui um schema conforme o seguinte
comando:
 
CREATE TABLE doacoes (
 UF,
 SiglaPartido,
 DataReceita,
 Valor REAL,
 TipoReceita,
 FonteRecurso,
 EspecieRecurso,
 DescricaoReceita,
 DocumentoDoador,
 NomeDoador );
 
Considere agora a seguinte consulta SQL:
 
SELECT SiglaPartido, sum(Valor) as total_recebido FROM doacoes GROUP BY
SiglaPartido ORDER BY total_recebido DESC LIMIT 5;
 
Assinale a alterna�va que indica qual saída o comando acima pode produzir.
SiglaPartido total_recebido
------------ --------------
PSDB 57058765.03 
PT 37767199.76 
SD 18960025.0 
PSD 17706828.38 
PMDB 8748201.0 
… You have an error in your SQL syntax ...
SiglaPartido total_recebido
------------ --------------
PCO 91.66 
PCB 6950.0 
PRTB 7327.9 
PDT 10000.0 
PSC 18620.0
1 em 1 pontos
http://dados.gov.br/dataset/prestacao-de-contas-das-campanhas-eleitorais
c. 
d. 
e. 
Comentário
da
resposta:
SiglaPartido Valor 
------------ ----------
PSDB 50000.0 
PSB 50000.0 
PT 700000.0 
PT 1615000.0
PT 500000.0 
SiglaPartido total_recebido
------------ --------------
PSDB 57058765.03 
SiglaPartido total_recebido
------------ --------------
PSDB 57058765.03 
PT 37767199.76 
SD 18960025.0 
PSD 17706828.38 
PMDB 8748201.0 
e. O “GROUP BY SiglaPar�do” indica que cada par�do deve aparecer
somente uma vez na saída. O LIMIT 5 indica que a saída deve ter
apenas 5 registros. O “ORDER BY total_recebido DESC” indica que a
coluna total_recebido deve estar em ordem decrescente.
Pergunta 8
Infodeck introdutório aos bancos de dados NoSQL
 
Este texto forneceuma breve introdução aos bancos de dados
NoSQL. Nossa intenção é explicar ao público técnico-gerencial
por que os bancos de dados NoSQL são importantes.
Descrevemos por que os bancos de dados relacionais têm sido
tão dominantes e quais forças levaram o NoSQL a quebrar esse
domínio. Discutimos os principais benefícios de uma abordagem
NoSQL, mas enfatizamos que os bancos de dados relacionais
ainda têm um grande papel a desempenhar, por isso nossa
ênfase na persistência poliglota.
 
FOWLER, M.; SADALAGE, P. Infodeck introdutório aos
bancos de dados NoSQL. 2012. https://martinfowler.com/article
s/nosql-intro. Acesso em: 15 jul. 2020.
 
Assinale a alterna�va que melhor explica o que os autores do texto citado querem
dizer com “persistência poliglota”.
1 em 1 pontos
https://martinfowler.com/articles/nosql-intro
Resposta
Selecionada:
c.
Respostas: a.
b.
c.
d.
e.
Comentário
da resposta:
Novos sistemas con�nuarão usando os SGBDs relacionais, mas ao
mesmo tempo u�lizarão outros bancos NoSQL para propósitos
específicos.
“Persistência poliglota” diz respeito aos vários �pos de bancos NoSQL
disponíveis (excluindo, portanto, os bancos relacionais).
O sucesso do movimento NoSQL se dá principalmente porque esses
novos bancos suportam uma grande variedade de linguagens de
programação (Java, .NET, Python, Ruby, etc.).
Novos sistemas con�nuarão usando os SGBDs relacionais, mas ao
mesmo tempo u�lizarão outros bancos NoSQL para propósitos
específicos.
A “persistência poliglota” consiste numa Babel de bancos NoSQL que
não é sustentável a longo prazo.
A persistência poliglota é uma camada genérica de inferência entre os
bancos de dados e as aplicações.
c. A “persistência poliglota” se refere a uma só aplicação utilizando
diversos tipos de persistência: seja relacional, seja NoSQL.
Pergunta 9
Resposta c.
Informação
Um computador só trata de dados, sendo incapaz de associar significados a eles. Assim, é válido chamar essa
máquina de “processador de dados”; é inválido dizer que ela “processa informações”. Tudo se passa com o
computador como se ele lidasse apenas com dados (…) De fato, o computador não “compreende” absolutamente
nada. O computador é uma máquina sintática, pois as relações entre dados são sempre feita de maneira estrutural,
por exemplo por contiguidade física dentro do dispositivo de armazenamento ou por meio dos chamados
“ponteiros”. Um dado “aponta” para outro, se ao lado do primeiro coloca-se o endereço do segundo, indicando onde
o último está armazenado. Um computador pode ser programado para reconhecer padrões, como por exemplo a
escrita manual cursiva. Mas isso é feito de maneira puramente matemática, com uma quantidade tão enorme de
cálculos que deveria provocar profunda admiração pelo ser humano que, parece-nos, obviamente não calcula nada
enquanto lê. Ao lermos, estamos continuamente associando conceitos para reconhecer letras e palavras, e muito
mais ainda para compreender uma frase.
(SETZER, V. W.; SILVA, F. S. C. da. Banco de dados: aprenda o que são, melhore
seu conhecimento, construa os seus. São Paulo: Edgard Blücher, 2005.)
Segundo o texto acima, os autores reconhecem que:
1 em 1 pontos
Selecionada:
Respostas: a.
b.
c.
d.
e.
Comentário da
resposta:
Máquinas compreendem apenas dados e suas estruturas; a
transformação de dados em informação é restrita a humanos.
Máquinas inteligentes poderão processar informações como humanos,
graças à detecção de padrões.
Sofis�cados cálculos matemá�cos podem atribuir semân�ca a
operações robó�cas.
Máquinas compreendem apenas dados e suas estruturas; a
transformação de dados em informação é restrita a humanos.
Por mais que uma máquina não "compreenda" como seres humanos,
isso não impede as máquinas de armazenar e manipular informações.
O reconhecimento algorítmico de letras cursivas transforma o dado
(imagem) em informação (texto).
c. O autor conceitua que o computador se relaciona apenas com
dados, não com informações.
Pergunta 10
Resposta
Selecionada:
a.
Respostas: a.
b.
c.
Considere as seguintes tabelas:
CREATE TABLE paciente (id int primary key, nome text); 
CREATE TABLE medico (id int primary key, nome text); 
CREATE TABLE consulta (data date, id_paciente int, id_medico int);
Assinale a alternativa que indica uma consulta válida para identificarmos os
médicos que não possuem consulta marcada na data de hoje.
SELECT DISTINCT m.nome as nome_medico FROM medico m LEFT
JOIN consulta c ON c.id_medico = m.id WHERE data != curdate() or
data is null;
SELECT DISTINCT m.nome as nome_medico FROM medico m LEFT
JOIN consulta c ON c.id_medico = m.id WHERE data != curdate() or
data is null;
SELECT DISTINCT m.nome as nome_medico FROM medico m JOIN
consulta c ON c.id_medico = m.id WHERE data != curdate() or data is
null;
1 em 1 pontos
Quarta-feira, 30 de Março de 2022 09h26min20s BRT
d.
e.
Comentário
da
resposta:
SELECT DISTINCT m.nome as nome_medico FROM medico m RIGHT
JOIN consulta c ON c.id_medico = m.id WHERE data != curdate() or
data is null;
SELECT DISTINCT m.nome as nome_medico FROM medico m LEFT
JOIN consulta c WHERE c.id_medico = m.id and data != curdate() or
data is null;
Dada a modelagem apresentada, não é possível realizar a consulta
desejada com um único SELECT.
a. Com um LEFT JOIN, teremos os médicos associados a alguma
consulta e também os médicos sem consultas. Para que a consulta
devolva os médicos sem consulta alguma marcada, temos o “data
is null”. Para que a consulta devolva os médicos com consulta
marcada em outros dias que não o dia corrente, temos o “data !=
curdate()”. Sem o DISTINCT, a consulta SQL devolveria uma linha
por consulta médica, o que poderia repetir os nomes dos médicos.
Como queremos listar somente os médicos, o DISTINCT é
desejável.
← OK

Continue navegando