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

आम्ही वर म्हटल्याप्रमाणे, डीबीएमएससाठी केवळ विशिष्ट प्रकारचा डेटा संग्रहित करणे पुरेसे नाही, या प्रकारच्या डेटावर सुपर-फास्ट ऑपरेशन्सच्या विस्तृत संचाचे समर्थन करणे देखील आवश्यक आहे.

आणि, जसे तुम्हाला माहिती आहे, सर्व DBMS वरील विविध संख्यात्मक प्रकार आणि ऑपरेशन्सना समर्थन देतात. आज आपण त्यापैकी सर्वात लोकप्रिय परिचित व्हाल.

MySQL मधील सर्व अंकीय कार्ये सशर्तपणे 5 गटांमध्ये विभागली जाऊ शकतात:

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

तसे, जावा भाषेमुळे आपण त्यापैकी बर्‍याच जणांशी परिचित आहात, म्हणून मला वाटते की ते आपल्यासाठी आश्चर्यचकित होणार नाहीत. पण क्रमाने सुरुवात करूया.

वैशिष्ट्यांची संपूर्ण यादी येथे आढळू शकते .

अंकगणित ऑपरेशन्स

तत्वतः, अनपेक्षित काहीही नाही, सर्व समान मानक ऑपरेशन्स इतरत्र आहेत:

# उदाहरण
+, -, *, / २+२*२ बेरीज, वजाबाकी, गुणाकार, भागाकार (परिपूर्ण नाही!)
2 % १३% ५ विभागाचा अवशेष
3 MOD 13MOD5 विभागाचा अवशेष
4 DIV 13 DIV 5 पूर्णांकानुसार भागाकार

मनोरंजक पासून: दोन पूर्णांकांना विभाजित करताना, आपल्याला वास्तविक संख्या मिळते. पूर्णांकाने विभाजित करण्यासाठी, तुम्हाला DIV ऑपरेटर वापरण्याची आवश्यकता आहे.

जर तुम्हाला भागाकाराचा उर्वरित भाग पूर्णांकाने मिळवायचा असेल, तर तुम्हाला जावा भाषेप्रमाणे MOD किंवा % ऑपरेटर वापरावे लागेल. मी उदाहरणे देणार नाही, कारण माझ्यासाठी येथे सर्व काही स्पष्ट आहे.

बिट ऑपरेशन्स

तुम्ही Java प्रमाणे SQL मधील संख्यांवर बिटवाइज ऑपरेशन्स देखील करू शकता. जरी बारकावे आहेत. उपलब्ध बिट ऑपरेशन्सची यादी खालील तक्त्यामध्ये सादर केली आहे:

# उदाहरण नोंद
आणि 0b1111 आणि 0b1000 बिटवाइज आणि
2 | 0b1111 | 0b0001 बिटवाइज किंवा
3 ^ 0b1111^0b1111 बिट XOR
4 ~ ~0b1111 bitwise उलटा
>> १२८ >> ५ थोडा उजवीकडे शिफ्ट करा
6 << 2 << 5 बिट शिफ्ट डावीकडे
BIT_COUNT() BIT_COUNT(255) 1 असलेल्या बिट्सची संख्या मिळवते

MySQL आवृत्ती 8.0 पूर्वी, अशा ऑपरेशन्स फक्त BIGINT डेटा प्रकारावर केल्या जाऊ शकतात, जे 64 बिट लांब होते आणि Java च्या लाँग प्रकारासारखे होते. तथापि, MySQL 8.0 मध्ये (ज्याचा आपण विचार करत आहोत), संकल्पना बदलली आहे. आता ही ऑपरेशन्स विशेष बायनरी प्रकारांवर केली जाऊ शकतात:

  • बायनरी
  • वार्बिनरी
  • आणि BLOB प्रकारांवर देखील (जे बाइट्सचे अॅरे आहेत)

इतर सर्व प्रकार फक्त BIGINT प्रकारात रूपांतरित केले जातात आणि ऑपरेशन्स पूर्वीप्रमाणेच केल्या जातात (फक्त पहिल्या 64 बिट्सवर).

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

MySQL फंक्शन्समध्ये राऊंडिंगसाठी तुम्हाला वेदनादायकपणे परिचित असलेली फंक्शन्स वापरली जातात. त्यांची यादी खालील तक्त्यामध्ये दिली आहे:

# उदाहरण नोंद
CEIL(), CEILING() CEIL (5.1) = 6 वास्तविक संख्येवर पूर्णांक काढतो
2 FLOOR() मजला(५.९) = ५ वास्तविक संख्येला खाली पूर्णांक करते
3 गोल() राउंड(४.१) = ४ वास्तविक संख्येला जवळच्या पूर्णांकापर्यंत पूर्णांक करते
4 TRUNCATE() ट्रंकेट(४.१२३, २) = ४.१२ संख्या N दशांश स्थानांवर कापते
RAND() 0.61914388706828 0 आणि 1 मधील यादृच्छिक वास्तविक संख्या मिळवते
6 RAND(N) ०.९३८४५१६८३०९१४२ 0 आणि 1 मधील यादृच्छिक वास्तविक संख्या मिळवते. N हे बीज मूल्य म्हणून वापरले जाते

Java मधील पहिल्या शोधापासून तुम्ही सर्व राउंडिंग फंक्शन्सशी परिचित आहात. येथे फक्त TRUNCATE() आणि RANDOM(N) फंक्शन्स स्वारस्यपूर्ण असू शकतात.

TRUNCATE (संख्या, प्रमाण) फंक्शन त्याचे पहिले पॅरामीटर एक वास्तविक संख्या घेते आणि त्याचे दुसरे पॅरामीटर म्हणून दशांश स्थानांची संख्या सोडली जाते. संख्या दशांश स्थानांच्या इच्छित संख्येवर ट्रिम केली आहे.

RAND(N) फंक्शनसाठी, गोष्टी थोड्या अधिक क्लिष्ट आहेत. तुम्हाला माहीत असेलच की, संगणक यादृच्छिक संख्या तयार करू शकत नाही. त्याऐवजी, ते तथाकथित स्यूडो-यादृच्छिक संख्या क्रम तयार करते. म्हणजेच, एक संख्या पाहता, ती यादृच्छिक आहे की नाही हे स्पष्ट होत नाही, परंतु संख्यांचा क्रम आधीच यादृच्छिक सारखा असू शकतो. यादृच्छिक प्रमाणेच संख्यांचा क्रम तयार करून विकसक याचा फायदा घेतात.

या प्रकरणात, अनुक्रमाची प्रत्येक नवीन संख्या या क्रमाच्या मागील संख्येवर आधारित अवघड नियमानुसार व्युत्पन्न केली जाते . म्हणून, जर तुम्ही यादृच्छिक संख्या निर्मिती अल्गोरिदममध्ये एक विशिष्ट प्रारंभिक संख्या (ज्याला सीड देखील म्हटले जाते) पास केली, तर प्रत्येक वेळी तुम्हाला यादृच्छिक संख्यांचा समान क्रम प्राप्त होईल .