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 = ?;