MySQL - Table Turunan
Hai sana, para entusiast pengurusan pangkalan data! Saya begitu gembira untuk menjadi pemandu anda dalam perjalanan yang menarik ini ke dunia MySQL Table Turunan. Sebagai seseorang yang telah mengajar sains komputer selama tahun, saya dapat menjamin anda bahawa walaupun topik ini mungkin terdengar menakutkan pada permulaan, ia sebenarnya sangat menarik dan amat berguna. Jadi, mari kita masuk ke dalamnya!
Apa Itu MySQL Table Turunan?
Imagin anda sedang mengerjakan pesta besar (siapa yang tidak suka pesta pangkalan data yang baik, kan?). Anda mempunyai senarai semua rakan anda, tetapi anda mahu membuat senarai terpisah untuk mereka yang tinggal di kawasan dekat. Itu sebenarnya apa yang dilakukan table turunan di MySQL - ia adalah table sementara yang dicipta dalam suatu query untuk membantu anda mengatur dan menganalisis data anda secara lebih berkesan.
Dalam istilah teknikal, table turunan adalah subquery yang muncul dalam klausa FROM dari suatu pernyataan SQL lain. Ia seperti membuat table sementara secara langsung, yang anda kemudiannya boleh gunakan dalam query utama anda.
Mari kita lihat contoh yang mudah:
SELECT * FROM
(SELECT name, age FROM people WHERE age > 18) AS adults
WHERE adults.age < 30;
Dalam query ini, segala-galanya di dalam kurungan adalah table turunan kita. Kita mencipta table sementara bagi semua orang berusia lebih daripada 18, dan kemudiannya memilih dari table itu untuk mencari mereka di bawah 30.
Menggunakan Klausa WHERE Dengan Table Turunan
Klausa WHERE adalah rakan terbaik anda ketika bekerja dengan table turunan. Ia membolehkan anda menyaring data anda baik di table turunan mahupun di query utama. Mari kita luangkan contoh sebelumnya:
SELECT * FROM
(SELECT name, age, city FROM people WHERE age > 18) AS adults
WHERE adults.city = 'New York' AND adults.age < 30;
Di sini, kita pertama-tama mencipta table turunan bagi semua dewasa (age > 18), dan kemudiannya dari table itu, kita memilih hanya mereka yang tinggal di New York dan di bawah 30. Ia seperti penapisan ganda!
Menamakan Semula Kolom Dalam Table Turunan
Bertimbang-timbang, anda mungkin mahu memberi nama yang lebih deskriptif kepada kolom anda dalam table turunan. Ini adalah di mana penamaan semula (aliasing) berguna. Mari kita lihat:
SELECT young_adult_name, years_alive FROM
(SELECT name AS young_adult_name, age AS years_alive
FROM people
WHERE age BETWEEN 18 AND 25) AS young_adults;
Dalam contoh ini, kita menamakan semula 'name' kepada 'young_adult_name' dan 'age' kepada 'years_alive'. Ini boleh membuat query anda lebih mudah dan self-explanatory.
Menunjukkan Fungsi Agregat Sebagai Table Turunan
Fungsi agregat seperti COUNT, AVG, SUM boleh menjadi sangat berguna dalam table turunan. Mari katakan kita mahu mengetahui berapa ramai orang kita ada dalam setiap kumpulan umur:
SELECT age_group, count FROM
(SELECT
CASE
WHEN age < 18 THEN 'Under 18'
WHEN age BETWEEN 18 AND 30 THEN '18-30'
WHEN age BETWEEN 31 AND 50 THEN '31-50'
ELSE 'Over 50'
END AS age_group,
COUNT(*) as count
FROM people
GROUP BY age_group) AS age_distribution
ORDER BY count DESC;
Query ini mencipta table turunan yang mengumpulkan orang ke dalam kategori umur dan menghitung berapa ramai orang dalam setiap kumpulan. Kita kemudiannya memilih daripada table turunan ini untuk menunjukkan keputusan.
Menyusun Table Menggunakan Program Klien
Walaupun biasanya kita tulis query secara langsung di MySQL, anda juga boleh mencipta table turunan menggunakan program klien. Berikut adalah contoh mudah menggunakan Python:
import mysql.connector
# Sambung ke pangkalan data
cnx = mysql.connector.connect(user='your_username', password='your_password',
host='127.0.0.1', database='your_database')
cursor = cnx.cursor()
# Buat query dengan table turunan
query = """
SELECT * FROM
(SELECT name, age FROM people WHERE age > 18) AS adults
WHERE adults.age < 30;
"""
# Jalankan query
cursor.execute(query)
# Ambil dan cetak keputusan
for (name, age) in cursor:
print(f"{name} is {age} years old")
# Tutup sambungan
cursor.close()
cnx.close()
Skrip Python ini menyambung ke pangkalan data anda, menjalankan query dengan table turunan, dan kemudiannya mencetak keputusan.
Kesimpulan
Dan di sini, teman-teman! Kita telah menjelajah melalui negeri MySQL Table Turunan, dari konsep asas ke penggunaan yang lebih maju. Ingat, table turunan adalah senjata rahasia anda dalam SQL - mereka membolehkan anda mencipta table sementara secara langsung, membantu anda mengatur dan menganalisis data anda dalam cara yang berkuasa.
Seperti semua hal dalam pengaturan, latihan menjadikan sempurna. Jadi jangan takut untuk mencuba table turunan dalam projek anda sendiri. Siapa tahu? Anda mungkin hanya mendapati diri anda melempar pesta pangkalan data terbaik di bandar!
Berikut adalah jadual ringkasan metode yang kita telahulas:
Metode | Description |
---|---|
Table Turunan Asas | Cipta table sementara dalam klausa FROM |
Klausa WHERE | Saring data di kedua-dua table turunan dan query utama |
Penamaan Semula | Beri nama yang lebih deskriptif kepada kolom dalam table turunan |
Fungsi Agregat | Gunakan fungsi seperti COUNT, AVG, SUM dalam table turunan |
Program Klien | Cipta table turunan menggunakan bahasa pengaturcaraan eksternal |
Bersih-bersih query, dan moga pangkalan data anda selalu normal!
Credits: Image by storyset