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 .
GO TO FULL VERSION