مرکزی مواد پر جائیں
ماڈیول 8 · سبق 1 از 4کورس میں 29/57~10 min
ماڈیول اسباق (1/4)

ڈیٹا داخل کرنا: INSERT

اب تک آپ ڈیٹا **پڑھ رہے ہیں۔ کچھ لکھنے کا وقت آگیا ہے۔ INSERT ہے وہ کمانڈ جو ٹیبل میں نئی قطاریں شامل کرتی ہے۔

بنیادی نحو

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 کالم کسی چیز کو نہیں توڑتا) اور خود دستاویزی کرنا۔

کثیر قطار INSERT

ایک بیان، متعدد قطاریں — 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 کے ذریعہ تفویض کردہ) اور name

اگر کوئی کالم غائب ہو تو کیا ہوتا ہے۔

اگر آپ INSERT میں کالم چھوڑ دیتے ہیں:

  • اگر یہ NOT NULL ہے بغیر ڈیفالٹ → خرابی؛
  • اگر اس میں ایک DEFAULT ہے (بشمول SERIAL برائے ID) → جو استعمال کیا جاتا ہے؛
  • اگر یہ قبول کرتا ہے 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'، شہر 'Verona'، ملک 'Italia' اور دستخط شدہ_up_on '2025-07-15' کے ساتھ ایک نیا گاہک داخل کریں۔ تمام کالموں کو واضح طور پر نام دیں۔

ایڈیٹر لوڈ ہو رہا ہے…
اشارہ دکھائیں۔

VALUES میں اقدار کی ترتیب آپ کے نام کردہ کالموں کی ترتیب سے مماثل ہونی چاہیے۔

3 کوششوں کے بعد حل دستیاب ہے۔

ورزش کا جائزہ لیں۔

ورزش#sql.m8.l1.e2
کوششیں: 0لوڈ ہو رہا ہے…

'Elettronica' (id = 1) کے بچے کے طور پر ایک نیا 'گیمنگ' زمرہ داخل کریں۔ نئے بنائے گئے زمرے کی شناخت اور نام واپس کرنے کے لیے واپسی کی شق کا استعمال کریں۔

ایڈیٹر لوڈ ہو رہا ہے…
اشارہ دکھائیں۔

واپسی کالموں کی فہرست (یا '*') کو بالکل SELECT کی طرح قبول کرتی ہے۔

3 کوششوں کے بعد حل دستیاب ہے۔