Query Builder เป็นเครื่องมือที่ Laravel มีมาให้เพื่อช่วยให้เราสามารถสร้างคำสั่ง SQL สำหรับการดึง เพิ่ม แก้ไข และลบข้อมูลในฐานข้อมูลได้โดยไม่ต้องเขียน SQL โดยตรง ทำให้โค้ดอ่านง่ายและลดความซับซ้อนของการเขียน SQL
Query Builder ทำงานร่วมกับฐานข้อมูลหลายประเภท เช่น MySQL, PostgreSQL, SQLite และ SQL Server ซึ่งช่วยให้สามารถสร้างและจัดการข้อมูลในฐานข้อมูลได้อย่างมีประสิทธิภาพและรวดเร็ว
การใช้งาน Query Builder
Laravel Query Builder สามารถเข้าถึงได้ผ่าน Facade DB
โดยใช้คำสั่ง DB::table()
เพื่อระบุตารางที่ต้องการทำงานด้วย
1. การดึงข้อมูลด้วย Query Builder
เราสามารถใช้คำสั่ง get()
, first()
, และ find()
เพื่อดึงข้อมูลจากฐานข้อมูลได้
- ดึงข้อมูลทั้งหมดจากตาราง
users
:
use Illuminate\Support\Facades\DB;
$users = DB::table('users')->get();
- ดึงข้อมูลแถวแรกจากตาราง
users
:
$user = DB::table('users')->first();
- ดึงข้อมูลตาม Primary Key:
$user = DB::table('users')->find(1);
2. การใช้เงื่อนไขในการ Query
สามารถใช้ where()
เพื่อกรองข้อมูลตามเงื่อนไขที่ต้องการ
- ดึงข้อมูลผู้ใช้ที่มีอายุ 25 ปี:
$users = DB::table('users')->where('age', 25)->get();
- ใช้หลายเงื่อนไขด้วย AND และ OR:
// ใช้ AND
$users = DB::table('users')
->where('age', '>', 20)
->where('status', 'active')
->get();
// ใช้ OR
$users = DB::table('users')
->where('age', '>', 20)
->orWhere('status', 'active')
->get();
3. การจัดเรียงและการจำกัดข้อมูล
สามารถใช้ orderBy()
และ limit()
เพื่อจัดเรียงและกำหนดจำนวนข้อมูลที่ต้องการดึงออกมา
- จัดเรียงข้อมูลตามอายุจากน้อยไปมาก:
$users = DB::table('users')->orderBy('age', 'asc')->get();
- ดึงข้อมูล 10 แถวแรก:
$users = DB::table('users')->limit(10)->get();
4. การนับและการทำ Aggregation
Query Builder มีคำสั่ง Aggregation เช่น count()
, max()
, min()
, avg()
, และ sum()
- นับจำนวนผู้ใช้ทั้งหมดในตาราง
users
:
$userCount = DB::table('users')->count();
- หาค่าเฉลี่ยของอายุผู้ใช้:
$averageAge = DB::table('users')->avg('age');
5. การเพิ่มข้อมูล
สามารถใช้ insert()
เพื่อเพิ่มข้อมูลลงในฐานข้อมูล
DB::table('users')->insert([
'name' => 'John Doe',
'email' => '[email protected]',
'age' => 30,
]);
6. การอัปเดตข้อมูล
ใช้ update()
เพื่อแก้ไขข้อมูลในฐานข้อมูล
DB::table('users')
->where('id', 1)
->update(['name' => 'Jane Doe']);
7. การลบข้อมูล
ใช้ delete()
เพื่อทำการลบข้อมูลจากฐานข้อมูล
DB::table('users')->where('id', 1)->delete();
การนำไปใช้งาน
Query Builder ใน Laravel ช่วยให้การทำงานกับฐานข้อมูลเป็นไปได้อย่างสะดวกและเป็นระบบ สามารถใช้ในการ Query ดึงข้อมูล เพิ่ม แก้ไข และลบข้อมูลได้อย่างง่ายดาย เหมาะสำหรับการทำงานกับข้อมูลที่ไม่ซับซ้อนมาก และลดโอกาสในการเกิดข้อผิดพลาดจากการเขียน SQL แบบดั้งเดิม