SQL - Fungsi Nombor

Selamat datang, para ahli SQL masa depan! Hari ini, kita akan melihat dunia yang keramat bagi fungsi nombor SQL. Jangan khawatir jika anda belum pernah menulis satu baris kod sebelum ini - saya akan menjadi panduannya yang mesra melalui petualangan ini. Pada akhir panduan ini, anda akan menjadi ahli dalam menguruskan nombor!

SQL - Numeric Functions

Apa Itu Fungsi Nombor SQL?

Imajinasi anda sebagai chef di dapur. Anda mempunyai pelbagai alat untuk memotong, memotong, dan memisahkan bahan-bahan anda. Fungsi nombor SQL adalah seperti alat-alat dapur itu, tetapi untuk nombor. Mereka membantu kita melakukan perhitungan dan transformasi pada data nombor di pangkalan data kita.

Fungsi Nombor Umum SQL

Mari kita lihat beberapa fungsi nombor paling berguna dalam SQL. Saya telah menyediakan jadual mudah untuk rujukan anda:

Fungsi Keterangan Contoh
ABS() Mengembalikan nilai mutlak ABS(-5) = 5
ROUND() Mengelilingkan nombor kepada bilangan desimal yang ditentukan ROUND(3.14159, 2) = 3.14
CEILING() Mengembalikan integer terkecil yang lebih besar atau sama dengan nombor yang diberikan CEILING(3.1) = 4
FLOOR() Mengembalikan integer terbesar yang kurang daripada atau sama dengan nombor yang diberikan FLOOR(3.9) = 3
POWER() Menyembah nombor kepada kuasa yang ditentukan POWER(2, 3) = 8
SQRT() Mengembalikan akar kuadrat nombor SQRT(16) = 4

Sekarang, mari kita jelajahi setiap fungsi ini secara detil dengan beberapa contoh praktikal.

Fungsi ABS()

Fungsi ABS() mengembalikan nilai mutlak nombor. Dalam istilah yang lebih mudah, ia menghapuskan tanda negatif jika ada.

SELECT ABS(-10) AS nilai_mutlak;

Query ini akan mengembalikan:

nilai_mutlak
-------------
10

Imajinasi anda sedang menghitung perbezaan antara dua suhu. Anda tidak peduli jika ia positif atau negatif; anda hanya mahu tahu magnitudnya. Itu di mana ABS() menjadi berguna!

Fungsi ROUND()

ROUND() adalah seperti teman yang selalu mengelilingkan bilangan di restoran. Ia mengelilingkan nombor kepada bilangan desimal yang ditentukan.

SELECT ROUND(3.14159, 2) AS pi_dikelilingkan;

Hasil:

pi_dikelilingkan
----------------
3.14

Fungsi ini sangat berguna ketika berurusan dengan mata wang atau ketika anda perlu menyederhanakan nombor besar untuk laporan.

Fungsi CEILING() dan FLOOR()

Fungsi ini adalah seperti overachievers dan underachievers dunia nombor. CEILING() sentiasa mengelilingkan ke integer terdekat yang lebih besar, manakala FLOOR() sentiasa mengelilingkan ke integer terdekat yang lebih kecil.

SELECT CEILING(3.1) AS nilai_keatas, FLOOR(3.9) AS nilai_kebawah;

Hasil:

nilai_keatas | nilai_kebawah
-------------+--------------
4            | 3

Saya suka memikirkan CEILING() sebagai optimis (sentiasa melihat ke atas) dan FLOOR() sebagai pesimis (sentiasa melihat ke bawah). Gunakan mereka bijak dalam perhitungan anda!

Fungsi POWER()

POWER() adalah seperti memberikan kuasa super kepada nombor anda! Ia menyembah nombor kepada kuasa yang ditentukan.

SELECT POWER(2, 3) AS dua_pangkat_tiga;

Hasil:

dua_pangkat_tiga
----------------
8

Fungsi ini sangat berguna dalam perhitungan saintifik atau ketika anda perlu menghitung faedah kompaun (diri masa depan anda akan berterima kasih kerana belajar ini!)

Fungsi SQRT()

SQRT() adalah fungsi akar kuadrat. Ia seperti mencari nombor yang, ketika dimultiplikasikan dengan dirinya sendiri, memberikan nombor asal.

SELECT SQRT(16) AS akar_kuadrat;

Hasil:

akar_kuadrat
-------------
4

Fakta menarik: Bangsa Babylon kuno menggunakan metode untuk menghitung akar kuadrat yang mengejutkan mirip dengan apa yang komputer lakukan hari ini!

Menggabungkan Semua

Sekarang, setelah kita telah belajar tentang fungsi ini secara individual, mari kita lihat bagaimana kita dapat menggabungkannya dalam kes real dunia. Imajinasi anda sedang menganalisis data penjualan untuk bisnes kecil.

CREATE TABLE penjualan (
id INT PRIMARY KEY,
nama_produk VARCHAR(50),
jumlah_jualan DECIMAL(10, 2),
diskon DECIMAL(5, 2)
);

INSERT INTO penjualan VALUES
(1, 'Widget A', 100.00, 10.50),
(2, 'Gadget B', 75.25, 5.00),
(3, 'Doohickey C', 50.75, 2.25);

SELECT
nama_produk,
jumlah_jualan,
diskon,
ROUND(jumlah_jualan - diskon, 2) AS jumlah_jualan_netto,
CEILING(POWER(jumlah_jualan - diskon, 1.05)) AS mata loyaliti
FROM
penjualan;

Query ini menghitung jumlah jualan netto selepas diskon dan menetapkan mata loyaliti berdasarkan nilai jualan netto yang sedikit diperbesar. mari kitauraikan ini:

  1. Kita buat jadual dan masukkan data contoh.
  2. Kita gunakan ROUND() untuk menghitung jumlah jualan netto ke dua desimal.
  3. Kita gunakan POWER() untuk sedikit diperbesar nilai jualan netto (menyembahnya ke kuasa 1.05).
  4. Akhirnya, kita gunakan CEILING() untuk mengelilingkan mata loyaliti ke integer terdekat yang lebih besar.

Hasilnya mungkin seperti ini:

nama_produk | jumlah_jualan | diskon | jumlah_jualan_netto | mata_loyaliti
------------|---------------|--------|---------------------|--------------
Widget A    | 100.00        | 10.50  | 89.50               | 115
Gadget B    | 75.25         | 5.00   | 70.25               | 89
Doohickey C | 50.75         | 2.25   | 48.50               | 60

Kesimpulan

Tahniah! Anda telah mengambil langkah pertama ke dunia fungsi nombor SQL. Ingat, latihan membuat sempurna. Cobalah untuk bermain dengan fungsi ini menggunakan data atau contoh anda sendiri. Jangan takut membuat kesalahan - itu adalah bagaimana kita belajar!

Dalam tahun-tahun pengajaran saya, saya menemui bahawa murid yang cuba dan bersenang hati dengan SQL adalah mereka yang benar-benar menguasai ia. Jadi, teruskanlah untuk mengkod, belajar, dan terutamanya bersenang hati dengan SQL! Siapa tahu? Anda mungkin hanya menemukan bahawa bekerja dengan nombor dalam SQL adalah seperti menyelesaikan teka-teki yang menantang atau mencipta karya seni yang indah.

Credits: Image by storyset