মূল কন্টেন্টে যান
মডিউল 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 কলাম কিছু ভঙ্গ করে না) এবং স্ব-ডকুমেন্টিং।

বহু-সারি ঢোকান

একটি একক বিবৃতি, একাধিক সারি — 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 সহ) → এটি ব্যবহার করা হয়;
  • যদি এটি গ্রহণ করে 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', শহর 'ভেরোনা', দেশ 'ইতালিয়া' এবং '2025-07-15'-এ স্বাক্ষরিত_আপ_এর সাথে একটি নতুন গ্রাহক প্রবেশ করান। স্পষ্টভাবে সমস্ত কলামের নাম দিন।

সম্পাদক লোড হচ্ছে...
ইঙ্গিত দেখান

VALUES-এর মানগুলির ক্রম আপনার নাম দেওয়া কলামগুলির ক্রমগুলির সাথে অবশ্যই মিলবে৷

সমাধান 3 প্রচেষ্টার পরে উপলব্ধ

ব্যায়াম পর্যালোচনা করুন

ব্যায়াম#sql.m8.l1.e2
প্রচেষ্টা: 0লোড হচ্ছে...

'Elettronica' (id = 1) এর সন্তান হিসাবে একটি নতুন 'গেমিং' বিভাগ সন্নিবেশ করান। সদ্য তৈরি করা বিভাগের আইডি এবং নাম ফেরত দিতে রিটার্নিং ক্লজ ব্যবহার করুন।

সম্পাদক লোড হচ্ছে...
ইঙ্গিত দেখান

রিটার্নিং একটি সিলেক্টের মতো কলামের একটি তালিকা (বা '*') গ্রহণ করে।

সমাধান 3 প্রচেষ্টার পরে উপলব্ধ