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