Query Builder
use Illuminate\Support\Facades\DB;
$users = DB::table("users")
->where("is_active", true)
->orderBy("name")
->limit(10)
->get();
// Select specific columns
$emails = DB::table("users")->pluck("email");
// First record
$user = DB::table("users")->where("id", 1)->first();
Joins
$posts = DB::table("posts")
->join("users", "posts.user_id", "=", "users.id")
->select("posts.*", "users.name as author")
->where("posts.is_published", true)
->get();
// Left join
DB::table("posts")->leftJoin("comments", "posts.id", "=", "comments.post_id");
// Cross join
DB::table("sizes")->crossJoin("colors");
Aggregates
$count = DB::table("users")->count();
$max = DB::table("orders")->max("total");
$avg = DB::table("reviews")->avg("rating");
$exists = DB::table("users")->where("email", $email)->exists();
Laravel 13: Query Builder Enhancements
// whereAny / whereAll for multi-column searches
DB::table("posts")->whereAny(["title", "body"], "like", "%search%")->get();
// upsert with multiple unique keys
DB::table("users")->upsert(
$records,
["email"],
["name", "updated_at"]
);