Middle+
Come progettaresti una query SQL al database senza usare ORM?
sobes.tech AI
Risposta dell'AI
Per estrarre dati dalla tabella users, dove il campo is_active è true e role è 'admin':
SELECT id, username, email
FROM users
WHERE is_active = TRUE AND role = 'admin';
Per inserire un nuovo record nella tabella products:
INSERT INTO products (name, price, category_id)
VALUES ('New Product', 19.99, 10);
Per aggiornare un record nella tabella orders, impostando lo stato a 'shipped' per l'ordine con id = 100:
UPDATE orders
SET status = 'shipped'
WHERE id = 100;
Per eliminare un record dalla tabella comments per id:
DELETE FROM comments
WHERE id = 500;
Per una semplice join tra le tabelle users e orders su 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;
Durante la progettazione, è importante considerare:
- Sicurezza: Utilizzare query parametrizzate per prevenire injection SQL.
- Performance: Ottimizzare le query usando indici, evitando
SELECT *e controllando i piani di esecuzione. - Leggibilità: Formattare le query, usare alias per tabelle e campi.
- Test: Verificare le query in diversi scenari e volumi di dati.
Esempio di query parametrizzata (concettuale, l'implementazione dipende dal linguaggio e dal driver):
// Esempio per recuperare un utente per ID
SELECT id, username FROM users WHERE id = ?;