संख्यात्मक कार्यों की सूची

जैसा कि हमने ऊपर कहा, एक DBMS के लिए केवल एक निश्चित प्रकार के डेटा को स्टोर करना ही पर्याप्त नहीं है, उसे इस प्रकार के डेटा पर सुपर-फास्ट ऑपरेशंस के व्यापक सेट का समर्थन करने की भी आवश्यकता है।

और, जैसा कि आप जानते हैं, सभी DBMS उन पर कई प्रकार के न्यूमेरिक टाइप और ऑपरेशंस को सपोर्ट करते हैं। आज आप उनमें से सबसे लोकप्रिय से परिचित होंगे।

MySQL में सभी संख्यात्मक कार्यों को सशर्त रूप से 5 समूहों में विभाजित किया जा सकता है:

  • अंकगणितीय संचालन
  • बिट ऑपरेशंस
  • गोलाई के कार्य
  • बीजगणितीय कार्य
  • त्रिकोणमितीय कार्य

वैसे, आप उनमें से कई से परिचित हैं, जावा भाषा के लिए धन्यवाद, इसलिए मुझे लगता है कि वे आपके लिए एक आश्चर्य के रूप में नहीं आएंगे। लेकिन क्रम में शुरू करते हैं।

सुविधाओं की पूरी सूची यहां पाई जा सकती है ।

अंकगणितीय आपरेशनस

सिद्धांत रूप में, कुछ भी अप्रत्याशित नहीं है, अन्य सभी मानक संचालन समान हैं:

# उदाहरण
1 +, -, *, / 2+2*2 जोड़, घटाव, गुणा, भाग (पूर्ण नहीं!)
2 % 13% 5 संभाग का शेष भाग
3 एमओडी 13MOD5 संभाग का शेष भाग
4 डिव 13 डीआईवी 5 पूर्णांक द्वारा विभाजन

दिलचस्प से: दो पूर्णांकों को विभाजित करते समय, आपको एक वास्तविक संख्या मिलती है। पूर्णांक से विभाजित करने के लिए, आपको DIV ऑपरेटर का उपयोग करने की आवश्यकता है।

यदि आप एक पूर्णांक द्वारा शेष भाग प्राप्त करना चाहते हैं, तो आपको या तो एमओडी या% ऑपरेटर का उपयोग करने की आवश्यकता है, जैसा कि जावा भाषा में है। मैं उदाहरण नहीं दूंगा, क्योंकि मेरे लिए यहां सब कुछ स्पष्ट है।

बिट ऑपरेशंस

आप जावा की तरह ही SQL में संख्याओं पर बिटवाइज़ ऑपरेशन भी कर सकते हैं। हालांकि बारीकियां हैं। उपलब्ध बिट ऑपरेशंस की सूची नीचे दी गई तालिका में प्रस्तुत की गई है:

# उदाहरण टिप्पणी
1 और 0b1111 और 0b1000 बिटवाइज़ और
2 | 0b1111 | 0बी0001 बिटवाइज़ या
3 ^ 0बी1111^0बी1111 बिट एक्सओआर
4 ~ ~0b1111 बिटवाइज़ उलटा
5 >> 128 >> ​​5 बिट शिफ्ट राइट
6 << 2 << 5 बिट शिफ़्ट बाएँ
7 BIT_COUNT() BIT_COUNT(255) बिट्स की संख्या लौटाता है जो 1 हैं

MySQL संस्करण 8.0 से पहले, ऐसे ऑपरेशन केवल BIGINT डेटा प्रकार पर ही किए जा सकते थे, जो 64 बिट लंबा था और जावा के लंबे प्रकार के समान था। हालाँकि, MySQL 8.0 (जिस पर हम विचार कर रहे हैं) में, अवधारणा बदल गई है। अब ये ऑपरेशन विशेष बाइनरी प्रकारों पर किए जा सकते हैं:

  • बायनरी
  • वर्बिनरी
  • और बीएलओबी प्रकारों पर भी (जो बाइट्स की एक सरणी हैं)

अन्य सभी प्रकार केवल BIGINT प्रकार में परिवर्तित हो जाते हैं और संचालन पहले की तरह किया जाता है (केवल पहले 64 बिट्स पर)।

गोलाई के कार्य

MySQL में राउंडिंग के लिए, आपके द्वारा परिचित दर्दनाक कार्यों का उपयोग किया जाता है। उनकी एक सूची नीचे दी गई तालिका में दी गई है:

# उदाहरण टिप्पणी
1 सीईआईएल (), सीलिंग () सीईआईएल (5.1) = 6 एक वास्तविक संख्या को राउंड अप करता है
2 ज़मीन() फ्लोर (5.9) = 5 किसी वास्तविक संख्या को नीचे की ओर पूर्णांक बनाता है
3 गोल() राउंड (4.1) = 4 किसी वास्तविक संख्या को निकटतम पूर्णांक तक पूर्णांक बनाता है
4 ट्रंकेट () ट्रंकेट (4.123, 2) = 4.12 किसी संख्या को N दशमलव स्थानों तक छोटा करता है
5 रैंड () 0.61914388706828 0 और 1 के बीच एक यादृच्छिक वास्तविक संख्या देता है
6 रैंड (एन) 0.93845168309142 0 और 1 के बीच एक यादृच्छिक वास्तविक संख्या देता है। N का उपयोग बीज मान के रूप में किया जाता है

जावा में पहली खोज के बाद से आप सभी राउंडिंग कार्यों से परिचित हैं। केवल TRUNCATE() और RANDOM(N) फ़ंक्शंस यहाँ रुचि के हो सकते हैं।

TRUNCATE (संख्या, मात्रा) फ़ंक्शन अपने पहले पैरामीटर के रूप में एक वास्तविक संख्या लेता है, और इसके दूसरे पैरामीटर के रूप में छोड़े जाने वाले दशमलव स्थानों की संख्या लेता है। संख्या दशमलव स्थानों की वांछित संख्या तक छंटनी की जाती है।

रैंड (एन) फ़ंक्शन के लिए, चीज़ें थोड़ी अधिक जटिल हैं। जैसा कि आप शायद जानते हैं, एक कंप्यूटर यादृच्छिक संख्या उत्पन्न नहीं कर सकता। इसके बजाय, यह तथाकथित छद्म-यादृच्छिक संख्या अनुक्रम उत्पन्न करता है। अर्थात्, एक संख्या को देखते हुए, यह स्पष्ट नहीं है कि यह यादृच्छिक है या नहीं, लेकिन संख्याओं का क्रम पहले से ही यादृच्छिक के समान हो सकता है। डेवलपर्स इसका लाभ संख्याओं का एक क्रम उत्पन्न करके लेते हैं जो यादृच्छिक के समान है।

इस मामले में, अनुक्रम की प्रत्येक नई संख्या इस क्रम की पिछली संख्या के आधार पर एक कठिन नियम के अनुसार उत्पन्न होती है । इसलिए, यदि आप यादृच्छिक संख्या पीढ़ी एल्गोरिथ्म के लिए एक निश्चित प्रारंभिक संख्या (जिसे बीज भी कहा जाता है) पास करते हैं, तो हर बार आपको यादृच्छिक संख्याओं का समान क्रम प्राप्त होगा