লারাভেল কুয়েরি বিল্ডার (Laravel Query Builder)

Web Development - লারাভেল (Laravel) - লারাভেল ডাটাবেইজ (Laravel Database) |
7
7

লারাভেল (Laravel) ফ্রেমওয়ার্কটি ডাটাবেসের সাথে কাজ করার জন্য শক্তিশালী এবং সহজে ব্যবহারযোগ্য টুল সরবরাহ করে। এর মধ্যে একটি অন্যতম শক্তিশালী টুল হলো লারাভেল কুয়েরি বিল্ডার (Laravel Query Builder)। এটি ডাটাবেসের তথ্য খুব সহজ ও ফ্লুয়েন্টভাবে (fluent) তুলে আনা, আপডেট করা, এবং ডিলিট করা সহ বিভিন্ন কাজ পরিচালনা করতে ব্যবহৃত হয়।

কুয়েরি বিল্ডার কি?

লারাভেল কুয়েরি বিল্ডার (Query Builder) একটি API যা ডাটাবেসের কুয়েরি তৈরির জন্য ব্যবহার করা হয়। এটি ডাটাবেসের সাথে যোগাযোগ করার জন্য একাধিক মেথড সরবরাহ করে যা খুব সহজে এবং সোজা ভাবে কুয়েরি লেখার কাজকে সহজ করে তোলে। কুয়েরি বিল্ডার SQL কুয়েরি তৈরি করতে সহায়তা করে, কিন্তু SQL কুয়েরি লেখার পরিবর্তে PHP কোডের মাধ্যমে কুয়েরি লেখার সুবিধা দেয়।

কুয়েরি বিল্ডারের সুবিধা

  • ফ্লুয়েন্ট সিনট্যাক্স: কুয়েরি বিল্ডার PHP কোডের মাধ্যমে সহজে কুয়েরি তৈরি করতে সহায়তা করে, যা আরও পড়তে সহজ এবং সংক্ষিপ্ত।
  • ডাটাবেসের সঙ্গে সহজ সম্পর্ক: কুয়েরি বিল্ডার আপনাকে বিভিন্ন ডাটাবেস সিস্টেম যেমন MySQL, PostgreSQL ইত্যাদির সঙ্গে সহজে কাজ করতে সাহায্য করে।
  • SQL ইনজেকশন রোধ: কুয়েরি বিল্ডার ডাটাবেসের কুয়েরি তৈরির সময় স্বয়ংক্রিয়ভাবে SQL ইনজেকশন থেকে সুরক্ষা প্রদান করে।
  • চেইনিং: কুয়েরি বিল্ডারকে বিভিন্ন মেথড চেইন করে একাধিক কার্যকলাপ করা সম্ভব।

কুয়েরি বিল্ডার ব্যবহার করে SELECT কুয়েরি

SELECT কুয়েরি লেখার জন্য কুয়েরি বিল্ডারের table() মেথড ব্যবহার করা হয়। উদাহরণস্বরূপ:

$users = DB::table('users')->get();

এখানে, users টেবিল থেকে সব রেকর্ড নিয়ে আসা হবে।

WHERE ক্লজ ব্যবহার করা

where() মেথড ব্যবহার করে আপনি কুয়েরিতে শর্ত যোগ করতে পারেন। উদাহরণস্বরূপ:

$users = DB::table('users')
            ->where('status', 'active')
            ->get();

এটি users টেবিল থেকে কেবলমাত্র সেই ইউজারদের নিয়ে আসবে, যাদের status হল active

AND/OR শর্ত ব্যবহার করা

আপনি where() এর মাধ্যমে একাধিক শর্ত যোগ করতে পারেন, যেমন:

$users = DB::table('users')
            ->where('status', 'active')
            ->where('age', '>', 25)
            ->get();

এটি status active এবং age ২৫ এর বেশি এমন সব ইউজারদের নিয়ে আসবে।

কুয়েরি বিল্ডার ব্যবহার করে INSERT

নতুন ডাটা ইনসার্ট করতে insert() মেথড ব্যবহার করা হয়:

DB::table('users')->insert([
    'name' => 'John Doe',
    'email' => 'john@example.com',
    'status' => 'active'
]);

এটি users টেবিলের মধ্যে একটি নতুন রেকর্ড ইনসার্ট করবে।

কুয়েরি বিল্ডার ব্যবহার করে UPDATE

কোনো ডাটাবেস রেকর্ড আপডেট করার জন্য update() মেথড ব্যবহার করা হয়। উদাহরণ:

DB::table('users')
    ->where('id', 1)
    ->update(['status' => 'inactive']);

এটি users টেবিলের প্রথম রেকর্ডের status ফিল্ডটি inactive এ আপডেট করবে যেখানে id ১।

কুয়েরি বিল্ডার ব্যবহার করে DELETE

ডাটাবেস থেকে কোনো রেকর্ড ডিলিট করতে delete() মেথড ব্যবহার করা হয়:

DB::table('users')
    ->where('id', 1)
    ->delete();

এটি users টেবিল থেকে id ১ এর রেকর্ডটি মুছে ফেলবে।

কুয়েরি বিল্ডারের আরও কিছু ব্যবহারিক ফিচার

  • limit(): ডাটাবেস থেকে নির্দিষ্ট সংখ্যক রেকর্ড ফেরত পাওয়ার জন্য।

    $users = DB::table('users')->limit(5)->get();
    
  • orderBy(): রেকর্ড গুলো একটি নির্দিষ্ট কলামের উপর ভিত্তি করে সাজানোর জন্য।

    $users = DB::table('users')->orderBy('name', 'asc')->get();
    
  • distinct(): ইউনিক (অদ্বিতীয়) রেকর্ড ফেরত পাওয়ার জন্য।

    $users = DB::table('users')->distinct()->get();
    
  • join(): একাধিক টেবিলের মধ্যে যোগফল করতে join() ব্যবহার করা হয়।

    $users = DB::table('users')
               ->join('posts', 'users.id', '=', 'posts.user_id')
               ->select('users.name', 'posts.title')
               ->get();
    

কুয়েরি বিল্ডারের সুবিধার মধ্যে উল্লেখযোগ্য

  • ফ্লুয়েন্ট সেন্ট্যাক্স: কুয়েরি বিল্ডার বিভিন্ন মেথড চেইন করে খুব সহজে কাজ সম্পাদন করতে দেয়।
  • ডিপেনডেন্সি ইনজেকশন: এই কুয়েরি বিল্ডার কেবলমাত্র PHP কোডের মাধ্যমে ডাটাবেস অপারেশন পরিচালনা করতে সহায়তা করে।
  • বিভিন্ন ডাটাবেস সমর্থন: কুয়েরি বিল্ডার MySQL, PostgreSQL, SQLite এবং SQL Server সহ একাধিক ডাটাবেস সমর্থন করে।

লারাভেল কুয়েরি বিল্ডার ডাটাবেসের কাজগুলো খুব সহজ, দ্রুত এবং নিরাপদভাবে পরিচালনা করতে সহায়তা করে। এটি ডেভেলপারদের জন্য একটি অত্যন্ত কার্যকরী টুল, যা কোডিং সময় সাশ্রয়ী করে এবং ডাটাবেস পরিচালনার ক্ষেত্রে আরও দক্ষতা এনে দেয়।

Content added By
Promotion