دروس الوحدة (2/4)
التحديث والحذف: التحديث والحذف
UPDATE يعدل الصفوف الموجودة؛ DELETE يزيلها. كلاهما يشتركان في
القاعدة الذهبية الأساسية نفسها: تحدد جملة WHERE أي الصفوف
للمس. نسيان ذلك يعني تعديل/حذف الجدول بأكمله.
تحديث
UPDATE tabella
SET colonna1 = nuovo_valore,
colonna2 = altra_espressione
WHERE condizione;أمثلة:
-- Aumenta del 10% i prezzi di tutti i prodotti della categoria 5 (Computer):
UPDATE products
SET price = price * 1.10
WHERE category_id = 5;
-- Aggiorna due colonne contemporaneamente:
UPDATE orders
SET status = 'shipped',
shipped_at = NOW()
WHERE id = 12;SET col = espressione: يمكن أن يشير التعبير إلى ** تيار الصف
القيم** (price * 1.10)، ويمكن أيضًا استخدام NOW()، أو NULL، أو
الاستعلامات الفرعية.
يمسح
DELETE FROM tabella
WHERE condizione;أمثلة:
-- Cancella tutte le recensioni con rating < 3:
DELETE FROM reviews
WHERE rating < 3;
-- Cancella un ordine specifico:
DELETE FROM orders WHERE id = 999;العودة هنا أيضا
مثل INSERT وUPDATE وDELETE يقبلون أيضًا RETURNING حتى تعلم
ما تصرفوا عليه:
DELETE FROM reviews
WHERE rating < 3
RETURNING id, customer_id, rating;مفيد لتسجيل الدخول مرة واحدة لما تم حذفه/تعديله.
المفاتيح الخارجية والحذف
محاولة حذف صف تمت الإشارة إليه بواسطة جدول آخر من خلال مفتاح خارجي ينتج خطأ:
DELETE FROM customers WHERE id = 1;
-- ERROR: update or delete on table "customers" violates foreign key constraint
-- on table "orders"الحلول: احذف الصفوف الفرعية أولاً، أو قم بتعريف FK بها
ON DELETE CASCADE عند إنشاء الجدول (سنغطي ذلك في
درس DDL التالي).
دورك
زيادة بنسبة 10% على سعر كل منتج في الفئة الخامسة (الكمبيوتر). بيان تحديث واحد.
إظهار التلميح
يمكن أن يشير التعبير الموجود على يمين SET إلى العمود نفسه: السعر * 1.10.
الحل متاح بعد 3 من المحاولات
تمرين المراجعة
احذف كل مراجعة ذات تقييم أقل من 3 (مراجعات سلبية للغاية).
إظهار التلميح
حيث التقييم < 3.
الحل متاح بعد 3 من المحاولات