کوئری (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 برای امنیت و عملکرد ضروریاند.
اصطلاحات دیتابیس، ایندکسینگ، بهینهسازی کوئری و تزریق اسکیوال مرتبطاند.