Ushbu qo'llanmada siz PostgreSQL mantiqiy ma'lumotlar turi va undan ma'lumotlar bazasi jadvallarini loyihalashda qanday foydalanish haqida bilib olasiz.
PostgreSQL bitta mantiqiy ma'lumot turini qo'llab-quvvatlaydi: BOOLEAN
, uchta qiymatga ega bo'lishi mumkin: true
, false
va NULL
.
PostgreSQL ma'lumotlar bazasida mantiqiy qiymatni saqlash uchun bir bayt
dan foydalanadi. BOOLEAN
ni BOOL
deb qisqartirish mumkin.
Standart SQLda mantiqiy qiymat TRUE
, FALSE
yoki NULL
bo'lishi mumkin. Biroq, PostgreSQL TRUE
va FALSE
qiymatlari bilan ishlashda juda moslashuvchan.
Quyidagi jadvalda PostgreSQLda TRUE
va FALSE
uchun haqiqiy harf qiymatlari ko'rsatilgan.
True | False |
---|---|
true | false |
't' | 'f' |
'true' | 'false' |
'y' | 'n' |
'yes' | 'no' |
'1' | '0' |
Esda tutingki, bosh yoki keyingi boʻshliq muhim emas va true
va false
dan tashqari barcha doimiy qiymatlar bitta qoʻshtirnoq ichiga olinishi kerak.
Keling, PostgreSQL Boolean ma'lumotlar turidan foydalanishning ba'zi misollarini ko'rib chiqaylik.
Birinchidan, qaysi mahsulotlar mavjudligini qayd qilish uchun stock_availability
nomli yangi jadval yarating.
CREATE TABLE stock_availability (
product_id INT PRIMARY KEY,
available BOOLEAN NOT NULL
);
Ikkinchidan, stock_availability
jadvaliga namuna maʼlumotlarini kiriting. Biz mantiqiy qiymatlar uchun har xil harf qiymatlaridan foydalanamiz.
INSERT INTO stock_availability (product_id, available)
VALUES
(100, TRUE),
(200, FALSE),
(300, 't'),
(400, '1'),
(500, 'y'),
(600, 'yes'),
(700, 'no'),
(800, '0');
Uchinchidan, mahsulotlarning mavjudligini tekshiring:
SELECT *
FROM stock_availability
WHERE available = 'yes';
product_id | available
------------+-----------
100 | t
300 | t
400 | t
500 | t
600 | t
(5 rows)
Mantiqiy ustundan foydalanib, hech qanday operatorsiz haqiqiy qiymatni ko'rsatishingiz mumkin. Masalan, quyidagi so'rov barcha mavjud mahsulotlarni qaytaradi:
SELECT *
FROM stock_availability
WHERE available;
Xuddi shunday, agar siz false qiymatlarni qidirmoqchi bo'lsangiz, mantiqiy ustun qiymatini har qanday haqiqiy mantiqiy doimiylar bilan solishtirasiz.
Quyidagi so'rov mavjud bo'lmagan mahsulotlarni qaytaradi.
SELECT
*
FROM
stock_availability
WHERE
available = 'no';
product_id | available
------------+-----------
200 | f
700 | f
800 | f
(3 rows)
Shu bilan bir qatorda, mantiqiy ustundagi qiymatlar false ekanligini tekshirish uchun NOT
operatoridan foydalanishingiz mumkin:
SELECT
*
FROM
stock_availability
WHERE
NOT available;
Mavjud mantiqiy ustun uchun standart qiymatni o'rnatish uchun siz ALTER TABLE
iborasida SET DEFAULT
bandidan foydalanasiz.
Masalan, quyidagi ALTER TABLE
iborasi stock_availability
jadvalidagi available
ustun uchun standart qiymatni o'rnatadi:
ALTER TABLE stock_availability
ALTER COLUMN available
SET DEFAULT FALSE;
available
ustun qiymatini ko'rsatmasdan qator qo'shsangiz, PostgreSQL sukut bo'yicha FALSE
dan foydalanadi:
INSERT INTO stock_availability (product_id)
VALUES (900);
SELECT *
FROM stock_availability
WHERE product_id = 900;
product_id | available
------------+-----------
900 | f
(1 row)
Xuddi shunday, agar siz jadval yaratishda mantiqiy ustun uchun standart qiymatni o'rnatmoqchi bo'lsangiz, ustun ta'rifida DEFAULT
cheklovidan quyidagi tarzda foydalanasiz:
CREATE TABLE boolean_demo (
...
is_ok BOOL DEFAULT 't'
);
- Mantiqiy ma'lumotlarini saqlash uchun PostgreSQL
BOOLEAN
ma'lumotlar turidan foydalaning.