MySQL BOOLEAN දත්ත වර්ගය විස්තර කරයි: TINYINT(1), TRUE/FALSE, සහ හොඳම පුරුදු

.## 1. හැඳින්වීම

MySQL යනු විවෘත-මූලාශ්‍ර RDBMS එකක් වන අතර බොහෝ සංවර්ධකයින් සඳහා දත්ත ගබඩා කළමනාකරණයේ ප්‍රධාන තේරීමක් වී ඇත. එහි දත්ත වර්ග අතර, BOOLEAN වර්ගය දත්ත ගබඩාවල සත්‍ය/අසත්‍ය (true/false) අගයන් නිරූපණය කිරීම සඳහා පුළුල් ලෙස භාවිතා වේ. කෙසේ වෙතත්, MySQL BOOLEAN වර්ගය වෙනත් දත්ත ගබඩා පද්ධති වලින් වෙනස් ලෙස හසුරවයි, එබැවින් ඔබට අවධානයෙන් සිටිය යුතුය. මෙම ලිපියේදී, MySQL BOOLEAN හි මූලික භාවිතය සිට එහි සීමා සහ සම්භවිත විකල්පයන් දක්වා සියල්ල පැහැදිලි කරමු.

目次

2. BOOLEAN වර්ගයේ මූලික කරුණු

2.1 BOOLEAN නියමය සහ MySQL එය කෙසේ ක්‍රියාත්මක කරයි

MySQL හි, BOOLEAN වර්ගය සැබැවින්ම වෙනම වර්ගයක් ලෙස නොපවතී. එහි වෙනුවට MySQL TINYINT(1) භාවිතා කරයි. BOOLEAN යනු TINYINT(1) සඳහා අන්‍ය නාමයක් වන අතර, MySQL අභ්‍යන්තරයෙන් 0 කුමක්ද FALSE ලෙස, 1 කුමක්ද TRUE ලෙස සැලකේ. මේ නිසා, BOOLEAN ලෙස නිර්වචනය කරන තීරුවක් ඇත්තේ 0 සිට 255 දක්වා පූර්ණ සංඛ්‍යා අගයන් ගබඩා කළ හැකි බවයි, සහ MySQL 0 සහ 1 අගයන් boolean අගයන් ලෙස හඳුනා ගනී.

2.2 MySQL TINYINT(1) භාවිතා කරන හේතුව

MySQL, පද්ධතියේ සමස්ත කාර්ය සාධනය සහ අනුකූලතාවය රැක ගැනීමට කැපවීමෙන්, කැපවූ BOOLEAN වර්ගයක් වෙනුවට TINYINT(1) භාවිතා කරයි. TINYINT වර්ගය 1-බයිට් පූර්ණ සංඛ්‍යා වර්ගයක් වන අතර, දත්ත ගබඩාවේ ගබඩා සහ මතක භාවිතය කාර්යක්ෂමව කරයි. එසේම, TINYINT MySQL හි අනෙකුත් සංඛ්‍යා වර්ග සමඟ සමාන ලෙස හැසිරවිය හැකි බැවින්, පද්ධතිය පුරා අනුකූලතාවය රැක ගැනීමට උපකාරී වේ.

2.3 0 සහ 1 අතර සම්බන්ධතාවය

MySQL හි, BOOLEAN වර්ගය අභ්‍යන්තරයෙන් FALSE සහ TRUE නිරූපණය කිරීම සඳහා 0 සහ 1 භාවිතා කරයි. මෙය බොහෝ වැඩසටහන් භාෂා වල ලොජික අගයන් හසුරවන්නේ වගේම, දත්ත ගබඩාව සමඟ වැඩ කරන විට TRUE සහ FALSE වෙනුවට 0 සහ 1 භාවිතා කිරීමට ඔබට ඉඩ සලසයි. කෙසේ වෙතත්, ඔබට අවධානයෙන් සිටිය යුතුය, 任意 (අහඹු) පූර්ණ සංඛ්‍යා අගයන්ද ඇතුළත් කළ හැකි බවයි.

3. BOOLEAN වර්ගය භාවිතා කිරීමේ උදාහරණ

3.1 වගුවක BOOLEAN තීරුවක් නිර්වචනය කිරීමේ ක්‍රමය

BOOLEAN වර්ගය භාවිතා කරමින් වගුවක් නිර්වචනය කිරීමට, තීරුවේ වර්ගය BOOLEAN හෝ TINYINT(1) ලෙස සඳහන් කරන්න. පහත උදාහරණය is_active තීරුවය BOOLEAN ලෙස නිර්වචනය කරයි.

CREATE TABLE example_table (
  id INT AUTO_INCREMENT PRIMARY KEY,
  is_active BOOLEAN
);

මෙම උදාහරණයේ, is_active තීරුව BOOLEAN ලෙස නිර්වචනය කර ඇත, නමුත් අභ්‍යන්තරයෙන් එය TINYINT(1) ලෙස හසුරවයි.

3.2 දත්ත ඇතුළත් කිරීමේ උදාහරණ (TRUE සහ FALSE භාවිතා කිරීම)

BOOLEAN තීරුවකට දත්ත ඇතුළත් කරන විට, TRUE සහ FALSE යන යතුරුපද භාවිතා කළ හැක. MySQL මෙම යතුරුපද 1 සහ 0 ලෙස පරිවර්තනය කරයි.

INSERT INTO example_table (is_active) VALUES (TRUE);
INSERT INTO example_table (is_active) VALUES (FALSE);

3.3 SELECT ප්‍රකාශනයක BOOLEAN භාවිතා කරන උදාහරණ ප්‍රශ්න

SELECT ප්‍රකාශනයක, BOOLEAN තීරුවක් කොන්දේසියක් ලෙස භාවිතා කළ හැක. = මෙහෙයුම්කරු සහ IS මෙහෙයුම්කරු අතර වෙනස තේරුම් ගනිමින් එය අවධානයෙන් භාවිතා කරන්න.

-- Using the = operator
SELECT * FROM example_table WHERE is_active = TRUE;

-- Using the IS operator
SELECT * FROM example_table WHERE is_active IS TRUE;

ඔබ = මෙහෙයුම්කරු භාවිතා කරන විට, 1 සහ 0 පමණක් TRUE සහ FALSE ලෙස හඳුනා ගනී. නමුත් IS මෙහෙයුම්කරු භාවිතා කරන විට, 1 නොවන පූර්ණ සංඛ්‍යා අගයන්ද TRUE ලෙස හඳුනා ගත හැකි බැවින්, ඔබට අවධානයෙන් සිටිය යුතුය.

4. BOOLEAN වර්ගයේ සීමා සහ වැදගත් සටහන්

4.1 BOOLEAN TINYINT(1) හි අන්‍ය නාමයක් වීමෙන් ඇති සීමා

BOOLEAN ඇත්තෙන්ම TINYINT(1) හි අන්‍ය නාමයක් වන බැවින්, එය 0 සිට 255 දක්වා ඕනෑම පූර්ණ සංඛ්‍යා අගයක් ගබඩා කළ හැක. වෙනත් වචනයෙන් කියනවා නම්, 1 හෝ 0 නොවන අගයන්ද BOOLEAN තීරුවකට ඇතුළත් කළ හැක. දත්ත අඛණ්ඩතාව රැක ගැනීමට, දත්ත ඇතුළත් කිරීමේදී සුදුසු වලංගුකරණය (validation) ක්‍රියාත්මක කළ යුතුය.

4.2 NULL අගයන් හසුරවීම සහ NOT NULL භාවිතය

පෙරනිමියෙන්, MySQL BOOLEAN තීරුවක් NULL අගයන්ට ඉඩ දේ. ඔබට NULL අගයන් ඉඩ නොදීමට අවශ්‍ය නම්, තීරුව නිර්වචනය කරන විට NOT NULL යන්න පැහැදිලිව සඳහන් කළ යුතුය.

CREATE TABLE example_table (
  id INT AUTO_INCREMENT PRIMARY KEY,
  is_active BOOLEAN NOT NULL
);

මෙම උදාහරණයේ, is_active තීරුවට NULL අගයන් ඇතුළත් කළ නොහැක.

4.3 ප්‍රමිත SQL වලින් වෙනස්කම්

MySQL, BOOLEAN වර්ගය වෙනත් දත්ත ගබඩා පද්ධති සහ ප්‍රමිතී SQL වලට වඩා වෙනස් ලෙස හසුරවයි. බොහෝ වෙනත් දත්ත ගබඩා පද්ධති වල, BOOLEAN ස්පෂ්ටව සහාය දක්වයි සහ සාමාන්‍යයෙන් TRUE සහ FALSE පමණක් ගබඩා කළ හැක. එහෙත් MySQL හි BOOLEAN, TINYINT(1) භාවිතයෙන් අනුකරණය කරනු ලබන බැවින්, වෙනත් දත්ත ගබඩාවකට මාරු කරන විට අවධානයෙන් සිටිය යුතුය.

5. BOOLEAN වර්ගයට විකල්ප

5.1 ENUM සමඟ ශක්තිමත් වර්ග පරීක්ෂණය

ඔබට BOOLEAN ලබා දෙන පරීක්ෂණයට වඩා ශක්තිමත් වර්ග පරීක්ෂණයක් අවශ්‍ය නම්, ENUM වර්ගය භාවිතා කිරීම එක් විකල්පයක් වේ. ENUM සමඟ, ඔබට තීරුවක ඉඩ දෙන අගයන් නියමිත කට්ටලයක් වෙත සීමා කළ හැක.

CREATE TABLE example_table (
  id INT AUTO_INCREMENT PRIMARY KEY,
  is_active ENUM('FALSE', 'TRUE') NOT NULL
);

මෙම ක්‍රමය භාවිතා කිරීමෙන්, is_active තීරුවට ‘TRUE’ හෝ ‘FALSE’ පමණක් ගබඩා කළ හැකි අතර, වෙනත් අගයන් කිසිවක් ඉඩ නොදේ.

5.2 BOOLEAN වෙනුවට ENUM භාවිතා කිරීමේ ප්‍රායෝගික උදාහරණයක්

ENUM භාවිතා කිරීමෙන්, ඔබට true/false අගයන් කළමනාකරණය කළ හැකි අතර BOOLEAN තීරුවට වඩා දත්ත අඛණ්ඩතාවය වැඩි කරගත හැක. එහෙත්, ENUM දත්ත ස්ට්‍රින් ලෙස ගබඩා කරන බැවින්, BOOLEAN (TINYINT(1)) භාවිතයට වඩා ගබඩා කාර්යක්ෂමතාව අඩු විය හැක. එම නිසා, ඔබේ යෙදුමේ අවශ්‍යතා අනුව සුදුසුම වර්ගය තෝරා ගැනීම වැදගත් වේ.

6. BOOLEAN සඳහා භාවිතා නිරූපණ සහ හොඳම පුරුදු

6.1 BOOLEAN යනු නිවැරදි තේරීම වන අවස්ථා

BOOLEAN වර්ගය (හෝ TINYINT(1)) කොඩි සහ ස්විච් කළමනාකරණයට ප්‍රයෝජනවත් වේ. උදාහරණයක් ලෙස, පරිශීලකයෙක් සක්‍රියද නැද්ද, හෝ නිෂ්පාදනයක් තොගයේ තිබේද යන බයිනරි (TRUE/FALSE) තොරතුරු ගබඩා කිරීම සඳහා එය සුදුසු වේ.

6.2 BOOLEAN තීරු වල ඉන්ඩෙක්ස් භාවිතය

BOOLEAN තීරුවකට ඉන්ඩෙක්ස් සෑදීමෙන් විමසුම් කාර්යක්ෂමතාව වැඩි කළ හැක. එහෙත්, BOOLEAN තීරුවේ ඉන්ඩෙක්ස් කිරීමේ ප්‍රයෝජනය ඉන්ඩෙක්ස් කාඩිනල් (අගයන්ගේ විවිධත්වය) මත පදනම් වේ. උදාහරණයක් ලෙස, බොහෝ ලේඛන TRUE අගය ගනී නම්, ඉන්ඩෙක්ස් සීමිත ප්‍රතිලාභයක් පමණක් ලබා දිය හැක.

6.3 දත්ත අඛණ්ඩතාව රැක ගැනීමේ හොඳම පුරුදු

BOOLEAN වර්ගය භාවිතා කරන විට, දත්ත අඛණ්ඩතාව රැක ගැනීමට පහත හොඳම පුරුදු සලකා බලන්න.

  • තීරුවේ NULL අගයන් ඉඩ නොදෙන්න අවශ්‍ය නම්, NOT NULL ලෙස නියම කරන්න.
  • දත්ත ඇතුළත් කිරීමේදී 0 සහ 1 හැර වෙනත් අගයන් ඇතුළත් නොවීමට සුදුසු වලංගුකරණය ක්‍රියාත්මක කරන්න.
  • ශක්තිමත් වර්ග පරීක්ෂණයක් සඳහා ENUM භාවිතය සලකා බලන්න.

7. සාරාංශය

MySQL හි BOOLEAN වර්ගය නිවැරදිව අවබෝධ කර භාවිතා කිරීම දත්ත ගබඩා සැලසුම් සහ යෙදුම් සංවර්ධනය සඳහා ඉතා වැදගත් වේ. BOOLEAN TINYINT(1) ලෙස අනුකරණය කර ඇති බැවින්, අහඹු පූර්ණ සංඛ්‍යා අගයන් ඇතුළත් විය හැකි නිසා අවධානයෙන් සිටිය යුතුය. ශක්තිමත් වර්ග පරීක්ෂණයක් අවශ්‍ය නම්, ENUM භාවිතය සලකා බැලීමත් හොඳ අදහසකි.