Sobes.tech
Middle+

ORM ishlatmasdan ma'lumotlar bazasiga SQL so'rovini qanday loyihalasiz?

sobes.tech AI

AIdan javob

users jadvalidan ma'lumotlarni olish uchun, is_active maydoni true va role 'admin' bo'lsa:

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

Yangi yozuvni products jadvaliga qo'shish uchun:

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

orders jadvalidagi yozuvni yangilash, id = 100 bo'lgan buyurtma uchun holatni 'shipped' qilish:

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

comments jadvalidan id bo'yicha yozuvni o'chirish:

DELETE FROM comments
WHERE id = 500;

users va orders jadvallarini user_id bo'yicha oddiy birlashtirish:

SELECT u.username, o.order_date, o.total_amount
FROM users AS u
JOIN orders AS o ON u.id = o.user_id;

Dizayn qilishda quyidagilarni hisobga olish muhim:

  • Xavfsizlik: SQL injektsiyalarini oldini olish uchun parametrli so'rovlar ishlatish.
  • Ishlash tezligi: Indekslar yordamida so'rovlarni optimallashtirish, SELECT * dan qochish va bajarilish rejasini tekshirish.
  • O'qilishi osonlik: So'rovlarni formatlash, jadvallar va maydonlar uchun aliaslardan foydalanish.
  • Test qilish: So'rovlarni turli sharoitlarda va ma'lumot hajmida tekshirish.

Parametrli so'rov misoli (kontseptual, amalga oshirish til va drayverga bog'liq):

// ID bo'yicha foydalanuvchini so'rash misoli
SELECT id, username FROM users WHERE id = ?;