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