Sobes.tech
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 = ?;