کوئری (Query) درخواست خواندن، تغییر یا بررسی داده است. در دیتابیس‌های رابطه‌ای این درخواست اغلب با SQL نوشته می‌شود. مفهوم کوئری در Elasticsearch، MongoDB، GraphQL و حتی موتور جست‌وجوی سایت نیز وجود دارد، اما زبان و نحوه اجرای آن‌ها متفاوت است.

مثال‌های SELECT، INSERT، UPDATE و DELETE

SELECT id, name, price FROM products
WHERE in_stock = 1 AND price <= 1000000
ORDER BY price ASC LIMIT 20;

INSERT INTO products (name, price) VALUES ('Mouse', 350000);

UPDATE products SET price = 360000 WHERE id = 42;

DELETE FROM products WHERE id = 42;

Join و Group By در گزارش فروش

SELECT c.name, COUNT(o.id) AS orders_count
FROM customers c
LEFT JOIN orders o ON o.customer_id = c.id
GROUP BY c.id, c.name
ORDER BY orders_count DESC;

کوئری با Eloquent لاراول

$products = Product::query()
    ->where('in_stock', true)
    ->where('price', '<=', 1000000)
    ->orderBy('price')->paginate(20);

کوئری در پایتون با SQLAlchemy

from sqlalchemy import select
stmt = (select(Product)
    .where(Product.in_stock.is_(True), Product.price <= 1_000_000)
    .order_by(Product.price).limit(20))
products = session.scalars(stmt).all()

کوئری در C# با LINQ و EF Core

var products = await db.Products
    .Where(p => p.InStock && p.Price <= 1000000)
    .OrderBy(p => p.Price).Take(20).ToListAsync();

کوئری در MongoDB

db.products.find({ in_stock: true, price: { $lte: 1000000 } })
  .sort({ price: 1 }).limit(20);

امنیت و کارایی

ورودی کاربر را هرگز با اتصال رشته‌ها وارد SQL نکنید. Parameter Binding، Index مناسب و بررسی Execution Plan برای امنیت و عملکرد ضروری‌اند.

اصطلاحات دیتابیس، ایندکسینگ، بهینه‌سازی کوئری و تزریق اس‌کیو‌ال مرتبط‌اند.