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