الانتقال إلى المحتوى الرئيسي
الوحدة 8 · الدرس 1 من 429/57 في الدورة~10 min
دروس الوحدة (1/4)

إدخال البيانات: INSERT

لقد كنت تقرأ البيانات حتى الآن. حان الوقت لكتابة بعض. محمي_INLINE_0 هو الأمر الذي يضيف صفوفًا جديدة إلى الجدول.

بناء الجملة الأساسي

SQL
INSERT INTO tabella (col1, col2, …)
VALUES (val1, val2, …);

مثال على مجموعة البيانات لدينا:

SQL
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 المنفصلة:

SQL
INSERT INTO categories (name, parent_id) VALUES
  ('Gaming',         1),
  ('Smart Home',     1),
  ('Cucina vegana',  8);

العودة: قراءة القيم التي أدخلتها للتو

الجملة المميزة لـ PostgreSQL: RETURNING تُرجع الصفوف التي تم إنشاؤها للتو. مفيد للغاية لاسترداد id الذي تم إنشاؤه تلقائيًا:

SQL
INSERT INTO categories (name, parent_id)
VALUES ('Gaming', 1)
RETURNING id, name;

الإخراج عبارة عن جدول من صف واحد مع id (تم تعيينه بواسطة SERIAL) و محمي_INLINE_7.

ماذا يحدث إذا كان العمود مفقودًا

إذا قمت بحذف عمود في INSERT:

  • إذا كان محمي_INLINE_9 بدون خطأ افتراضي →؛
  • إذا كان يحتوي على DEFAULT (بما في ذلك SERIAL للمعرف) → يتم استخدامه؛
  • إذا قبل NULL → يصبح NULL.
SQL
-- 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');

دورك

تمرين#sql.m8.l1.e1
المحاولات: 0جارٍ التحميل…

أدخل في جدول العملاء عميلاً جديدًا يحمل الاسم الأول "ماركو"، والاسم الأخير "بيانكي"، والبريد الإلكتروني "marco.bianchi@example.com"، والمدينة "فيرونا"، والبلد "إيطاليا"، و"sign_up_on" 15-07-2025. قم بتسمية جميع الأعمدة بشكل واضح.

جارٍ تحميل المحرر…
إظهار التلميح

يجب أن يتطابق ترتيب القيم في VALUES مع ترتيب الأعمدة التي قمت بتسميتها.

الحل متاح بعد 3 من المحاولات

تمرين المراجعة

تمرين#sql.m8.l1.e2
المحاولات: 0جارٍ التحميل…

أدخل فئة "ألعاب" جديدة باعتبارها فرعًا لـ "Elettronica" (المعرف = 1). استخدم جملة RETURNING لإرجاع معرف واسم الفئة التي تم إنشاؤها حديثًا.

جارٍ تحميل المحرر…
إظهار التلميح

يقبل RETURNING قائمة الأعمدة (أو '*') تمامًا مثل SELECT.

الحل متاح بعد 3 من المحاولات