MySQL - ENUM: Panduan Ramah untuk Pemula

Hai teman-teman, para ahli basis data masa depan! Hari ini, kita akan memulai perjalanan menarik ke dunia tipe data ENUM di MySQL. Jangan khawatir jika Anda baru belajar programming – saya akan menjadi panduan ramah Anda, dan kita akan mengexplorekan topik ini langkah demi langkah. Jadi, ambil secangkir kopi (atau teh, jika itu yang Anda sukai), dan mari kita masuk ke dalamnya!

MySQL - ENUM

Tipe Data ENUM MySQL

Imaginasikan Anda sedang membuat basis data untuk restoran pizza. Anda ingin menyimpan ukuran pizza, tetapi Anda tahu bahwa hanya ada beberapa opsi khusus: kecil, sedang, dan besar. Ini adalah tempat ENUM berguna!

ENUM, singkatan dari "enumeration", adalah cara khusus untuk mengatakan "daftar opsi yang telah ditentukan". Itu seperti pertanyaan pilihan ganda di mana MySQL hanya mengijinkan jawaban dari pilihan yang Anda berikan.

mari kita buat tabel sederhana untuk menunjukkan:

CREATE TABLE pizza_orders (
id INT AUTO_INCREMENT PRIMARY KEY,
customer_name VARCHAR(50),
size ENUM('small', 'medium', 'large')
);

Dalam contoh ini, size adalah kolom ENUM kami. Itu hanya bisa berisi salah satu dari tiga nilai yang kita tentukan: 'small', 'medium', atau 'large'.

Atribut ENUM

Sekarang, mari kita bicarakan tentang beberapa fitur menarik dari ENUM:

  1. Daftar Terurut: Urutan Anda menentukan nilai ENUM penting. MySQL memberikan nomor ke setiap nilai, mulai dari 1.

  2. Tidak Pecaya Huruf Besar/Kecil: 'SMALL', 'Small', dan 'small' semua diperlakukan sama.

  3. Efisiensi Penyimpanan: ENUM sangat efisien dalam hal penyimpanan. MySQL menyimpan setiap nilai sebagai nomor (1, 2, 3, dll.) daripada string penuh.

  4. Nilai Default: Jika Anda tidak menentukan nilai saat memasukkan rekord, MySQL akan menggunakan nilai pertama dalam daftar ENUM sebagai default.

Memasukkan Rekord dengan Nilai ENUM Numerik

Ini adalah rahasia kecil: Anda bisa menggunakan nomor untuk memasukkan nilai ENUM! Mari kita coba:

INSERT INTO pizza_orders (customer_name, size) VALUES
('Alice', 1),
('Bob', 2),
('Charlie', 3);

Dalam kasus ini:

  • 1 mewakili 'small'
  • 2 mewakili 'medium'
  • 3 mewakili 'large'

mari kita periksa hasilnya:

SELECT * FROM pizza_orders;

Anda akan melihat bahwa MySQL telah benar-benar menginterpretasikan nomor sebagai nilai ENUM yang sesuai. Sangat menarik, kan?

Memasukkan Rekord Tidak Valid

Tapi apa yang terjadi jika kita mencoba untuk menipu dan memasukkan nilai yang tidak valid? Mari kita ketahui:

INSERT INTO pizza_orders (customer_name, size) VALUES ('David', 'extra-large');

Ups! MySQL akan memberikan kesalahan kepada kita karena 'extra-large' tidak ada dalam daftar yang kita tentukan. Itu seperti mencoba memilih "D" dalam pertanyaan benar/salah – itu hanya tidak bekerja!

Menyaring Rekord berdasarkan Nilai Numerik ENUM

Ingat bahwa saya mengatakan bahwa nilai ENUM disimpan sebagai nomor? Kita bisa menggunakan ini untuk keuntungan kita saat menyaring rekord:

SELECT * FROM pizza_orders WHERE size = 2;

Query ini akan mengembalikan semua pesanan untuk pizza sedang. Itu seperti memiliki kode rahasia – 2 berarti sedang!

Menyaring Rekord berdasarkan Nilai Bacaan Manusia ENUM

Tentu saja, kita juga bisa menyaring menggunakan nilai ENUM yang nyata:

SELECT * FROM pizza_orders WHERE size = 'large';

Query ini akan mengambil semua pesanan untuk pizza besar. Lebih intuitif, kan?

Kerugian Tipe Data ENUM

Sekarang, saya tidak akan menjadi guru yang bagus jika saya tidak memperingatkan Anda tentang beberapa celah potensial:

  1. Kurang Fleksibel: Setelah Anda mendefinisikan ENUM, menambahkan atau menghapus nilai memerlukan perubahan struktur tabel. Itu seperti mencoba mengubah aturan saat permainan sedang berlangsung!

  2. Dependensi Basis Data: Jika logika aplikasi Anda bergantung pada nilai ENUM, Anda akan memancing aplikasi Anda lebih dekat ke struktur basis data.

  3. Batasan Pengurutan: Nilai ENUM diurutkan berdasarkan nilai numerik internal mereka, yang mungkin tidak selalu sesuai dengan apa yang Anda inginkan.

Tipe Data Enum menggunakan Program Klien

Saat bekerja dengan ENUM melalui program klien (seperti skrip PHP atau Python), Anda biasanya akan berinteraksi dengan nilai yang dapat dibaca manusia. Namun, itu baik untuk menyadari representasi numerik yang mendasar.

Berikut adalah tabel yang menggabungkan metode ENUM yang kita diskusikan:

Metode Contoh Deskripsi
Membuat ENUM ENUM('small', 'medium', 'large') Mendefinisikan nilai yang diijinkan
Memasukkan dengan String INSERT ... VALUES ('medium') Menggunakan nilai ENUM yang nyata
Memasukkan dengan Nomor INSERT ... VALUES (2) Menggunakan representasi numerik
Menyaring dengan String WHERE size = 'large' Menyaring menggunakan nilai ENUM
Menyaring dengan Nomor WHERE size = 3 Menyaring menggunakan representasi numerik

Ingat, baik Anda menggunakan program klien atau bekerja secara langsung di MySQL, prinsip-prinsip ini tetap sama.

Dan begitu saja, teman-teman! Kita telah berpergian melalui negeri MySQL ENUMs. Dari membuat mereka hingga memasukkan nilai dan bahkan melihat identitas numerik rahasia mereka, Anda sekarang dilengkapi untuk menggunakan ENUMs dalam petualangan basis data Anda.

Hanya ingat, seperti memilih topping untuk pizza, ENUMs sangat baik ketika Anda memiliki set opsi tetap. Tetapi jika Anda terus ingin menambahkan rasa baru, mungkin saatnya Anda mempertimbangkan pendekatan yang berbeda.

Tetap berlatih, tetap curiga, dan selalu senang berkoding! Siapa tahu, mungkin kali berikutnya Anda memesan pizza, Anda akan berpikir tentang struktur basis data. (Atau mungkin itu hanya saya? ?)

Credits: Image by storyset