VALUES() স্টেটমেন্টে ঢোকান

আমরা কীভাবে টেবিল তৈরি করতে হয় তা খুঁজে বের করেছি, এখন এসকিউএল কোয়েরি ব্যবহার করে টেবিলে ডেটা কীভাবে যুক্ত করা যায় তা বিস্তারিতভাবে দেখে নেওয়া যাক।

আসলে, এটি করা খুব সহজ, তবে বেশ কয়েকটি সূক্ষ্মতা রয়েছে। একটি টেবিলে ডেটা সন্নিবেশ করার জন্য সবচেয়ে সহজ বিকল্পের জন্য দুটি জিনিস নির্দিষ্ট করা প্রয়োজন:

  • কলামের নাম
  • কলামের মান (ডেটা)

কলামের নাম অবশ্যই নির্দিষ্ট করতে হবে, কারণ প্রায়শই কলামের ডিফল্ট মান থাকে যা ডেটা সন্নিবেশ করার সময় নির্দিষ্ট করা হয় না। এবং সাধারণত প্রতিটি টেবিলে কমপক্ষে একটি কলাম থাকে, উদাহরণস্বরূপ সারি আইডি।

একটি টেবিলে ডেটা সন্নিবেশ করার জন্য ক্যোয়ারীটির সাধারণ ফর্মটি এইরকম দেখাচ্ছে:

INSERT INTO table (column1, column2, column3) VALUES
    (value1, value2, value3),
    (value1, value2, value3),
    (value1, value2, value3);

উদাহরণস্বরূপ, আপনি যদি ব্যবহারকারীর টেবিলে একটি নতুন রেকর্ড সন্নিবেশ করতে চান, তাহলে প্রশ্নটি দেখতে এইরকম হবে:

INSERT INTO user (name, level, created_time) VALUES
	('Rabinovich', 5, ‘2022-06-06’);

সিলেক্ট স্টেটমেন্টে ঢোকান

একটি টেবিলে ডেটা সন্নিবেশ করার আরেকটি সাধারণ দৃশ্য হল এটি অন্য টেবিল, স্কিমা বা এমনকি একটি DBMS থেকে নেওয়া।

এটি করার জন্য, আরেকটি INSERT INTO ক্যোয়ারী ফর্ম্যাট আছে, যেখানে, VALUES অংশের পরিবর্তে, আপনি ডেটা নির্বাচন করার জন্য একটি ক্যোয়ারী নির্দিষ্ট করতে পারেন।

এই ধরনের অনুরোধের সাধারণ ফর্ম হল:

INSERT INTO table (column1, column2, column3)
SELECT-request;

আসুন একটি প্রশ্ন লিখি যা কর্মচারী টেবিল থেকে ব্যবহারকারীর টেবিলে সমস্ত ব্যবহারকারীকে যুক্ত করবে:

INSERT INTO user (name, created_time)
   SELECT employee.name, employee.join_date
   FROM employee;

আমাদের কর্মচারী টেবিলে বিভিন্ন ডেটা রয়েছে, তবে তাদের থেকে আমরা কেবল দুটি ক্ষেত্র নির্বাচন করি - নাম এবং কোম্পানিতে আগমনের সময়।

এছাড়াও, ব্যবহারকারী টেবিলের জন্য আপনাকে ব্যবহারকারীর স্তর - স্তর নির্দিষ্ট করতে হবে। কর্মচারীদের কর্মচারী টেবিলে একটি স্তর নেই, তাই আমরা এই সত্যটি ব্যবহার করব যে স্তর ক্ষেত্রের জন্য ব্যবহারকারী টেবিলের একটি ডিফল্ট মান রয়েছে। আমরা শুধু লেভেল নির্দিষ্ট করি না এবং এসকিউএল ডিফল্ট মান সেট করবে।

ধরুন আমরা ডিফল্ট মান নিয়ে সন্তুষ্ট নই, এবং আমরা লেভেলটি 99 করতে চাই এবং user.created_time আজকের তারিখের সাথে প্রতিস্থাপন করতে চাই, তাহলে আমরা এটি লিখতে পারি:

INSERT INTO user (name, level, created_time)
   SELECT employee.name, 99, CURDATE()
   FROM employee;

আরও অনেক কিছু করা যেতে পারে, তবে আমি মনে করি এটিই এখন যথেষ্ট হবে। আপনি অফিসিয়াল MySQL পৃষ্ঠায় আরও পড়তে পারেন।