PostgreSQL

PostgreSQL — عملگرها (Operators)

آخرین بروزرسانی: 1404/08/18

عملگرها (Operators)

در PostgreSQL، «عملگر (Operator)» نماد مقایسه یا جستجو است. با آن در شرط WHERE رکوردها را فیلتر می کنیم. در این صفحه با عملگرهای PostgreSQL آشنا می شویم و هرکدام را با مثال ساده می بینیم.

برابر (=)

وقتی مقدار ستون باید دقیقاً برابر یک مقدار باشد، از = استفاده کن.

SELECT *
FROM cars;
WHERE brand = 'Volvo';

مشاهده در ادیتور

کوچک تر (<)

وقتی مقدار ستون باید کمتر از یک عدد باشد، از < استفاده کن.

SELECT *
FROM cars;
WHERE year < 1975;

مشاهده در ادیتور

بزرگ تر (>)

وقتی مقدار ستون باید بزرگ تر از یک عدد باشد، از > استفاده کن.

SELECT *
FROM cars;
WHERE year > 1975;

مشاهده در ادیتور

کوچک تر یا برابر (<=)

وقتی مقدار ستون باید ≤ عدد هدف باشد، از <= استفاده کن.

SELECT *
FROM cars;
WHERE year <= 1975;

مشاهده در ادیتور

بزرگ تر یا برابر (>=)

وقتی مقدار ستون باید ≥ عدد هدف باشد، از >= استفاده کن.

SELECT *
FROM cars;
WHERE year >= 1975;

مشاهده در ادیتور

نابرابر (<> ، !=)

برای «مساوی نبودن» می توانی از <> یا != استفاده کنی.

SELECT *
FROM cars;
WHERE brand <> 'Volvo';

مشاهده در ادیتور

SELECT *
FROM cars;
WHERE brand != 'Volvo';

مشاهده در ادیتور

LIKE و ILIKE

LIKE تطبیق الگو است. «الگو (Pattern)» رشته با وایلدکارت است. % یعنی صفر تا چند کاراکتر. _ یعنی دقیقاً یک کاراکتر. LIKE حساس به حروف است. ILIKE حساس نیست.

SELECT *
FROM cars;
WHERE model LIKE 'M%';

مشاهده در ادیتور

SELECT *
FROM cars;
WHERE model ILIKE 'm%';

مشاهده در ادیتور

نکته: LIKE حروف بزرگ و کوچک را فرق می گذارد. ILIKE فرق نمی گذارد.

AND و OR

با AND باید هر دو شرط درست باشند. با OR یکی کافی است. مثل امتحان: «هم ریاضی 20» AND «علوم 20». یا «ریاضی 20» OR «علوم 20».

SELECT *
FROM cars;
WHERE brand = 'Volvo'
AND year = 1968;

مشاهده در ادیتور

SELECT *
FROM cars;
WHERE brand = 'Volvo'
OR year = 1975;

مشاهده در ادیتور

IN

اگر مقدار ستون باید داخل یک «فهرست» باشد، از IN استفاده کن.

SELECT *
FROM cars;
WHERE brand IN ('Volvo', 'Mercedes', 'Ford');

مشاهده در ادیتور

BETWEEN

برای بازه بسته از BETWEEN استفاده کن. دو سر بازه هم حساب می شوند.

SELECT *
FROM cars;
WHERE year BETWEEN 1970 AND 1980;

مشاهده در ادیتور

نکته: در مثال بالا، سال های 1970 و 1980 هم برمی گردند.

IS NULL

برای چک کردن تهی بودن مقدار از IS NULL استفاده کن.

SELECT *
FROM cars;
WHERE model IS NULL;

مشاهده در ادیتور

NOT و وارونگی

با NOT نتیجه عملگرها را برعکس کن. روی LIKE، ILIKE، IN، BETWEEN و NULL کاربرد دارد.

NOT LIKE

SELECT *
FROM cars;
WHERE brand
NOT LIKE 'B%';

مشاهده در ادیتور

NOT ILIKE

SELECT *
FROM cars;
WHERE brand
NOT ILIKE 'b%';

مشاهده در ادیتور

NOT IN

SELECT *
FROM cars;
WHERE brand
NOT IN ('Volvo', 'Mercedes', 'Ford');

مشاهده در ادیتور

NOT BETWEEN

SELECT *
FROM cars;
WHERE year
NOT BETWEEN 1970 AND 1980;

مشاهده در ادیتور

نکته: در NOT BETWEEN دو سر بازه حذف می شوند.

IS NOT NULL

SELECT *
FROM cars;
WHERE model IS NOT NULL;

مشاهده در ادیتور

عملگرهای PostgreSQL در کوئری های انتخاب بسیار کاربردی هستند.

جمع بندی سریع

  • = ، < ، > برای مقایسه مستقیم هستند.
  • LIKE حساس است؛ ILIKE حساس نیست.
  • IN فهرست می پذیرد؛ BETWEEN بازه بسته است.
  • IS NULL تهی بودن را چک می کند.
  • NOT همه چیز را برعکس می کند.