Sobes.tech
Middle+

Как бихте проектирали SQL заявка към базата данни без използване на ORM?

sobes.tech AI

Отговор от AI

За извличане на данни от таблицата users, където полето is_active е true и role е 'admin':

SELECT id, username, email
FROM users
WHERE is_active = TRUE AND role = 'admin';

За добавяне на нов запис в таблицата products:

INSERT INTO products (name, price, category_id)
VALUES ('New Product', 19.99, 10);

За актуализиране на запис в таблицата orders, задавайки статус 'shipped' за поръчка с id = 100:

UPDATE orders
SET status = 'shipped'
WHERE id = 100;

За изтриване на запис от таблицата comments по id:

DELETE FROM comments
WHERE id = 500;

За базово съединяване на таблиците users и orders по 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;

При проектирането е важно да се вземат предвид:

  • Сигурност: Използвайте параметризирани заявки за предотвратяване на SQL инжекции.
  • Производителност: Оптимизирайте заявките с помощта на индекси, избягвайте SELECT * и проверявайте плановете за изпълнение.
  • Четливост: Форматирайте заявките, използвайте псевдоними за таблици и полета.
  • Тестване: Тествайте заявките в различни сценарии и обеми от данни.

Пример за параметризирана заявка (концептуално, реализацията зависи от езика и драйвера):

// Пример за извличане на потребител по ID
SELECT id, username FROM users WHERE id = ?;