Middle+
Jak zaprojektowałbyś zapytanie SQL do bazy danych bez użycia ORM?
sobes.tech AI
Odpowiedź od AI
Aby pobrać dane z tabeli users, gdzie pole is_active jest równe true i role jest 'admin':
SELECT id, username, email
FROM users
WHERE is_active = TRUE AND role = 'admin';
Aby wstawić nowy rekord do tabeli products:
INSERT INTO products (name, price, category_id)
VALUES ('New Product', 19.99, 10);
Aby zaktualizować rekord w tabeli orders, ustawiając status na 'shipped' dla zamówienia o id = 100:
UPDATE orders
SET status = 'shipped'
WHERE id = 100;
Aby usunąć rekord z tabeli comments po id:
DELETE FROM comments
WHERE id = 500;
Dla podstawowego połączenia tabel users i orders po 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;
Podczas projektowania ważne jest, aby brać pod uwagę:
- Bezpieczeństwo: Używać zapytań parametryzowanych, aby zapobiec wstrzyknięciom SQL.
- Wydajność: Optymalizować zapytania, używając indeksów, unikać
SELECT *i sprawdzać plany wykonania. - Czytelność: Formatować zapytania, używać aliasów tabel i pól.
- Testowanie: Testować zapytania w różnych scenariuszach i wolumenach danych.
Przykład zapytania parametrycznego (koncepcyjnie, implementacja zależy od języka i sterownika):
// Przykład pobrania użytkownika po ID
SELECT id, username FROM users WHERE id = ?;