Middle+
Kaip suprojektuotumėte SQL užklausą duomenų bazei be ORM naudojimo?
sobes.tech AI
Atsakymas iš AI
Norėdami gauti duomenis iš lentelės users, kur laukas is_active yra true ir role yra 'admin':
SELECT id, username, email
FROM users
WHERE is_active = TRUE AND role = 'admin';
Norėdami įterpti naują įrašą į lentelę products:
INSERT INTO products (name, price, category_id)
VALUES ('New Product', 19.99, 10);
Atnaujinti įrašą lentelėje orders, nustatant būseną į 'shipped' užsakymui su id = 100:
UPDATE orders
SET status = 'shipped'
WHERE id = 100;
Pašalinti įrašą iš lentelės comments pagal id:
DELETE FROM comments
WHERE id = 500;
Paprastas jungimas tarp lentelių users ir orders pagal 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;
Projektavimo metu svarbu atsižvelgti į:
- Saugumą: Naudoti parametrizuotus užklausimus SQL injekcijų prevencijai.
- Veikimą: Optimizuoti užklausas naudojant indeksus, vengti
SELECT *ir tikrinti vykdymo planus. - Skaitomumą: Formatuoti užklausas, naudoti lentelių ir laukų pravardes.
- Testavimą: Testuoti užklausas skirtinguose scenarijuose ir duomenų kiekiuose.
Pavyzdys parametrizuotos užklausos (konceptualus, įgyvendinimas priklauso nuo kalbos ir vairuotojo):
// Pavyzdys, kaip gauti vartotoją pagal ID
SELECT id, username FROM users WHERE id = ?;