কম্পিউটার

কিভাবে আমি MySQL এ একটি টেবিলের সমস্ত সারি লুপ করতে পারি?


একটি টেবিলের সমস্ত সারি লুপ করতে, MySQL-এ সঞ্চিত পদ্ধতি ব্যবহার করুন। সিনট্যাক্স নিম্নরূপ -

 DELIMITER // CONDERPOCEDURENAME () BEGINDECLENAMENAME1 INTEND ডিফল্ট 0; AnyVariablename1 তে Anyvariablename1 থেকে গণনা (*) নির্বাচন করুন; AnyVariablename2 =0 সেট করুন; anyvariablename2  

উপরের সিনট্যাক্সটি বোঝার জন্য, আসুন দুটি টেবিল তৈরি করি যেমন একটিতে রেকর্ড রয়েছে এবং দ্বিতীয় টেবিলে লুপ থেকে সংরক্ষিত পদ্ধতি ব্যবহার করে রেকর্ড থাকবে।

প্রথম টেবিল −

তৈরি করার জন্য নিচের প্রশ্নটি রয়েছে
mysql> টেবিল AllRows তৈরি করুন -> ( -> আইডি int, -> নাম varchar(100) -> );কোয়েরি ঠিক আছে, 0 সারি প্রভাবিত (0.46 সেকেন্ড)

সন্নিবেশ কমান্ড ব্যবহার করে প্রথম টেবিলে কিছু রেকর্ড সন্নিবেশ করান। প্রশ্নটি নিম্নরূপ -

mysql> AllRows মান (1,'John'); কোয়েরি ঠিক আছে, 1 সারি প্রভাবিত (0.12 সেকেন্ড)mysql> AllRows মানগুলিতে সন্নিবেশ করুন (100, 'ক্যারল'); কোয়েরি ঠিক আছে, 1 সারি প্রভাবিত (0.13 সেকেন্ড) )mysql> AllRows মানের মধ্যে সন্নিবেশ করুন(300,'Sam');কোয়েরি ঠিক আছে, 1 সারি প্রভাবিত (0.15 সেকেন্ড)mysql> AllRows মানগুলিতে সন্নিবেশ করুন (400,'মাইক'); কোয়েরি ঠিক আছে, 1 সারি প্রভাবিত (0.20 সেকেন্ড) 

সিলেক্ট স্টেটমেন্ট ব্যবহার করে টেবিল থেকে সমস্ত রেকর্ড প্রদর্শন করুন। প্রশ্নটি নিম্নরূপ -

mysql> AllRows থেকে *নির্বাচন করুন;

আউটপুট

+------+-------+| আইডি | নাম |+------+------+| 1 | জন || 100 | ক্যারল || 300 | স্যাম || 400 | মাইক | সেটে +------+------+4 সারি (0.00 সেকেন্ড)

এখানে একটি দ্বিতীয় টেবিল তৈরি করার প্রশ্ন আছে। একটি টেবিল তৈরি করার প্রশ্নটি নিম্নরূপ -

mysql> টেবিল SecondTableRows তৈরি করুন -> ( -> StudentId int, -> StudentName varchar(100) -> );কোয়েরি ঠিক আছে, 0 সারি প্রভাবিত (0.54 সেকেন্ড)

এখন আপনি সঞ্চিত পদ্ধতি ব্যবহার করে একটি টেবিলের সমস্ত সারি লুপ করতে পারেন। সংরক্ষিত পদ্ধতি নিম্নরূপ -

mysql> ডিলিমিটার //mysql> প্রসিডিউর তৈরি করুন Sp_AllRowsOfATable() -> শুরু -> শেষ সারি ঘোষণা করুন INT ডিফল্ট 0; -> ডিক্লার স্টার্ট রোজ ইন ডিফল্ট 0; -> শেষ সারিতে AllRows থেকে COUNT(*) নির্বাচন করুন; -> সেট startRows=0; -> সারি শুরু করার সময়  Insert int SecondTableRows(StudentId) সিলেক্ট (Id) থেকে AllRows LIMITstartRows,1; -> সেট startRows=startRows+1; -> শেষ যখন; -> শেষ; -> //কোয়েরি ঠিক আছে, 0টি সারি প্রভাবিত (0.22 সেকেন্ড)mysql> ডিলিমিটার;

CALL কমান্ড ব্যবহার করে সংরক্ষিত পদ্ধতিতে কল করুন। সিনট্যাক্স নিম্নরূপ -

আপনার সংরক্ষিত প্রক্রিয়ার নাম কল করুন;

প্রথম টেবিলের সমস্ত সারি লুপ করার জন্য উপরের সংরক্ষিত পদ্ধতিটি কল করুন। প্রশ্নটি নিম্নরূপ -

mysql> কল Sp_AllRowsOfATable(); কোয়েরি ঠিক আছে, 1 সারি প্রভাবিত (0.61 সেকেন্ড)

সংরক্ষিত পদ্ধতি কল করার পরে, দ্বিতীয় টেবিলের সাথে কি ঘটেছে তা পরীক্ষা করা যাক। প্রশ্নটি নিম্নরূপ -

mysql> SecondTableRows থেকে StudentId নির্বাচন করুন;

আউটপুট

<প্রে>+------------+| StudentId |+------------+| 1 || 100 || 300 || 400 |+----------+4 সারি সেটে (0.00 সেকেন্ড)

  1. কিভাবে একটি টেবিলের সব তারিখ আপডেট করবেন?

  2. একটি টেবিলের সমস্ত সারি MySQL এ অন্য টেবিলে অনুলিপি করবেন?

  3. শর্ত সহ একটি MySQL টেবিলের সারি প্রতিস্থাপন কিভাবে?

  4. কিভাবে একটি MySQL টেবিলে শুধুমাত্র 3টি অর্ডার করা সারি নির্বাচন করবেন?