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

MySQL में फ्लैग के लिए कौन सा डेटा प्रकार उपयोग करना चाहिए?

बूलियन/फ्लैग मानों के लिए TINYINT(1) का उपयोग

MySQL में बूलियन फ्लैग (0/1, true/false) स्टोर करने के लिए TINYINT(1) सबसे उपयुक्त और आमतौर पर उपयोग किया जाने वाला डेटा प्रकार है।

सिंटैक्स

yourColumnName TINYINT(1) DEFAULT 1;

उदाहरण

1. टेबल बनाना

mysql> CREATE TABLE DemoTable (
    ClientId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    ClientName VARCHAR(20),
    isMarried TINYINT(1) DEFAULT 1
);
Query OK, 0 rows affected (0.64 sec)

2. डेटा डालना

mysql> INSERT INTO DemoTable(ClientName, isMarried) VALUES('Larry', 0);
mysql> INSERT INTO DemoTable(ClientName) VALUES('David');  -- डिफ़ॉल्ट 1 उपयोग होगा
mysql> INSERT INTO DemoTable(ClientName, isMarried) VALUES('Mike', 1);
mysql> INSERT INTO DemoTable(ClientName) VALUES('Carol');  -- डिफ़ॉल्ट 1 उपयोग होगा

3. रिकॉर्ड्स देखना

mysql> SELECT * FROM DemoTable;
+----------+------------+-----------+
| ClientId | ClientName | isMarried |
+----------+------------+-----------+
| 1        | Larry      | 0         |
| 2        | David      | 1         |
| 3        | Mike       | 1         |
| 4        | Carol      | 1         |
+----------+------------+-----------+
4 rows in set (0.00 sec)

डेटा प्रकार तुलना

डेटा प्रकार स्टोरेज रेंज उपयोग
TINYINT(1) 1 बाइट -128 से 127 (साइन) / 0 से 255 (अनसाइन्ड) ✅ फ्लैग के लिए सर्वश्रेष्ठ
BOOLEAN / BOOL 1 बाइट TINYINT(1) का पर्यायवाची ✅ समान, अधिक पठनीय
BIT(1) ~1 बाइट 0 या 1 ⚠️ डिस्प्ले समस्याएं (बाइनरी दिखाता है)
CHAR(1) 1 बाइट + ओवरहेड 'Y'/'N', 'T'/'F' ❌ स्टोरेज वेस्ट, तुलना धीमी
ENUM('0','1') 1-2 बाइट केवल सूचीबद्ध मान ⚠️ ओवरहेड अधिक

TINYINT(1) के फायदे

  • कम स्टोरेज: केवल 1 बाइट प्रति पंक्ति
  • तेज़ तुलना: पूर्णांक तुलना स्ट्रिंग से तेज़
  • इंडेक्स के अनुकूल: छोटे इंडेक्स, तेज़ खोज
  • डिफ़ॉल्ट मान: DEFAULT 0 या 1 सेट करना आसान
  • एप्लिकेशन में आसान: अधिकांश भाषाओं में बूलियन में मैप होता है

MySQL में BOOLEAN

MySQL में BOOLEAN और BOOL वास्तव में TINYINT(1) के पर्यायवाची हैं:

CREATE TABLE DemoTable (
    isActive BOOLEAN DEFAULT TRUE,
    isDeleted BOOL DEFAULT FALSE
);

क्वेरी में उपयोग

-- 1/0 के रूप में
SELECT * FROM DemoTable WHERE isMarried = 1;

-- बूलियन कॉन्टेक्स्ट में (MySQL में TRUE=1, FALSE=0)
SELECT * FROM DemoTable WHERE isMarried;

-- केस स्टेटमेंट के साथ
SELECT ClientName, 
       CASE isMarried WHEN 1 THEN 'Married' ELSE 'Single' END AS Status
FROM DemoTable;

BIT(1) की समस्या

mysql> CREATE TABLE TestBit (flag BIT(1));
mysql> INSERT INTO TestBit VALUES(1), (0);
mysql> SELECT * FROM TestBit;
+------+
| flag |
+------+
|      |  -- अदृश्य बाइनरी कैरेक्टर
|      |
+------+

mysql> SELECT flag+0 FROM TestBit;  -- दृश्यमान बनाने के लिए
+--------+
| flag+0 |
+--------+
| 1      |
| 0      |
+--------+
  1. - MySQL में स्ट्रिंग और नंबर के मिश्रण के लिए कौन सा डेटा टाइप उपयोग करें?

    VARCHAR() डेटा टाइप स्ट्रिंग और नंबर दोनों स्टोर करने के लिए VARCHAR() सबसे उपयुक्त है: CREATE TABLE yourTableName ( yourColumnName1 VARCHAR(40) ); उदाहरण insert into demo28(user_id) values(John_123), (David_44), (Mike99), (Sam101); परिणाम +----+----------+ | id | user_id | +----+----------+ |

  1. लिनक्स बनाम BSD: आपको किसका उपयोग करना चाहिए? लिनक्स बनाम BSD: आपको किसका उपयोग करना चाहिए?

    MakeUseOf पर, हम लिनक्स को विंडोज़ और मैक OS X के विकल्प के रूप में काफी कवर करते हैं। हालांकि, वे केवल तीन ऑपरेटिंग सिस्टम नहीं हैं—BSD परिवार के यूनिक्स-जैसे ऑपरेटिंग सिस्टम भी हैं, जो तकनीकी रूप से लिनक्स से अलग हैं। निष्पक्ष प्रतिस्पर्धा के नाम पर, यह समय है कि हम BSD ऑपरेटिंग सिस्टम्स को भी कुछ

  1. SCP बनाम SFTP: फ़ाइल ट्रांसफर के लिए कौन सा उपयोग करें SCP बनाम SFTP: फ़ाइल ट्रांसफर के लिए कौन सा उपयोग करें

    SCP (सिक्योर कॉपी प्रोटोकॉल) और SFTP (सिक्योर फ़ाइल ट्रांसफर प्रोटोकॉल) FTP (फ़ाइल ट्रांसफर प्रोटोकॉल) के विकल्प हैं, जो स्थानीय, गैर-अनुसूचित फ़ाइल ट्रांसफर के लिए उपयोगी है। तीनों ईथरनेट पर एक स्थान से दूसरे स्थान पर फ़ाइलें ले जाने में मदद कर सकते हैं। हालांकि, FTP डेटा को प्लेन टेक्स्ट में भेजता