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 = ?;