WorksheetsTESTE 3TIG
Total questions: 51
Worksheet time: 51mins
Qual é a configuração necessária para conectar uma aplicação Flask a uma base de dados MySQL?
A) Instalar o MySQL Workbench e configurá-lo no XAMPP
B) Configurar o servidor MySQL diretamente no Flask com comandos SQL
C) Configurar o ficheiro config.py com o IP e a porta de rede da aplicação
D) Instalar o módulo mysql-connector-python e definir os dados de acesso no Flask
Qual dos seguintes comandos envia a variável ‘data’ para um ficheiro HTML chamado home.html num endpoint do Flask?
A) return render("home.html", data=dados)
B) return render_template("home.html", dados=data)
C) return render_template("home.html", data=dados)
D) return render("home.html", data)
Para enviar múltiplas variáveis (como clientes e encomendas) para um template HTML, qual das opções é correta?
A) return render_template("dashboard.html", clientes, encomendas)
B) return render_template("dashboard.html", clientes=clientes, encomendas=encomendas)
C) render_template("dashboard.html", clientes and encomendas)
D) return dashboard.html(clientes, encomendas)
Para enviar múltiplas variáveis (users, products) para um template HTML, qual das opções é correta?
A) return render_template("dashboard.html", users, products)
B) return render_template("dashboard.html", users=users, products=products)
C) render_template("dashboard.html", users and products)
D) return dashboard.html(users, products)
Qual é o método do Flask que é utilizado para aceder a informações enviadas através de um formulário com o método POST?
A) request.form
B) request. body_content
C) request.body_form
Se um campo de formulário tiver o atributo name="email", como é que o Flask pode obter o seu valor numa rota?
A) email = request.form['email']
B) email = request.form.data['email']
C) email = request.query.get('email')
D) email = request.form_body['email']
Para enviar dados do formulário ao servidor usando Flask, qual é a a configuração correta que é usada na rota?
A) @app.route('/submit', methods=['POST', 'GET'])
B) @app.route('/submit', methods=['POST']) e @app.route('/submit', methods=['GET'])
C) @app.route('/submit', methods=['GET'])
D) @app.route('/submit', methods=['POST'])
Qual é a sintaxe correta para exibir o conteúdo de uma variável ‘nome_cliente’ num template HTML utilizando Flask?
A) {nome_cliente }
B) {% nome_cliente %}
C) {= nome_cliente =}
D) {{ nome_cliente }}
Qual é a sintaxe correta para exibir uma lista de artigos num template HTML utilizando Flask?
A) {% for artigo in artigos %} {% artigo.nome %} {% end %}
B) {% for artigo in artigos %} {{ artigo.nome }} {% endfor %}
C) {% each artigo in artigos %} {{ artigo.nome }} {% endfor %}
D) {% for artigos in artigo %} {% artigo.nome %} {% endfor %}
O que faz o código abaixo?
cursor = conn.cursor()
cursor.execute("CREATE TABLE funcionarios ( id INT PRIMARY KEY AUTO_INCREMENT, nome VARCHAR(20), salario DECIMAL(10, 2) );")
A) Define que id é a chave primária da tabela funcionarios
B) Cria uma tabela funcionarios com colunas id, nome e salario
C) Insere dados na tabela funcionarios
D) Insere nomes, salários e um id (de forma automática) na tabela funcionarios
Qual é o comando Python que insere um novo cliente na tabela clientes de forma segura?
A) cursor.execute("INSERT INTO clientes VALUES ('Maria', 'maria@example.com')")
B) cursor.execute("INSERT INTO clientes (nome, email) VALUES ('Maria', 'maria@example.com')")
C) cursor.execute("INSERT INTO clientes (nome, email) VALUES (%s, %s)", ("Maria", "maria@example.com"))
D) cursor.insert("clientes", ("Maria", "maria@example.com"))
Para consultar todos os dados da tabela clientes, qual é o comando correto?
A) cursor.select("clientes")
B) cursor.run("SELECT * FROM clientes")
C) cursor.query("SELECT * FROM clientes")
D) cursor.execute("SELECT * FROM clientes")
Após realizar uma consulta, como se pode obter todos os resultados?
A) cursor.get_all()
B) cursor.fetch_all()
C) cursor.fetchall()
D) cursor.fetchall_results()
Qual das seguintes opções configura corretamente uma conexão à base de dados chamada 'turma'?
Depois de se efetuar a conexão a uma base de dados (db = mysql.connector.connect (…)), como se cria um cursor para executar comandos SQL?
A) cursor = db.cursor()
B) db = cursor.cursor()
C) conn.execute()
D) cursor = conn.cursor()
Qual é o objetivo do uso do método fetchone() numa consulta SQL com Python?
A) Retorna apenas a primeira linha do resultado da consulta ou None se não houver resultados.
B) Retorna todas as colunas da tabela sem executar uma consulta.
C) Executa uma nova consulta na base de dados e retorna todos os resultados.
D) Fecha a conexão com a base de dados após executar uma consulta.
Para fechar a conexão (conn) com a base de dados, qual o comando que está correto?
A) conn.close()
B) fechar. conn ()
C) conn.disconnect()
D) close.conn()
Qual das seguintes opções é a porta padrão utilizada pelo MySQL para conexões de clientes?
A) 5432
B) 1521
C) 3306
D) 8080
Qual é o propósito da linha cursor = conn.cursor() ao trabalhar com bases de dados em Python?
A) Estabelece uma conexão inicial com a base de dados.
B) Cria um objeto cursor que permite executar comandos SQL e manipular resultados.
C) Fecha a conexão com a base de dados após executar uma consulta.
D) Realiza automaticamente uma consulta e devolve os dados em formato de lista.
Qual das alternativas a seguir permite que o cursor retorne os dados de uma consulta em formato de dicionário (com os nomes das colunas como chaves) em vez de tuplas?
A) cursor = conn.cursor(dictionary=True)
B) cursor = conn.cursor(dict_format=True)
C) cursor = conn.cursor(format="dict")
D) cursor = conn.cursor(dictionary.True)
Quando usamos cursor = conn.cursor() sem parâmetros adicionais para uma consulta SQL, como os dados são devolvidos?
A) Numa lista de tuplas, onde cada tupla representa uma linha da tabela.
B) Num dicionário de listas, onde cada chave é o nome da coluna e os valores são listas dos dados correspondentes.
C) Numa lista de dicionários, onde cada dicionário representa uma linha da tabela com pares de chave-valor para as colunas.
D) Numa lista de listas, onde cada lista representa uma coluna da tabela.
Após completar todas as operações na base de dados, qual é a sequência correta de comandos para fechar a conexão e libertar o cursor?
A) cursor.close()
conn.close()
B) conn.close()
cursor.close()
C) close.cursor ()
close.conn()
D) close.conn()
close.cursor ()
Para estabelecer uma conexão com uma base de dados MySQL usando mysql.connector e obter dados da tabela produtos temos o código da imagem.
O código está correto ou incorreto? Se houver um erro, reescreve a linha do erro corretamente.
Para realizar uma consulta em Flask e enviar dados produtos para produtos.html temos o código da imagem.
O código está correto ou incorreto? Se houver um erro, reescreve a linha do erro corretamente.
Para passar múltiplas variáveis ao template detalhes.html numa única linha de código, temos o seguinte exemplo:
return render_template("detalhes.html", produto=produto, utilizador=utilizador)
O código está correto ou incorreto? Se houver um erro, reescreve a linha corretamente.
Qual é o comando que consulta os clientes que têm no máximo 10.000 pontos?
A) cursor.execute("SELECT nome FROM clientes WHERE pontos < 10000")
B) cursor.execute("SELECT nome FROM clientes WHERE pontos >= 10000")
C) cursor.execute("SELECT nome FROM clientes WHERE pontos = 10000")
D) cursor.execute("SELECT nome FROM clientes WHERE pontos <= 10000")
Como somar todos os valores da coluna compras na tabela clientes?
A) cursor.execute("SUM(compras) FROM clientes")
B) cursor.execute("SELECT SUM(compras) FROM clientes")
C) cursor.query("SELECT SUM(compras) FROM clientes")
D) cursor.run("SUM(compras) FROM clientes")
Para contar quantos clientes existem na tabela clientes, qual é o código que está correto?
A) cursor.execute("COUNT(id) FROM clientes")
B) cursor.query("COUNT(id) FROM clientes")
C) cursor.execute("SELECT COUNT(id) FROM clientes")
D) cursor.execute("SELECT id COUNT() FROM clientes")
Considere a tabela funcionarios com colunas departamento e salario. Explique o que será retornado pela seguinte consulta SQL:
SELECT departamento, AVG(salario) FROM funcionarios GROUP BY departamento;
Considere a tabela funcionarios. Qual será o efeito da execução da seguinte query SQL?
UPDATE funcionarios SET salario = 5500 WHERE nome = "João";
Explique o que acontecerá com os registos na tabela e em que condições a query não fará nenhuma alteração.
Para obter uma lista de funcionários junto com o departamento onde trabalham, considere as tabelas funcionarios e departamentos, onde a coluna departamento_id em funcionarios referencia id em departamentos. Qual das opções abaixo utiliza um JOIN corretamente para essa consulta?
A) cursor.query("SELECT funcionarios.id, departamentos.nome WHERE funcionarios.departamento_id = departamentos.id")
B) cursor.execute("SELECT * FROM funcionarios WHERE funcionarios.departamento_id = departamentos.id")
C) cursor.execute("SELECT * FROM funcionarios JOIN departamentos ON funcionarios.departamento_id = departamentos.id")
D) cursor.execute("JOIN funcionarios, departamentos ON funcionarios.departamento_id = departamentos.id")
Para apagar um funcionário da tabela com id=10 de forma segura, o código seguinte está…
cursor.execute("DELETE FROM funcionarios WHERE id = 10")
conn.commit()
A) Correto
B) Incorreto: commit() deve ser chamado no cursor
C) Incorreto: o comando DELETE está incorreto
D) Incorreto: falta parametrização segura na consulta SQL
Qual é o comando SQL correto para inserir um novo registo na tabela fornecedores com os campos nome e telefone?
A) INSERT INTO fornecedores VALUES (nome, telefone);
B) ADD INTO fornecedores (nome, telefone) VALUES ('Silva e Filhos', 934567652');
C) INSERT INTO fornecedores (nome, telefone) VALUES ('Silva e Filhos', '21876934567652');
D) INSERT fornecedores (nome, telefone) ('Silva e Filhos', '934567652'');
Qual é o comando SQL apropriado para atualizar o campo telefone de um fornecedor específico na tabela fornecedores, identificando-o pelo campo fornecedor_id?
A) MODIFY fornecedores SET telefone TO novo_telefone FOR fornecedor_id = valor_id;
B) UPDATE fornecedores SET telefone = 'novo_telefone' WHERE fornecedor_id = valor_id;
C) SET telefone = novo_telefone WHERE fornecedor_id = valor_id IN fornecedores;
D) UPDATE fornecedores telefone SET novo_telefone WHERE fornecedor_id = valor_id;
Como remover um produto da tabela produtos com base no seu código de barras que é 123456789012?
A) DELETE produtos WHERE codigo_barras = '123456789012';
B) DELETE FROM produtos WHERE codigo_barras = ‘123456789012';
C) REMOVE produto FROM produtos WHERE codigo_barras = '123456789012';
D) DROP produto WHERE codigo_barras = '123456789012';
Qual das seguintes consultas devolve todos os produtos da categoria "Eletrónica" adicionados ao inventário depois de 2020?
A) SELECT * FROM produtos WHERE categoria = 'Eletrónica' OR ano_adicao > 2020;
B) SELECT * FROM produtos WHERE categoria = 'Eletrónica' AND ano_adicao > 2020;
C) SELECT * FROM produtos WHERE categoria LIKE 'Eletrónica' AND ano_adicao >= 2020;
D) SELECT * FROM produtos WHERE ano_adicao > 2020 AND 'Eletrónica' = categoria;
Qual é a consulta que devolve o número total de registos na tabela vendas?
A) SELECT COUNT(*) FROM vendas;
B) SELECT SUM(*) FROM vendas;
C) SELECT TOTAL FROM vendas;
D) SELECT ALL(*) FROM vendas;
Para calcular a soma de todos os valores na coluna preco da tabela produtos, qual é a consulta correta?
A) SELECT SUM.preco FROM produtos;
B) SELECT SUM(preco) FROM produtos;
C) SELECT (SUM.preco)) FROM produtos;
D) SELECT SUM.COUNT(preco) FROM produtos;
Qual das seguintes consultas conta o número de valores únicos na coluna categoria da tabela produtos?
A) SELECT COUNT(categoria) FROM produtos;
B) SELECT UNIQUE(categoria) FROM produtos;
C) SELECT COUNT(DISTINCT categoria) FROM produtos;
D) SELECT DISTINCT COUNT(categoria) FROM produtos;
Qual a consulta que devolve o valor máximo na coluna quantidade da tabela stock?
A) SELECT MAXIMO.quantidade FROM stock;
B) SELECT BIG(quantidade) FROM stock;
C) SELECT MAX(quantidade) FROM stock;
D) SELECT MAXIMO(quantidade) FROM stock;
Para encontrar o menor valor na coluna salario da tabela funcionarios, qual é a consulta correta?
A) SELECT MINIMUM.salario FROM funcionarios;
B) SELECT SMALL.salario FROM funcionarios;
C) SELECT MIN(salario) FROM funcionarios;
D) SELECT MINIMUM(salario) FROM funcionarios;
Para encontrar departamentos com salários médios acima de 5000, qual consulta usa HAVING corretamente?
A) SELECT departamento, AVG(salario) FROM funcionarios WHERE AVG(salario) > 5000;
B) SELECT departamento, AVG(salario) FROM funcionarios GROUP BY departamento HAVING AVG(salario) > 5000;
C) SELECT departamento, AVG(salario) FROM funcionarios HAVING AVG(salario) > 5000;
D) SELECT departamento FROM funcionarios GROUP HAVING AVG(salario) > 5000;
Para selecionar cursos com mais de 10 estudantes matriculados, qual consulta é correta?
A) SELECT curso_id, COUNT(*) FROM matriculas GROUP BY curso_id HAVING COUNT(*) > 10;
B) SELECT curso_id, COUNT(*) FROM matriculas WHERE COUNT(*) > 10;
C) SELECT curso_id, COUNT(*) HAVING COUNT(*) > 10 FROM matriculas;
D) SELECT curso_id FROM matriculas GROUP BY COUNT(*) > 10;
Qual é o objetivo da seguinte consulta SQL (com subconsulta)?
SELECT nome FROM professores WHERE idprofessor = (SELECT idprofessor FROM notas WHERE disciplina = 'Matemática' ORDER BY classificacao ASC LIMIT 1);
A) Selecionar todos os nomes dos professores que lecionam a disciplina 'Matemática'.
B) Selecionar o nome do professor que deu a menor classificação em 'Matemática'.
C) Selecionar o nome do professor que deu a melhor classificação em 'Matemática'.
D) Selecionar o nome de todos os professores que têm notas associadas a eles.
Qual a consulta que devolve todos os estudantes com notas acima da média?
A) SELECT * FROM estudantes WHERE nota > AVG(nota);
B) SELECT * FROM estudantes HAVING nota > AVG(nota);
C) SELECT * FROM estudantes WHERE nota > (SELECT AVG(nota) FROM estudantes);
D) SELECT * FROM estudantes WHERE nota > ALL (SELECT AVG(nota));
Qual é o comando SQL correto para selecionar todos os campos da tabela livros onde o autor é "José Saramago"?
A) SELECT * FROM livros WHERE autor = 'José Saramago';
B) SELECT * FROM livros WHERE autor == 'José Saramago';
C) SELECT ALL FROM livros WHERE autor = 'José Saramago';
D) SELECT * livros WHERE autor == 'José Saramago';
Qual é a consulta que devolve o total de vendas por mês, apenas para meses com vendas superiores a 1000 euros?
A) SELECT MONTH(data_venda), SUM(valor) FROM vendas GROUP BY MONTH(data_venda) HAVING SUM(valor) > 1000;
B) SELECT MONTH(data_venda), SUM(valor) FROM vendas WHERE SUM(valor) > 1000;
C) SELECT MONTH(data_venda), SUM(valor) FROM vendas GROUP BY MONTH(data_venda) WHERE SUM(valor) > 1000;
D) SELECT MONTH(data_venda), SUM(valor) FROM vendas HAVING SUM(valor) > 1000;
Qual comando SQL é usado para remover uma tabela chamada "livros" da Base de Dados?
A) ALTER TABLE livros DROP;
B) DROP TABLE livros;
C) REMOVE TABLE livros;
D) DELETE TABLE livros;
Para listar as editoras que têm pelo menos 7 livros publicados, qual é a consulta adequada?
A) SELECT editora_id, COUNT(*) FROM livros GROUP BY editora_id HAVING COUNT(*) >= 5;
B) SELECT editora_id, COUNT(*) FROM livros HAVING COUNT(*) >= 7 GROUP BY editora_id;
C) SELECT editora_id, COUNT(*) FROM livros WHERE COUNT(*) >= 7 GROUP BY editora_id;
D) SELECT editora_id FROM livros GROUP BY editora_id HAVING COUNT(*) = 7;
Qual das seguintes consultas retorna os autores que têm mais de três livros registados?
A) SELECT autor, COUNT(*) FROM livros HAVING COUNT(*) > 3 GROUP BY autor;
B) SELECT DISTINCT autor FROM livros WHERE COUNT(*) > 3;
C) SELECT autor FROM livros WHERE COUNT(*) > 3;
D) SELECT autor FROM livros GROUP BY autor HAVING COUNT(*) > 3;
Para encontrar o total de vendas por editora e apenas exibir editoras com mais de 50 vendas, qual consulta é correta?
A) SELECT editora_id, SUM(venda) FROM vendas GROUP BY editora_id HAVING COUNT(*) > 50;
B) SELECT editora_id, COUNT(*) FROM vendas GROUP BY editora_id HAVING COUNT(*) > 50;
C) SELECT editora_id, SUM(venda) FROM vendas GROUP BY editora_id HAVING SUM(venda) > 50;
D) SELECT editora_id, SUM(venda) FROM vendas HAVING COUNT(*) > 50;
