Buscar

banco de dados 2 _ Passei Direto2

Prévia do material em texto

Impresso por meaddsmari2, E-mail meaddsmari2@gmail.com para uso pessoal e privado. Este material pode ser protegido por direitos
autorais e não pode ser reproduzido ou repassado para terceiros. 30/05/2022 18:27:42
26/05/2021 Revisar envio do teste: Clique aqui para iniciar o Quiz &ndash...
https://senacsp.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_19036311_1&course_id=_154582_1&content_id=_6781… 11/16
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 |
+----------+
Utilizamos cookies essenciais e tecnologias semelhantes de acordo com a nossa Política de Privacidade e, ao continuar você concorda com essas condições. Ok
https://sobreuol.noticias.uol.com.br/normas-de-seguranca-e-privacidade
Impresso por meaddsmari2, E-mail meaddsmari2@gmail.com para uso pessoal e privado. Este material pode ser protegido por direitos
autorais e não pode ser reproduzido ou repassado para terceiros. 30/05/2022 18:27:42
26/05/2021 Revisar envio do teste: Clique aqui para iniciar o Quiz &ndash...
https://senacsp.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_19036311_1&course_id=_154582_1&content_id=_6781… 12/16
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 8
Considere a seguinte tabela de pratos disponíveis em um restaurante: 
1 em 1 pontos
Utilizamos cookies essenciais e tecnologias semelhantes de acordo com a nossa Política de Privacidade e, ao continuar você concorda com essas condições. Ok
https://sobreuol.noticias.uol.com.br/normas-de-seguranca-e-privacidade
Impresso por meaddsmari2, E-mail meaddsmari2@gmail.com para uso pessoal e privado. Este material pode ser protegido por direitos
autorais e não pode ser reproduzido ou repassado para terceiros. 30/05/2022 18:27:42
26/05/2021 Revisar envio do teste: Clique aqui para iniciar o Quiz &ndash...
https://senacsp.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_19036311_1&course_id=_154582_1&content_id=_6781… 13/16
Resposta
Selecionada:
b.
Respostas: a.
b.
c.
d.
e.
Comentário
da
resposta:
CREATE TABLE pratos (nome text, pais_origem text, vegetariano boolean, preco
float); 
Considerando essa tabela, assinale a alternativa com o comando que torna
possível a execução da seguinte consulta:
 
SELECT pais_origem as pais, count(*) as qtd_pratos_vegetarianos FROM
pratos_vegetarianos GROUP BY pais_origem;
+--------+-------------------------+
| pais | qtd_pratos_vegetarianos |
+--------+-------------------------+
| Índia | 10 |
| Itália | 7 |
| Brasil | 4 |
+--------+-------------------------+
CREATE VIEW pratos_vegetarianos AS SELECT nome, pais_origem
FROM pratos WHERE vegetariano;
CREATE SUBSELECT pratos_vegetarianos AS SELECT nome, pais_origem
AS pais FROM pratos WHERE vegetariano;
CREATE VIEW pratos_vegetarianos AS SELECT nome, pais_origem
FROM pratos WHERE vegetariano;
CREATE SUBSELECT pratos_vegetarianos AS SELECT nome, pais_origem
FROM pratos WHERE vegetariano;
CREATE VIEW pratos_vegetarianos FROM SELECT nome, pais_origem
FROM pratos WHERE vegetariano;
CREATE VIEW FOR pratos AS SELECT * FROM pratos_vegetarianos
WHERE vegetariano;
b. Para que a consulta funcione, é preciso criar uma view para a
tabela pratos. E a sintaxe para criar uma é CREATE VIEWview
<nome-da-view> AS <SELECT ...>.
Pergunta 9 1 em 1 pontos
Utilizamos cookies essenciais e tecnologias semelhantes de acordo com a nossa Política de Privacidade e, ao continuar você concorda com essas condições. Ok
https://sobreuol.noticias.uol.com.br/normas-de-seguranca-e-privacidade
Impresso por meaddsmari2, E-mail meaddsmari2@gmail.com para uso pessoal e privado. Este material pode ser protegido por direitos
autorais e não pode ser reproduzido ou repassado para terceiros. 30/05/2022 18:27:42
26/05/2021 Revisar envio do teste: Clique aqui para iniciar o Quiz &ndash...
https://senacsp.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_19036311_1&course_id=_154582_1&content_id=_6781… 14/16
Resposta
Selecionada:
a.
Respostas: a.
b.
c.
d.
e.
Comentário
da
resposta:
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;
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.
Pergunta 10
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):
1 em 1 pontos
Utilizamos cookies essenciais e tecnologias semelhantes de acordo com a nossa Política de Privacidade e, ao continuar você concorda com essas condições. Ok
https://sobreuol.noticias.uol.com.br/normas-de-seguranca-e-privacidade
Impressopor meaddsmari2, E-mail meaddsmari2@gmail.com para uso pessoal e privado. Este material pode ser protegido por direitos
autorais e não pode ser reproduzido ou repassado para terceiros. 30/05/2022 18:27:42
26/05/2021 Revisar envio do teste: Clique aqui para iniciar o Quiz &ndash...
https://senacsp.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_19036311_1&course_id=_154582_1&content_id=_6781… 15/16
 
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
 
(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
Utilizamos cookies essenciais e tecnologias semelhantes de acordo com a nossa Política de Privacidade e, ao continuar você concorda com essas condições. Ok
https://sobreuol.noticias.uol.com.br/normas-de-seguranca-e-privacidade
Impresso por meaddsmari2, E-mail meaddsmari2@gmail.com para uso pessoal e privado. Este material pode ser protegido por direitos
autorais e não pode ser reproduzido ou repassado para terceiros. 30/05/2022 18:27:42
26/05/2021 Revisar envio do teste: Clique aqui para iniciar o Quiz &ndash...
https://senacsp.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_19036311_1&course_id=_154582_1&content_id=_6781… 16/16
Quarta-feira, 26 de Maio de 2021 16h26min21s BRT
Resposta Selecionada:
b. 
Respostas:
a. 
b. 
c. 
d. 
e. 
Comentário
da
resposta:
 
( ) 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.
← OK
Utilizamos cookies essenciais e tecnologias semelhantes de acordo com a nossa Política de Privacidade e, ao continuar você concorda com essas condições. Ok
https://sobreuol.noticias.uol.com.br/normas-de-seguranca-e-privacidade

Continue navegando