Laravel Queue

Laravel Database Queries – Beginner to Advanced Guide with Examples (Chapter 7)

In Laravel, working with the database is made extremely elegant and powerful through Eloquent ORM, the Query Builder, and even raw SQL when needed. This guide covers everything you need to know about Laravel database queries to handle real-world application logic efficiently.

🧠 What Are Laravel Database Queries?
Laravel provides three main ways to interact with databases:

  1. Raw SQL – Direct SQL statements
  2. Query Builder – Fluent interface to build database queries
  3. Eloquent ORM – Laravel’s object-relational mapper

Each has its use case depending on the complexity, performance, and readability requirements.

🔹 1. Using Raw SQL in Laravel
Laravel allows raw queries using the DB facade:

use Illuminate\Support\Facades\DB;

$users = DB::select(‘SELECT * FROM users WHERE active = ?’, [1]);
You can also use:

DB::insert();
DB::update();
DB::delete();
DB::statement();
⚠️ Use raw queries carefully to avoid SQL injection.

🔹 2. Laravel Query Builder
The Query Builder offers a fluent interface to construct queries without writing SQL directly.

📋 Basic Select

$users = DB::table(‘users’)->where(‘status’, ‘active’)->get();
🔄 Insert

DB::table(‘users’)->insert([
‘name’ => ‘John Doe’,
’email’ => ‘john@example.com’
]);
✏️ Update

DB::table(‘users’)->where(‘id’, 1)->update([‘name’ => ‘Jane’]);
❌ Delete

DB::table(‘users’)->where(‘id’, 1)->delete();
🔎 Advanced Query Builder Techniques

  1. where with multiple conditions

$users = DB::table(‘users’)
->where(‘status’, ‘active’)
->where(‘role’, ‘admin’)
->get();

  1. orWhere, whereIn, whereBetween

DB::table(‘orders’)->whereBetween(‘amount’, [100, 500])->get();
DB::table(‘orders’)->whereIn(‘status’, [‘pending’, ‘processing’])->get();

  1. Joins

DB::table(‘posts’)
->join(‘users’, ‘posts.user_id’, ‘=’, ‘users.id’)
->select(‘posts.*’, ‘users.name’)
->get();

  1. Aggregates

$total = DB::table(‘orders’)->sum(‘amount’);
$count = DB::table(‘orders’)->count();
🔹 3. Laravel Eloquent ORM
Eloquent is Laravel’s elegant ORM layer. It provides Active Record implementation for interacting with the database.

🧱 Basic Usage

$users = User::where(‘status’, ‘active’)->get();
➕ Create

User::create([
‘name’ => ‘Alex’,
’email’ => ‘alex@example.com’,
]);
✏️ Update

$user = User::find(1);
$user->name = ‘Updated Name’;
$user->save();
❌ Delete

User::destroy(1);
🔗 Eloquent Relationships
hasOne, hasMany

belongsTo, belongsToMany

with(), load() for eager loading

Example:

$posts = Post::with(‘comments’)->get();
🚀 Performance Tips for Laravel Queries
Use eager loading to prevent N+1 issues
→ Post::with(‘comments’)->get();

Avoid unnecessary queries using exists() or pluck()

Use caching (remember, Cache::put(), etc.)

Use indexes in your database where appropriate

Use pagination instead of loading huge data sets:

$users = User::paginate(10);
✅ Best Practices for Laravel Database Queries
Always validate user input before querying

Avoid raw queries unless necessary

Prefer Eloquent for readability, Query Builder for flexibility

Use transactions for critical operations:

DB::transaction(function () {
// operations
});
Log slow queries for performance audit:

DB::listen(function ($query) {
logger($query->sql);
});

https://laravel.com/docs/12.x/queries

Laravel Blade – Complete Guide with If Conditions, Loops, and Variables (Chapter 8)

Leave a Reply

Your email address will not be published. Required fields are marked *