Sonli Funktsiyalar

All lectures for UZ purposes
Daraja, Dars
Mavjud

Sonli funksiyalar ro'yxati

Yuqorida aytganimizdek, ma'lumotlar bazasini boshqaruv tizimiga (СУБД) ma'lum bir turdagi ma'lumotlarni saqlash kifoya qilmaydi, yana bu ma'lumotlar turlarida juda tezkor operatsiyalar to'plamini qo'llab-quvvatlashi kerak.

Va, bilganingizdek, barcha СУБД turli xil sonli turlarni va ularga operatsiyalarni qo'llab-quvvatlaydi. Bugun siz ularning eng mashhurlari bilan tanishasiz.

MySQL'dagi barcha sonli funksiyalarni shartli ravishda 5 guruhga ajratish mumkin:

  • Arifmetik operatsiyalar
  • Bitli operatsiyalar
  • O'ralash funksiyalari
  • Algebraik funksiyalar
  • Trigonometriya funksiyalari

Aytgancha, ularning ko'pchiligini Java tilida taniganingizdan katta ehtimol bilan sizga ajablantirmaydi. Lekin ketma-ketlikda boshlaymiz.

Funksiyalarning to'liq ro'yxatini havolada topishingiz mumkin.

Arifmetik operatsiyalar

Bu yerda aslida hech qanday ajablanarli narsa yo'q, hamma yerda qo'llaniladigan standart operatsiyalar:

# Misol
1 +, -, *, / 2+2*2 Qo'shish, ayirish, ko'paytirish, bo'lish (bo'linmagan)
2 % 13 % 5 Bo'lishdan qoldiq
3 MOD 13 MOD 5 Bo'lishdan qoldiq
4 DIV 13 DIV 5 Butun bo'lish

Qiziq narsa: ikki butun sonni bo'lganda, haqiqiy son chiqadi. Butun bo'lish uchun DIV operatorini ishlatishingiz kerak.

Agar butun bo'lishdan qoldiqni olishni istasangiz, MOD yoki % operatorini ishlatishingiz kerak, xuddi Java tilidagi kabi. Misollar keltirmayman, menimcha bu yerda hamma narsa aniq.

Bitli operatsiyalar

SQL'da sonlar ustida bitli operatsiyalarni ham o'tkazish mumkin, taxminan Java tilida bo'lgani kabi. Garchi ba'zi nuanslar mavjud bo'lsa. Quyida mavjud bitli operatsiyalar ro'yxati:

# Misol Izoh
1 & 0b1111 & 0b1000 Pobitli AND
2 | 0b1111 | 0b0001 Bitli OR
3 ^ 0b1111 ^ 0b1111 Bitli XOR
4 ~ ~0b1111 Pobitli inversiya
5 >> 128 >> 5 Bitli o'ngga siljitish
6 << 2 << 5 Bitli chapga siljitish
7 BIT_COUNT() BIT_COUNT(255) 1 ga teng bo'lgan bitlar sonini qaytaradi

MySQL 8.0 versiyasidan oldin bunday operatsiyalar faqat BIGINT turidagi ma'lumotlar bilan amalga oshirilishi mumkin edi, u 64 bitdan iborat bo'lib, Java'dagi long turiga o'xshash edi. Ammo MySQL 8.0 da (biz ko'rib chiqamiz) kontseptsiya o'zgardi. Endi bu operatsiyalar maxsus ikkilik turlar ustida amalga oshirilishi mumkin:

  • BINARY
  • VARBINARY
  • Shuningdek, BLOB turlari ustida (bu baytlar massivi)

Boshqa barcha turlar shunchaki BIGINT turiga o'tkaziladi va operatsiyalar oldingi kabi amalga oshiriladi (faqat dastlabki 64 bit ustida).

O'ralash funksiyalari

MySQL'da o'ralash uchun sizga juda tanish bo'lgan funksiyalar ishlatiladi. Ularning ro'yxati quyidagi jadvalda keltirilgan:

# Misol Izoh
1 CEIL(), CEILING() CEIL (5.1) = 6 Haqiqiy sonni yuqoriga o'rash
2 FLOOR() FLOOR (5.9) = 5 Haqiqiy sonni pastga o'rash
3 ROUND() ROUND(4.1) = 4 Haqiqiy sonni eng yaqin butunga o'rash
4 TRUNCATE() TRUNCATE(4.123, 2) = 4.12 Sonni N belgilaridan keyin qirqadi
5 RAND() 0.61914388706828 0 dan 1 gacha bo'lgan tasodifiy haqiqiy sonni qaytaradi
6 RAND(N) 0.93845168309142 0 dan 1 gacha bo'lgan tasodifiy haqiqiy sonni qaytaradi. N seed value sifatida ishlatiladi

Barcha o'ralash funksiyalari bilan siz Java'dagi birinchi kvestdan beri tanishsiz. Bu yerda faqat TRUNCATE() va RANDOM(N) funksiyalari qiziqarli bo'lishi mumkin.

TRUNCATE (son, miqdor) funksiyasi haqiqiy sonni birinchi parametr sifatida, ikkinchi parametr sifatida esa verguldan keyin qoladigan belgilar sonini qabul qiladi. Son kerakli belgilar soniga qirqiladi.

RAND(N) funksiyasi haqida gap ketganda, hamma narsa biroz murakkabroq. Bilganingizdek, kompyuter haqiqiy tasodifiy sonlarni yarata olmaydi. Buning o'rniga u pseudo-tasodifiy sonlar ketma-ketligini yaratadi. Ya'ni bir sonni ko'rib, u tasodifiy yoki yo'q deb tushunib bo'lmaydi, lekin sonlar ketma-ketligi tasodifiy bo'lishi mumkin. Bu aslida ishlab chiquvchilar, tasodifiy ko'rinadigan sonlar ketma-ketligini yaratishda foydalanadilar.

Bu jarayonda har bir yangi son ketma-ketlikdagi oldingi son asosida murakkab qoida asosida yaratiladi. Shuning uchun agar siz tasodifiy sonlar yaratish algoritmiga biron bir boshlang'ich sonni (uni seed deb atashadi) bersangiz, har safar bir xil tasodifiy sonlar ketma-ketligini olishingiz mumkin.

Izohlar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION