Middle+
Ako by ste navrhli SQL dopyt k databáze bez použitia ORM?
sobes.tech AI
Odpoveď od AI
Na načítanie údajov z tabuľky users, kde je pole is_active rovné true a role je 'admin':
SELECT id, username, email
FROM users
WHERE is_active = TRUE AND role = 'admin';
Na vloženie nového záznamu do tabuľky products:
INSERT INTO products (name, price, category_id)
VALUES ('New Product', 19.99, 10);
Na aktualizáciu záznamu v tabuľke orders, nastavenie stavu na 'shipped' pre objednávku s id = 100:
UPDATE orders
SET status = 'shipped'
WHERE id = 100;
Na odstránenie záznamu z tabuľky comments podľa id:
DELETE FROM comments
WHERE id = 500;
Na základné spojenie tabuliek users a orders podľa 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;
Pri navrhovaní je dôležité brať do úvahy:
- Bezpečnosť: Používajte parametrizované dotazy na prevenciu SQL injekcií.
- Výkon: Optimalizujte dotazy pomocou indexov, vyhýbajte sa
SELECT *a kontrolujte plány vykonávania. - Čitateľnosť: Formátujte dotazy, používajte aliasy pre tabuľky a polia.
- Testovanie: Testujte dotazy v rôznych scenároch a objemoch dát.
Príklad parametrizovaného dotazu (konceptuálne, implementácia závisí od jazyka a ovládača):
// Príklad na načítanie používateľa podľa ID
SELECT id, username FROM users WHERE id = ?;