Mantiqiy ma'lumot turi
Kirish: Ushbu qo'llanmada siz PostgreSQL BOOLEAN ma'lumot turi yordamida mantiqiy qiymatlarni (true va false) saqlashni o'rganasiz.
PostgreSQLda mantiqiy ma'lumotlarni (true va false) saqlash uchun boolean turidan foydalaniladi.
boolean ma'lumot turi uch xil qiymatga ega bo'lishi mumkin:
true (rost)false (yolg'on)NULL (noma'lum holat)NULL noma'lum (aniqlanmagan) holatni ifodalaydi.
PostgreSQL boolean turini ifodalash uchun boolean kalit so'zidan foydalanadi. Shuningdek, uning qisqartmasi bo'lgan bool kalit so'zidan ham foydalanishingiz mumkin.
PostgreSQL bitta mantiqiy qiymatni saqlash uchun xotiradan 1 bayt joy ajratadi.
SQL so'rovlarida true va false dan tashqari, PostgreSQL rost va yolg'onni ifodalovchi bir nechta muqobil yozuv shakllarini ham qabul qiladi:
| Rost (True) | Yolg'on (False) |
|---|---|
| true | false |
| 't' | 'f' |
| 'true' | 'false' |
| 'y' | 'n' |
| 'yes' | 'no' |
| '1' | '0' |
E'tibor bering, true va false dan tashqari boshqa barcha ifodalar bittalik tirnoq ('...') ichida yozilishi kerak.
Birinchidan, mahsulotlar ma'lumotlarini saqlash uchun products nomli jadval yaratamiz:
CREATE TABLE products (
id INT GENERATED ALWAYS AS IDENTITY,
name VARCHAR NOT NULL,
is_active BOOL
);
products jadvalidagi is_active ustuni boolean turida e'lon qilingan, shuning uchun u true, false yoki NULL qiymatlarini saqlay oladi.
Agar mantiqiy ustunga NULL qiymati tushishini istamasangiz, unga NOT NULL cheklovini qo'shishingiz mumkin.
Ikkinchidan, products jadvaliga bir nechta qator qo'shamiz:
INSERT INTO
products (name, is_active)
VALUES
('iPhone 6', false),
('iPhone 16', true),
('Galaxy M01', 'f'),
('Galaxy Z Fold6', 't'),
('Galaxy Z Flip6', NULL)
RETURNING *;
Natija:
id | name | is_active
----+----------------+-----------
1 | iPhone 6 | f
2 | iPhone 16 | t
3 | Galaxy M01 | f
4 | Galaxy Z Fold6 | t
5 | Galaxy Z Flip6 | NULL
Uchinchidan, faol bo'lmagan (inaktiv) mahsulotlarni tanlab olamiz:
SELECT * FROM products
WHERE is_active = false;
Natija:
id | name | is_active
----+------------+-----------
1 | iPhone 6 | f
3 | Galaxy M01 | f
Siz false o'rniga 'f', '0', 'n' yoki 'no' kabi boshqa yolg'on qiymatlardan ham foydalanishingiz mumkin:
SELECT * FROM products
WHERE is_active = 'f';
To'rtinchidan, jadvaldagi faol mahsulotlarni so'raymiz:
SELECT * FROM products
WHERE is_active = true;
Natija:
id | name | is_active
----+----------------+-----------
2 | iPhone 16 | t
4 | Galaxy Z Fold6 | t
PostgreSQL shartlarda ustun nomining o'zini yozish orqali uni bilvosita (implicit) true ga teng deb hisoblashga imkon beradi. Masalan, quyidagi so'rov barcha faol mahsulotlarni olib beradi:
SELECT * FROM products
WHERE is_active;
Natija:
id | name | is_active
----+----------------+-----------
2 | iPhone 16 | t
4 | Galaxy Z Fold6 | t
Ustun qiymatini teskarisiga o'zgartirish (inkor qilish) uchun NOT operatoridan foydalanasiz:
SELECT * FROM products
WHERE NOT is_active;
Natija:
id | name | is_active
----+------------+-----------
1 | iPhone 6 | f
3 | Galaxy M01 | f
Mantiqiy ustunga standart qiymat belgilash uchun DEFAULT cheklovidan foydalaniladi:
column_name BOOL DEFAULT boolean_value;
Masalan, quyidagi buyruq foydalanuvchilar jadvalini yaratadi va undagi email_confirmed ustuniga standart qiymat sifatida false ni o'rnatadi:
CREATE TABLE users (
id INT GENERATED ALWAYS AS IDENTITY,
email VARCHAR NOT NULL,
password VARCHAR NOT NULL,
email_confirmed BOOL NOT NULL DEFAULT false
);
true, false, NULL) saqlash uchun PostgreSQL BOOLEAN (yoki BOOL) turidan foydalaning.WHERE is_active va WHERE NOT is_active).DEFAULT true yoki DEFAULT false cheklovidan foydalaning.