Daftar fungsi numerik

Seperti yang kami katakan di atas, DBMS tidak cukup hanya menyimpan data dari jenis tertentu, tetapi juga perlu mendukung serangkaian operasi super cepat yang ekstensif pada data jenis ini.

Dan, seperti yang Anda ketahui, semua DBMS mendukung berbagai jenis numerik dan operasinya. Hari ini Anda akan berkenalan dengan yang paling populer di antara mereka.

Semua fungsi numerik di MySQL dapat dibagi secara kondisional menjadi 5 grup:

  • Operasi aritmatika
  • Operasi bit
  • Fungsi pembulatan
  • Fungsi aljabar
  • Fungsi trigonometri

Ngomong-ngomong, Anda sudah familiar dengan banyak dari mereka berkat bahasa Java, jadi menurut saya mereka tidak akan mengejutkan Anda. Tapi mari kita mulai secara berurutan.

Daftar lengkap fitur dapat ditemukan di sini .

Operasi aritmatika

Pada prinsipnya, tidak ada yang tidak terduga, semua operasi standar yang sama seperti di tempat lain:

# Contoh
1 +, -, *, / 2+2*2 Penjumlahan, pengurangan, perkalian, pembagian (tidak sempurna!)
2 % 13% 5 Sisa pembagian
3 MOD 13MOD5 Sisa pembagian
4 DIV 13 DIV5 Pembagian dengan bilangan bulat

Dari yang menarik: saat membagi dua bilangan bulat, Anda mendapatkan bilangan real. Untuk membagi dengan bilangan bulat, Anda perlu menggunakan operator DIV.

Jika Anda ingin mendapatkan sisa pembagian dengan bilangan bulat, maka Anda perlu menggunakan operator MOD atau %, seperti dalam bahasa Java. Saya tidak akan memberikan contoh, karena bagi saya semuanya sudah jelas di sini.

Operasi bit

Anda juga dapat melakukan operasi bitwise pada angka di SQL, seperti di Java. Meski ada nuansa. Daftar operasi bit yang tersedia disajikan dalam tabel di bawah ini:

# Contoh Catatan
1 & 0b1111 & 0b1000 Sedikit demi sedikit DAN
2 | 0b1111 | 0b0001 Sedikit demi sedikit ATAU
3 ^ 0b1111^0b1111 Sedikit XOR
4 ~ ~0b1111 inversi bitwise
5 >> 128 >> ​​5 Sedikit bergeser ke kanan
6 << 2 << 5 Sedikit bergeser ke kiri
7 BIT_COUNT() BIT_COUNT(255) Mengembalikan jumlah bit yang 1

Sebelum MySQL versi 8.0, operasi seperti itu hanya dapat dilakukan pada tipe data BIGINT, yang panjangnya 64 bit dan mirip dengan tipe panjang Java. Namun, di MySQL 8.0 (yang sedang kami pertimbangkan), konsepnya telah berubah. Sekarang operasi ini dapat dilakukan pada tipe biner khusus:

  • BINER
  • VARBINER
  • Dan juga lebih dari tipe BLOB (yang merupakan array byte)

Semua tipe lainnya hanya diubah menjadi tipe BIGINT dan operasi dilakukan seperti sebelumnya (hanya pada 64 bit pertama).

Fungsi pembulatan

Untuk pembulatan di MySQL, fungsi yang sangat familiar bagi Anda digunakan. Daftar mereka diberikan dalam tabel di bawah ini:

# Contoh Catatan
1 CEIL(), CEILING() CEIL (5.1) = 6 Membulatkan bilangan real ke atas
2 LANTAI() LANTAI(5.9) = 5 Membulatkan bilangan real ke bawah
3 BULAT() BULAT(4.1) = 4 Membulatkan bilangan real ke bilangan bulat terdekat
4 MEMOTONG() TRUNCATE(4.123, 2) = 4.12 Memotong angka ke N tempat desimal
5 RAND() 0,61914388706828 Mengembalikan bilangan real acak antara 0 dan 1
6 RAND(N) 0,93845168309142 Mengembalikan bilangan real acak antara 0 dan 1. N digunakan sebagai nilai seed

Anda telah terbiasa dengan semua fungsi pembulatan sejak pencarian pertama di Jawa. Hanya fungsi TRUNCATE() dan RANDOM(N) yang menarik di sini.

Fungsi TRUNCATE (bilangan, kuantitas) mengambil sebagai parameter pertama bilangan real, dan sebagai parameter kedua jumlah tempat desimal yang tersisa. Angka tersebut dipangkas ke jumlah tempat desimal yang diinginkan.

Adapun fungsi RAND(N), hal-hal yang sedikit lebih rumit. Seperti yang mungkin Anda ketahui, komputer tidak dapat menghasilkan angka acak. Sebaliknya, itu menghasilkan apa yang disebut urutan nomor acak semu. Artinya, melihat satu angka, tidak jelas apakah itu acak atau tidak, tetapi urutan angkanya mungkin sudah mirip dengan acak. Pengembang memanfaatkan ini dengan menghasilkan urutan angka yang sangat mirip dengan acak.

Dalam hal ini, setiap nomor baru dari urutan dihasilkan menurut aturan rumit berdasarkan nomor sebelumnya dari urutan ini . Oleh karena itu, jika Anda meneruskan nomor awal tertentu (disebut juga benih) ke algoritme pembuatan nomor acak, maka setiap kali Anda akan menerima urutan nomor acak yang sama .