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

MySQL सीमा से बाहर संख्यात्मक मानों को कैसे संभालता है?

<घंटा/>

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

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

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

mysql> टेबल काउंटिंग बनाएं (रेंज 1 टिनींट, रेंज 2 टिनींट अहस्ताक्षरित); क्वेरी ओके, 0 पंक्तियाँ प्रभावित (0.14 सेकंड)

अब निम्न कमांड की मदद से, हमने सख्त SQL मोड को सक्षम किया है

mysql> SQL_MODE ='पारंपरिक' सेट करें;क्वेरी ठीक है, 0 पंक्तियाँ प्रभावित (0.00 सेकंड)

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

mysql> काउंटिंग (रेंज 1, रेंज 2) वैल्यू (256,256) में डालें; त्रुटि 1264 (22003):पंक्ति 1mysql पर कॉलम 'रेंज 1' के लिए सीमा मान से बाहर> गिनती से * चुनें; खाली सेट (0.00 सेकंड) 

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

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

mysql> SQL_MODE ='' सेट करें; क्वेरी ठीक है, 0 पंक्तियाँ प्रभावित (0.00 सेकंड) mysql> गिनती में सम्मिलित करें (रेंज 1, रेंज 2) मान (256,256); क्वेरी ठीक है, 1 पंक्ति प्रभावित, 2 चेतावनियाँ (0.02 सेकंड) mysql> चेतावनियां दिखाएं; ---------------------+| स्तर | कोड | संदेश |+------------+----------+---------------------------- -------------------+| चेतावनी | 1264 | पंक्ति 1 पर कॉलम 'रेंज 1' के लिए सीमा मान से बाहर || चेतावनी | 1264 | पंक्ति 1 पर कॉलम 'रेंज 2' के लिए सीमा मूल्य से बाहर |+------+---- -----------------------------+2 पंक्तियाँ सेट में (0.00 सेकंड)mysql> काउंटिंग से * चुनें;+--- -----+----------+| रेंज1 | रेंज 2 |+-----+-----------+| 127 | 255 |+-----------+-----------+1 पंक्ति सेट (0.00 सेकंड) में

  1. MySQL डेटाबेस पर क्षैतिज मानों की गणना कैसे करें?

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

  1. MySQL में श्रेणी के बीच मान कैसे खोजें?

    इसके लिए MySQL में BETWEEN ऑपरेटर का इस्तेमाल करें। आइए पहले एक टेबल बनाएं - mysql> create table DemoTable    -> (    -> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,    -> Start int,    -> End int    -> ); Query OK, 0 rows affected (

  1. MySQL में CSV के रूप में कॉलम मान कैसे प्रदर्शित करें?

    स्तंभ मानों को CSV के रूप में प्रदर्शित करने के लिए, GROUP_CONCAT() का उपयोग करें। आइए पहले एक टेबल बनाएं - टेबल बनाएं DemoTable786 (StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY, StudentName varchar(100)) AUTO_INCREMENT=101;क्वेरी ठीक, 0 पंक्तियाँ प्रभावित (0.70 सेकंड) इंसर्ट कमांड का उपयोग