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

MySQL आउट-ऑफ-रेंज संख्यात्मक मानों को कैसे संभालता है?


कॉलम डेटा प्रकार की अनुमत रेंज से बाहर के MySQL संख्यात्मक मान को संभालना SQL मोड पर निम्नलिखित तरीकों से निर्भर करता है:

(A) सक्षम SQL स्ट्रिक्ट मोड - जब स्ट्रिक्ट SQL मोड सक्षम होता है, तो आउट-ऑफ-रेंज मान डालने पर MySQL त्रुटि लौटाता है। इस मामले में, कुछ या सभी मानों का इन्सर्ट विफल हो जाता है।

उदाहरण के लिए, हमने दो कॉलम वाली एक टेबल बनाई जिसमें कॉलम पर TINYINT और UNSIGNED TINYINT डेटा प्रकार हैं।

mysql> Create table counting(Range1 Tinyint, Range2 Tinyint Unsigned); 
Query OK, 0 rows affected (0.14 sec)

अब निम्नलिखित कमांड की मदद से हमने स्ट्रिक्ट SQL मोड सक्षम किया:

mysql> Set SQL_MODE ='traditional'; 
Query OK, 0 rows affected (0.00 sec)

अब, यदि हम कॉलम में आउट-ऑफ-रेंज मान डालने का प्रयास करेंगे, तो MySQL त्रुटि दर्शाता है और दोनों इन्सर्ट विफल हो जाते हैं जिसे नीचे दी गई क्वेरी से जांचा जा सकता है:

mysql> Insert into Counting(Range1, Range2) Values(256,256); 
ERROR 1264 (22003): Out of range value for column 'Range1' at row 1 
mysql> Select * from counting; 
Empty set (0.00 sec)

(B) अक्षम SQL स्ट्रिक्ट मोड - जब प्रतिबंधात्मक SQL मोड अक्षम होता है, तो मान को MySQL द्वारा उस कॉलम डेटा प्रकार के उपयुक्त अंतिम बिंदु तक काट दिया जाता है और परिणामी मान संचित हो जाता है। MySQL उन चेतावनियों को दर्शाता है जो कॉलम-असाइनमेंट रूपांतरण के परिणामस्वरूप होती हैं जो काटने के कारण होती हैं।

उदाहरण के लिए, यदि हम SQL स्ट्रिक्ट मोड को अक्षम करने के बाद कॉलम में मान डालेंगे, तो MySQL चेतावनियों को दर्शाएगा और मानों को उपयुक्त अंतिम बिंदु तक काटकर स्टोर करेगा। इसे नीचे दी गई क्वेरी से समझा जा सकता है:

mysql> Set SQL_MODE = ''; 
Query OK, 0 rows affected (0.00 sec) 
mysql> Insert Into Counting(Range1,Range2) values (256,256); 
Query OK, 1 row affected, 2 warnings (0.02 sec) 
mysql> Show Warnings; 
+---------+------+-------------------------------------------------+ 
| Level   | Code | Message                                         | 
+---------+------+-------------------------------------------------+ 
| Warning | 1264 | Out of range value for column 'Range1' at row 1 | 
| Warning | 1264 | Out of range value for column 'Range2' at row 1 | 
+---------+------+-------------------------------------------------+ 
2 rows in set (0.00 sec) 
mysql> Select * from Counting; 
+--------+--------+ 
| Range1 | Range2 | 
+--------+--------+ 
| 127    | 255    | 
+--------+--------+ 
1 row in set (0.00 sec)

  1. - MySQL डेटाबेस में क्षैतिज मान कैसे गिनें

    आप MySQL से एग्रीगेट फ़ंक्शन COUNT() का उपयोग करके डेटाबेस पर क्षैतिज मान गिन सकते हैं। आइए पहले एक टेबल बनाते हैं - create table DemoTable ( Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, FirstValue int, SecondValue int, ThirdValue int, FourthValue int ); Query OK, 0 rows a

  1. - MySQL में BETWEEN ऑपरेटर से रेंज में मान खोजना

    MySQL में किसी मान के दो कॉलम्स (शुरुआत और अंत) द्वारा परिभाषित रेंज के बीच होने की जांच के लिए BETWEEN ऑपरेटर का उपयोग किया जाता है। यह रेंज-आधारित लुकअप के लिए उपयोगी है। उदाहरण के लिए टेबल बनाना mysql> CREATE TABLE DemoTable ( Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, StartRange INT

  1. - MySQL में कॉलम मानों को CSV फॉर्मेट में कैसे प्रदर्शित करें

    कॉलम मानों को CSV के रूप में प्रदर्शित करने के लिए GROUP_CONCAT() का उपयोग करें। आइए पहले एक टेबल बनाते हैं: mysql> create table DemoTable786 ( StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY, StudentName varchar(100) ) AUTO_INCREMENT=101; Query OK, 0 rows affected (0.70 sec) इन्स