Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MySQL

MySQL में बूलियन (Boolean) फील्ड जोड़ें: TINYINT(1), BOOL, BOOLEAN

MySQL में बूलियन डेटा टाइप: TINYINT(1), BOOL, BOOLEAN — सभी समानार्थी हैं

मुख्य तथ्य:

  • BOOL और BOOLEAN TINYINT(1) के समानार्थी (synonyms) हैं
  • आंतरिक रूप से MySQL इन्हें TINYINT(1) में बदल देता है
  • स्टोरेज: 1 बाइट (रेंज: -128 से 127 साइनड, 0 से 255 अनसाइनड)
  • 0 = FALSE, 1 = TRUE (कोई भी गैर-शून्य = TRUE)

व्यावहारिक प्रदर्शन

1. BOOL कॉलम के साथ टेबल बनाएं:

mysql> CREATE TABLE AddBoolDemo (isToggle BOOL); 
Query OK, 0 rows affected (1.24 sec)

2. आंतरिक प्रतिनिधित्व जांचें (SHOW CREATE TABLE):

mysql> SHOW CREATE TABLE AddBoolDemo\G
*************************** 1. row *************************** 
Table: AddBoolDemo 
Create Table: CREATE TABLE `addbooldemo` ( 
  `isToggle` tinyint(1) DEFAULT NULL 
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci 
1 row in set (0.00 sec)

पुष्टि: BOOL → tinyint(1) में बदल गया।

3. मान डालें (TRUE/FALSE/1/0):

mysql> INSERT INTO AddBoolDemo VALUES(TRUE);
mysql> INSERT INTO AddBoolDemo VALUES(FALSE);
mysql> INSERT INTO AddBoolDemo VALUES(1);
mysql> INSERT INTO AddBoolDemo VALUES(0);

4. स्टोर किए गए मान देखें:

mysql> SELECT * FROM AddBoolDemo;
+----------+ 
| isToggle | 
+----------+ 
| 1        | 
| 0        | 
| 1        | 
| 0        | 
+----------+ 
4 rows in set (0.00 sec)

PHP/एप्लीकेशन में उपयोग:

// PHP में
$stmt = $pdo->prepare("INSERT INTO table (bool_col) VALUES (?)");
$stmt->execute([true]);   // 1 स्टोर होता है
$stmt->execute([false]);  // 0 स्टोर होता है

// पढ़ते समय
$row = $stmt->fetch();
$isActive = (bool)$row['bool_col']; // 1→true, 0→false

बूलियन कॉलम पर इंडेक्स:

  • कम कार्डिनैलिटी (केवल 2 मान) के कारण इंडेक्स अक्सर उपयोगी नहीं होता
  • कंपोजिट इंडेक्स में उपयोगी हो सकता है: INDEX (is_active, created_at)
  • पार्शनिंग के लिए बेहतर विकल्प

सर्वोत्तम अभ्यास:

  • स्कीमा में BOOLEAN या BOOL लिखें (पठनीयता के लिए)
  • एप्लीकेशन कोड में भाषा के बूलियन लिटरल उपयोग करें
  • IS TRUE, IS FALSE, IS NOT TRUE ऑपरेटर उपयोग करें:
SELECT * FROM table WHERE is_active IS TRUE;
SELECT * FROM table WHERE is_active IS FALSE;
SELECT * FROM table WHERE is_active IS NOT TRUE; -- NULL भी शामिल
  1. - MySQL में टेबल के सभी कॉलम कैसे हटाएं?

    DROP TABLE का उपयोग करके पूरी टेबल हटाना MySQL में किसी टेबल के सभी कॉलम हटाने का सबसे सरल तरीका पूरी टेबल को ही ड्रॉप करना है। सिंटैक्स DROP TABLE yourTableName; उदाहरण 1. टेबल बनाना CREATE TABLE DemoTable ( StudentId INT NOT NULL AUTO_INCREMENT PRIMARY KEY, StudentFirstName VARCHAR(20)

  1. - MySQL टेबल के टाइमस्टैम्प फ़ील्ड को कैसे अपडेट करें? NOW() फ़ंक्शन

    टेबल बनाएं mysql> create table DemoTable ( -> PunchOut timestamp, -> PunchStatus tinyint(1) -> ); Query OK, 0 rows affected (0.51 sec) रिकॉर्ड्स डालें mysql> insert into DemoTable values(2019-01-31 6:30:10,1); Query OK, 1 row affected (0.22 sec) mysql> insert into Demo

  1. - MySQL में UPDATE और CURDATE() का उपयोग करके मौजूदा टेबल में वर्तमान दिनांक जोड़ना

    MySQL में UPDATE स्टेटमेंट के साथ CURDATE() फ़ंक्शन का उपयोग करके मौजूदा टेबल के दिनांक कॉलम को वर्तमान दिनांक से अपडेट करें। सिंटैक्स UPDATE yourTableName SET yourColumnName = CURDATE(); उदाहरण: टेबल बनाना और डेटा डालना mysql> CREATE TABLE DemoTable ( -> DueDate DATETIME -> );