Sobes.tech
Middle+

Como projetaria uma consulta SQL à base de dados sem usar ORM?

sobes.tech IA

Resposta da IA

Para consultar dados da tabela users, onde o campo is_active seja true e role seja 'admin':

SELECT id, username, email
FROM users
WHERE is_active = TRUE AND role = 'admin';

Para inserir um novo registo na tabela products:

INSERT INTO products (name, price, category_id)
VALUES ('New Product', 19.99, 10);

Para atualizar um registo na tabela orders, definindo o estado 'shipped' para o pedido com id = 100:

UPDATE orders
SET status = 'shipped'
WHERE id = 100;

Para remover um registo da tabela comments por id:

DELETE FROM comments
WHERE id = 500;

Para uma junção básica das tabelas users e orders por user_id:

SELECT u.username, o.order_date, o.total_amount
FROM users AS u
JOIN orders AS o ON u.id = o.user_id;

Ao projetar, é importante considerar:

  • Segurança: Utilizar consultas parametrizadas para evitar injeções SQL.
  • Performance: Otimizar consultas usando índices, evitando SELECT * e verificando os planos de execução.
  • Legibilidade: Formatando as consultas, usando aliases para tabelas e campos.
  • Testes: Verificar as consultas em diferentes cenários e volumes de dados.

Exemplo de consulta parametrizada (conceitual, a implementação depende da linguagem e driver):

// Exemplo para consultar um utilizador por ID
SELECT id, username FROM users WHERE id = ?;