دروس الوحدة (1/4)
إدخال البيانات: INSERT
لقد كنت تقرأ البيانات حتى الآن. حان الوقت لكتابة بعض. محمي_INLINE_0 هو الأمر الذي يضيف صفوفًا جديدة إلى الجدول.
بناء الجملة الأساسي
INSERT INTO tabella (col1, col2, …)
VALUES (val1, val2, …);مثال على مجموعة البيانات لدينا:
INSERT INTO customers (first_name, last_name, email, city, country, signed_up_on)
VALUES ('Marco', 'Bianchi', 'marco.bianchi@example.com', 'Verona', 'Italia', '2025-07-15');تسمية الأعمدة هي الممارسة الموصى بها: فهي تؤدي إلى إجراء الاستعلام
قوي ضد تغييرات المخطط المستقبلية (على سبيل المثال، عمود phone اختياري جديد
لا يكسر أي شيء) والتوثيق الذاتي.
إدراج متعدد الصفوف
عبارة واحدة، عدة صفوف - أسرع بكثير من N INSERTs المنفصلة:
INSERT INTO categories (name, parent_id) VALUES
('Gaming', 1),
('Smart Home', 1),
('Cucina vegana', 8);العودة: قراءة القيم التي أدخلتها للتو
الجملة المميزة لـ PostgreSQL: RETURNING تُرجع الصفوف التي
تم إنشاؤها للتو. مفيد للغاية لاسترداد id الذي تم إنشاؤه تلقائيًا:
INSERT INTO categories (name, parent_id)
VALUES ('Gaming', 1)
RETURNING id, name;الإخراج عبارة عن جدول من صف واحد مع id (تم تعيينه بواسطة SERIAL) و
محمي_INLINE_7.
ماذا يحدث إذا كان العمود مفقودًا
إذا قمت بحذف عمود في INSERT:
- إذا كان محمي_INLINE_9 بدون خطأ افتراضي →؛
- إذا كان يحتوي على
DEFAULT(بما في ذلكSERIALللمعرف) → يتم استخدامه؛ - إذا قبل
NULL→ يصبحNULL.
-- Va bene: id è SERIAL (auto), country ha NOT NULL ma forniamo tutti i campi
INSERT INTO customers (first_name, last_name, email, city, country, signed_up_on)
VALUES ('Olivia', 'Marini', 'olivia.marini@example.com', 'Bari', 'Italia', '2025-07-20');
-- Errore: first_name è NOT NULL e non è fornito
INSERT INTO customers (last_name, email, city, country, signed_up_on)
VALUES ('Marini', 'olivia.marini@example.com', 'Bari', 'Italia', '2025-07-20');دورك
أدخل في جدول العملاء عميلاً جديدًا يحمل الاسم الأول "ماركو"، والاسم الأخير "بيانكي"، والبريد الإلكتروني "marco.bianchi@example.com"، والمدينة "فيرونا"، والبلد "إيطاليا"، و"sign_up_on" 15-07-2025. قم بتسمية جميع الأعمدة بشكل واضح.
إظهار التلميح
يجب أن يتطابق ترتيب القيم في VALUES مع ترتيب الأعمدة التي قمت بتسميتها.
الحل متاح بعد 3 من المحاولات
تمرين المراجعة
أدخل فئة "ألعاب" جديدة باعتبارها فرعًا لـ "Elettronica" (المعرف = 1). استخدم جملة RETURNING لإرجاع معرف واسم الفئة التي تم إنشاؤها حديثًا.
إظهار التلميح
يقبل RETURNING قائمة الأعمدة (أو '*') تمامًا مثل SELECT.
الحل متاح بعد 3 من المحاولات