MySQL
अंकगणित
खोज…
टिप्पणियों
MySQL, अधिकांश मशीनों पर, इसकी गणना के लिए 64-बिट IEEE 754 फ़्लोटिंग पॉइंट अंकगणितीय का उपयोग करता है।
पूर्णांक संदर्भों में यह पूर्णांक अंकगणित का उपयोग करता है।
-
RAND()
एक सही यादृच्छिक संख्या जनरेटर नहीं है। इसका उपयोग मुख्य रूप से छद्म आयामी संख्या उत्पन्न करने के लिए किया जाता है
अंकगणितीय आपरेटर
MySQL निम्नलिखित अंकगणित ऑपरेटर प्रदान करता है
ऑपरेटर | नाम | उदाहरण |
---|---|---|
+ | इसके अलावा | SELECT 3+5; -> 8 SELECT 3.5+2.5; -> 6.0 SELECT 3.5+2; -> 5.5 |
- | घटाव | SELECT 3-5; -> -2 |
* | गुणन | SELECT 3 * 5; -> १५ |
/ | विभाजन | SELECT 20 / 4; -> ५ SELECT 355 / 113; -> 3.1416 SELECT 10.0 / 0; -> नल |
DIV | इंटेगर डिवीजन | SELECT 5 DIV 2; -> २ |
% या MOD | modulo | SELECT 7 % 3; -> १ SELECT 15 MOD 4 -> 3 का SELECT 15 MOD 4 SELECT 15 MOD -4 -> 3 का SELECT 15 MOD -4 SELECT -15 MOD 4 -> -3 SELECT -15 MOD -4 -> -3 SELECT 3 MOD 2.5 -> 0.5 |
BIGINT
यदि आपके अंकगणित में संख्याएँ पूर्णांक हैं, तो MySQL अपने कार्य को करने के लिए BIGINT
(हस्ताक्षरित 64-बिट) पूर्णांक डेटा प्रकार का उपयोग करता है। उदाहरण के लिए:
select (1024 * 1024 * 1024 * 1024 *1024 * 1024) + 1
-> 1,152,921,504,606,466,777
तथा
select (1024 * 1024 * 1024 * 1024 *1024 * 1024 * 1024
* 1024 * 1024 * 1024 -> BIGINT
सीमा त्रुटि से बाहर
डबल
यदि आपके अंकगणित में कोई भी संख्या भिन्न है, तो MySQL 64-बिट IEEE 754 फ़्लोटिंग पॉइंट अंकगणित का उपयोग करता है। फ़्लोटिंग पॉइंट अंकगणित का उपयोग करते समय आपको सावधान रहना चाहिए, क्योंकि कई फ़्लोटिंग पॉइंट नंबर सटीक मूल्यों के बजाय अंतर्निहित, सन्निकटन हैं ।
गणितीय निरंतर
अनुकरणीय
निम्नलिखित रिटर्न के मूल्य PI
6 दशमलव स्थानों के लिए स्वरूपित। वास्तविक मूल्य के लिए अच्छा है DOUBLE
;
SELECT PI(); -> 3.141593
त्रिकोणमिति (SIN, COS)
कोण रेडियन में हैं, डिग्रियों में नहीं। सभी गणना IEEE 754 64-बिट फ्लोटिंग पॉइंट में की जाती है । सभी फ़्लोटिंग पॉइंट कंप्यूटेशन छोटी त्रुटियों के अधीन होते हैं, जिन्हें मशीन e (एप्सिलॉन) त्रुटियों के रूप में जाना जाता है, इसलिए समानता के लिए उनकी तुलना करने की कोशिश से बचें। फ्लोटिंग पॉइंट का उपयोग करते समय इन त्रुटियों से बचने का कोई तरीका नहीं है; वे प्रौद्योगिकी के लिए निर्मित हैं।
यदि आप त्रिकोणमितीय गणनाओं में DECIMAL
मानों का उपयोग करते हैं, तो वे अंतर्निहित रूप से फ्लोटिंग पॉइंट में बदल जाते हैं, और फिर दशमलव में वापस आ जाते हैं।
ज्या
रेडियंस में व्यक्त संख्या X की साइन लौटाता है
SELECT SIN(PI()); -> 1.2246063538224e-16
कोसाइन
जब एक्स रेडियन में दिया जाता है तो एक्स का कोसाइन लौटाता है
SELECT COS(PI()); -> -1
स्पर्शरेखा
रेडियंस में व्यक्त संख्या X की स्पर्शरेखा लौटाता है। सूचना परिणाम शून्य के बहुत करीब है, लेकिन बिल्कुल शून्य नहीं है। यह मशीन machine का एक उदाहरण है।
SELECT TAN(PI()); -> -1.2246063538224e-16
आर्क कोसाइन (उलटा कोसाइन)
X के चाप कोसाइन को लौटाता है यदि X -1 to 1
की सीमा में है
SELECT ACOS(1); -> 0
SELECT ACOS(1.01); -> NULL
आर्क साइन (उलटा साइन)
X की चाप साइन को लौटाता है यदि X, -1 to 1
की सीमा में है
SELECT ASIN(0.2); -> 0.20135792079033
आर्क स्पर्शरेखा (उलटा स्पर्शरेखा)
ATAN(x)
एकल संख्या की चाप स्पर्शरेखा लौटाता है।
SELECT ATAN(2); -> 1.1071487177941
ATAN2(X, Y)
दो चर X और Y की चाप स्पर्शरेखा लौटाता है। यह Y / X के चाप स्पर्शरेखा की गणना करने के समान है। लेकिन यह संख्यात्मक रूप से अधिक मजबूत है: X के शून्य के पास होने पर सही ढंग से कार्य करता है, और संकेत परिणाम के चतुर्थांश को निर्धारित करने के लिए दोनों तर्कों का उपयोग किया जाता है।
सर्वोत्तम अभ्यास से पता चलता है कि ATAN2()
बजाय ATAN()
का उपयोग करने के लिए सूत्र लिखना संभव है।
ATAN2(1,1); -> 0.7853981633974483 (45 degrees)
ATAN2(1,-1); -> 2.356194490192345 (135 degrees)
ATAN2(0, -1); -> PI (180 degrees) don't try ATAN(-1 / 0)... it won't work
Cotangent
एक्स की खाट लौटाता है
SELECT COT(12); -> -1.5726734063977
रूपांतरण
SELECT RADIANS(90) -> 1.5707963267948966
SELECT SIN(RADIANS(90)) -> 1
SELECT DEGREES(1), DEGREES(PI()) -> 57.29577951308232, 180
गोलाई (ROUND, FLOOR, CEIL)
दशमलव संख्या को पूर्णांक मान पर राउंड करें
सटीक संख्यात्मक मानों (उदाहरण के लिए DECIMAL
) के लिए: यदि किसी संख्या का पहला दशमलव स्थान 5 या अधिक है, तो यह फ़ंक्शन शून्य से दूर अगले पूर्णांक के लिए एक संख्या को पूर्ण करेगा। यदि वह दशमलव स्थान 4 या उससे कम है, तो यह फ़ंक्शन अगले पूर्णांक मान से शून्य के करीब होगा ।
SELECT ROUND(4.51) -> 5
SELECT ROUND(4.49) -> 4
SELECT ROUND(-4.51) -> -5
अनुमानित संख्यात्मक मान (उदाहरण के लिए DOUBLE
): के परिणाम ROUND()
समारोह सी पुस्तकालय पर निर्भर करता है; कई प्रणालियों पर, इसका मतलब है कि ROUND()
निकटतम दौर के नियम का उपयोग करता है:
SELECT ROUND(45e-1) -> 4 -- The nearest even value is 4
SELECT ROUND(55e-1) -> 6 -- The nearest even value is 6
एक संख्या को गोल करना
किसी संख्या का उपयोग करने के लिए CEIL()
या CEILING()
फ़ंक्शन का उपयोग करें
SELECT CEIL(1.23) -> 2
SELECT CEILING(4.83) -> 5
एक नंबर नीचे
किसी नंबर को राउंड करने के लिए, FLOOR()
फ़ंक्शन का उपयोग करें
SELECT FLOOR(1.99) -> 1
FLOOR और CEIL -infinity से दूर / दूर जाते हैं:
SELECT FLOOR(-1.01), CEIL(-1.01) -> -2 and -1
SELECT FLOOR(-1.99), CEIL(-1.99) -> -2 and -1
दशमलव संख्या निर्दिष्ट स्थानों के लिए एक दशमलव संख्या को गोल करें।
SELECT ROUND(1234.987, 2) -> 1234.99
SELECT ROUND(1234.987, -2) -> 1200
ऊपर और नीचे "5" की चर्चा भी लागू होती है।
एक संख्या को एक शक्ति में बढ़ाएँ (POW)
पावर y
संख्या x
बढ़ाने के लिए, POW()
या POWER()
फ़ंक्शन का उपयोग करें
SELECT POW(2,2); => 4
SELECT POW(4,2); => 16
स्क्वायर रूट (SQRT)
SQRT()
फ़ंक्शन का उपयोग करें। यदि संख्या नकारात्मक है, तो NULL
वापस कर दिया जाएगा
SELECT SQRT(16); -> 4
SELECT SQRT(-3); -> NULL
रैंडम नंबर (रैंड)
एक यादृच्छिक संख्या उत्पन्न करें
0
और 1
बीच एक छद्म आयामी फ्लोटिंग पॉइंट नंबर जेनरेट करने के लिए, RAND()
फ़ंक्शन का उपयोग करें
मान लें कि आपके पास निम्नलिखित क्वेरी है
SELECT i, RAND() FROM t;
यह कुछ इस तरह लौटेगा
मैं | RAND () |
---|---|
1 | .6191438870682 |
2 | .93845168309142 |
3 | .83482678498591 |
एक सीमा में यादृच्छिक संख्या
सीमा में एक यादृच्छिक संख्या उत्पन्न करने के लिए <= n <= b, आप निम्न सूत्र का उपयोग कर सकते हैं
FLOOR(a + RAND() * (b - a + 1))
उदाहरण के लिए, यह 7 और 12 के बीच एक यादृच्छिक संख्या उत्पन्न करेगा
SELECT FLOOR(7 + (RAND() * 6));
एक तालिका में पंक्तियों को बेतरतीब ढंग से वापस करने का एक सरल तरीका:
SELECT * FROM tbl ORDER BY RAND();
ये छद्म आयामी संख्याएं हैं।
MySQL में छद्म आयामी संख्या जनरेटर क्रिप्टोग्राफिक रूप से सुरक्षित नहीं है। यही है, यदि आप रहस्यों के रूप में उपयोग किए जाने वाले यादृच्छिक संख्याओं को उत्पन्न करने के लिए MySQL का उपयोग करते हैं, तो एक निर्धारित सलाहकार जो जानता है कि आपने MySQL का उपयोग किया है, आपके रहस्यों का अनुमान लगाने में आप जितनी आसानी से विश्वास कर सकते हैं उससे अधिक आसानी से कर पाएंगे।
पूर्ण मूल्य और हस्ताक्षर (ABS, साइन)
किसी संख्या का पूर्ण मान लौटाएं
SELECT ABS(2); -> 2
SELECT ABS(-46); -> 46
किसी संख्या का sign
इसकी तुलना 0 से करता है।
संकेत | परिणाम | उदाहरण |
---|---|---|
-1 | n <० | SELECT SIGN(42); -> १ |
0 | n = 0 | SELECT SIGN(0); -> ० |
1 | n> 0 | SELECT SIGN(-3); -> -1 |
SELECT SIGN(-423421); -> -1