Senarai fungsi angka

Seperti yang kami katakan di atas, DBMS tidak cukup untuk menyimpan data daripada jenis tertentu sahaja, ia juga perlu menyokong set operasi yang sangat pantas pada data jenis ini.

Dan, seperti yang anda ketahui, semua DBMS menyokong pelbagai jenis dan operasi berangka padanya. Hari ini anda akan berkenalan dengan yang paling popular daripada mereka.

Semua fungsi angka dalam MySQL boleh dibahagikan secara bersyarat kepada 5 kumpulan:

  • Operasi aritmetik
  • Operasi bit
  • Fungsi pembulatan
  • Fungsi algebra
  • Fungsi trigonometri

Ngomong-ngomong, anda sudah biasa dengan banyak daripada mereka terima kasih kepada bahasa Jawa, jadi saya fikir mereka tidak akan mengejutkan anda. Tetapi mari kita mulakan mengikut urutan.

Senarai penuh ciri boleh didapati di sini .

Operasi aritmetik

Pada dasarnya, tiada apa yang tidak dijangka, semua operasi standard yang sama seperti di tempat lain:

# Contoh
1 +, -, *, / 2+2*2 Penambahan, penolakan, pendaraban, pembahagian (tidak sempurna!)
2 % 13% 5 Baki bahagian
3 MOD 13MOD5 Baki bahagian
4 DIV 13 DIV 5 Pembahagian mengikut integer

Daripada yang menarik: apabila membahagikan dua integer, anda mendapat nombor nyata. Untuk membahagi dengan integer, anda perlu menggunakan operator DIV.

Jika anda ingin mendapatkan baki bahagian dengan integer, maka anda perlu menggunakan sama ada pengendali MOD atau %, seperti dalam bahasa Java. Saya tidak akan memberi contoh, bagi saya semuanya jelas di sini.

Operasi bit

Anda juga boleh melakukan operasi bitwise pada nombor dalam SQL, sama seperti dalam Java. Walaupun terdapat nuansa. Senarai operasi bit yang tersedia dibentangkan dalam jadual di bawah:

# Contoh Catatan
1 & 0b1111 & 0b1000 Bitwise DAN
2 | 0b1111 | 0b0001 Bitwise ATAU
3 ^ 0b1111^0b1111 Bit XOR
4 ~ ~0b1111 penyongsangan bitwise
5 >> 128 >> ​​5 Anjakan sedikit ke kanan
6 << 2 << 5 Anjakan sedikit ke kiri
7 BIT_COUNT() BIT_COUNT(255) Mengembalikan bilangan bit yang 1

Sebelum MySQL versi 8.0, operasi sedemikian hanya boleh dilakukan pada jenis data BIGINT, yang panjangnya 64 bit dan serupa dengan jenis panjang Java. Walau bagaimanapun, dalam MySQL 8.0 (yang kami sedang pertimbangkan), konsepnya telah berubah. Kini operasi ini boleh dilakukan pada jenis binari khas:

  • BINARI
  • VARBINAR
  • Dan juga lebih jenis BLOB (yang merupakan pelbagai bait)

Semua jenis lain hanya ditukar kepada jenis BIGINT dan operasi dilakukan seperti sebelumnya (hanya pada 64 bit pertama).

Fungsi pembulatan

Untuk pembundaran dalam fungsi MySQL yang sangat biasa anda gunakan. Senarai mereka diberikan dalam jadual di bawah:

# Contoh Catatan
1 CEIL(), SILING() CEIL (5.1) = 6 Membundarkan nombor nyata ke atas
2 LANTAI() TINGKAT(5.9) = 5 Membundarkan nombor nyata ke bawah
3 BULAT() PUSINGAN(4.1) = 4 Membundarkan nombor nyata kepada integer terdekat
4 TRUNCATE() TRUNCATE(4.123, 2) = 4.12 Memotong nombor kepada N tempat perpuluhan
5 RAND() 0.61914388706828 Mengembalikan nombor nyata rawak antara 0 dan 1
6 RAND(N) 0.93845168309142 Mengembalikan nombor nyata rawak antara 0 dan 1. N digunakan sebagai nilai benih

Anda telah biasa dengan semua fungsi pembundaran sejak pencarian pertama di Jawa. Hanya fungsi TRUNCATE() dan RANDOM(N) boleh menarik minat di sini.

Fungsi TRUNCATE (nombor, kuantiti) mengambil sebagai parameter pertama nombor nyata, dan sebagai parameter kedua bilangan tempat perpuluhan yang perlu ditinggalkan. Nombor itu dipotong kepada bilangan tempat perpuluhan yang dikehendaki.

Bagi fungsi RAND(N), perkara menjadi lebih rumit. Seperti yang anda ketahui, komputer tidak boleh menghasilkan nombor rawak. Sebaliknya, ia menghasilkan urutan nombor rawak pseudo yang dipanggil. Iaitu, melihat satu nombor, tidak jelas sama ada ia rawak atau tidak, tetapi urutan nombor mungkin sudah serupa dengan rawak. Pembangun mengambil kesempatan daripada ini dengan menjana urutan nombor yang hampir sama dengan rawak.

Dalam kes ini, setiap nombor baharu bagi jujukan dijana mengikut peraturan rumit berdasarkan nombor sebelumnya bagi jujukan ini . Oleh itu, jika anda menghantar nombor permulaan tertentu (juga dipanggil benih) kepada algoritma penjanaan nombor rawak, maka setiap kali anda akan menerima urutan nombor rawak yang sama .