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

MySQL में ENUM फ़ील्ड में NOT NULL का प्रभाव

MySQL ENUM डेटा प्रकार: NOT NULL के साथ और बिना व्यवहार का अंतर

ENUM डेटा प्रकार में, यदि आप NOT NULL घोषित नहीं करते हैं, तो डिफ़ॉल्ट मान NULL होता है। लेकिन यदि आप NOT NULL घोषित करते हैं, तो यह ENUM सूची का पहला मान लेता है।

केस 1: NOT NULL के बिना (डिफ़ॉल्ट NULL)

टेबल बनाना

mysql> CREATE TABLE DemoTable1 (isMarried ENUM('YES', 'NO'));

मान डाले बिना रिकॉर्ड डालना

mysql> INSERT INTO DemoTable1 VALUES();

रिकॉर्ड देखना

mysql> SELECT * FROM DemoTable1;

आउटपुट:

+-----------+
| isMarried |
+-----------+
| NULL      |
+-----------+
1 row in set (0.00 sec)

केस 2: NOT NULL के साथ (पहला ENUM मान डिफ़ॉल्ट)

टेबल बनाना

mysql> CREATE TABLE DemoTable2 (isMarried ENUM('YES', 'NO') NOT NULL);

मान डाले बिना रिकॉर्ड डालना

mysql> INSERT INTO DemoTable2 VALUES();

रिकॉर्ड देखना

mysql> SELECT * FROM DemoTable2;

आउटपुट:

+-----------+
| isMarried |
+-----------+
| YES       |
+-----------+
1 row in set (0.00 sec)

मुख्य अंतर सारांश:

परिदृश्यडिफ़ॉल्ट मानव्यवहार
ENUM बिना NOT NULLNULLस्पष्ट मान न देने पर NULL स्टोर होता है
ENUM साथ NOT NULLपहला ENUM मानस्पष्ट मान न देने पर पहला मान ('YES') स्टोर होता है

व्यावहारिक प्रभाव

  • NOT NULL के बिना: डेटा अखंडता जांच के लिए NULL की जांच करनी पड़ती है
  • NOT NULL के साथ: डिफ़ॉल्ट मान पूर्वानुमानित होता है, लेकिन अनजाने में गलत डेटा दर्ज हो सकता है
  • सर्वोत्तम अभ्यास: हमेशा स्पष्ट मान प्रदान करें या डिफ़ॉल्ट को स्पष्ट रूप से सेट करें: ENUM('YES', 'NO') NOT NULL DEFAULT 'NO'

ENUM आंतरिक संग्रहण

ENUM मान आंतरिक रूप से पूर्णांक के रूप में संग्रहीत होते हैं (1 से शुरू): 'YES'=1, 'NO'=2। NULL मान 0 के रूप में संग्रहीत होता है।

  1. Java MySQL का उपयोग करके MySQL टेबल अपडेट करें Java MySQL का उपयोग करके MySQL टेबल अपडेट करें

    JDBC में PreparedStatement का उपयोग करके पैरामीटरीकृत अपडेट को सुरक्षित रूप से निष्पादित करें। टेबल बनाना और डेटा डालना CREATE TABLE DemoTable(Id INT, FirstName VARCHAR(40)); Query OK, 0 rows affected (0.62 sec) INSERT INTO DemoTable VALUES(100,Chris),(111,Mike),(121,Sam); अपडेट से पहले SELECT

  1. - MySQL: GROUP BY के साथ फील्ड कैसे अपडेट करें?

    समस्या MySQL सीधे UPDATE में GROUP BY का समर्थन नहीं करता। समाधान: ORDER BY LIMIT का उपयोग करें। उदाहरण टेबल बनाएं: ); डेटा डालें: INSERT INTO DemoTable2018 (EmployeeName, EmployeeSalary) VALUES (Chris, 25400); अपडेट क्वेरी Chris की पहली प्रविष्टि (EmployeeId के अनुसार) का वेतन बढ़ाएं: ORDER B

  1. - MySQL में TIMESTAMP फ़ील्ड वाली टेबल कैसे बनाएँ?

    TIMESTAMP कॉलम TIMESTAMP DEFAULT CURRENT_TIMESTAMP से ऑटोमैटिक वर्तमान समय सेट होता है। उदाहरण ); डेटा डालना और परिणाम insert into demo50(start_date) values(2020-01-01); +----+---------------------+---------------------+ | id | start_date | end_date | +----+-----------------