Database Tables: Struktur Tabel Database 📊
Halo SQL Explorers! 👋 Setelah belajar tentang konsep dasar database, sekarang kita bakal belajar cara bikin dan ngatur tabel database. Ini adalah fondasi penting buat nyimpen data dengan rapi!
Apa itu Tabel Database? 📊
Tabel database itu kayak spreadsheet Excel, tapi lebih canggih:
- Punya struktur yang jelas (kolom dan tipe data)
- Bisa terhubung ke tabel lain
- Ada aturan untuk jaga data tetap valid
Tipe Data yang Sering Dipake 📝
Untuk Angka
- INT: Angka bulat (1, 2, 3)
- DECIMAL: Angka dengan koma (10.5, 25.75)
- FLOAT: Angka pecahan (3.14159)
Untuk Text
- VARCHAR: Text dengan panjang bervariasi
- TEXT: Text yang panjang banget
- CHAR: Text dengan panjang tetap
Untuk Tanggal & Waktu
- DATE: Tanggal (2024-12-21)
- TIME: Waktu (14:30:00)
- TIMESTAMP: Tanggal + Waktu
Struktur Database yang Akan Kita Pake 📊
-- Tabel customers: Nyimpen data pelanggan
CREATE TABLE customers (
id INT PRIMARY KEY AUTO_INCREMENT,
nama VARCHAR(100) NOT NULL,
email VARCHAR(100) UNIQUE,
kota VARCHAR(50),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- Tabel products: Nyimpen data produk
CREATE TABLE products (
id INT PRIMARY KEY AUTO_INCREMENT,
nama VARCHAR(100) NOT NULL,
harga DECIMAL(10,2) CHECK (harga > 0),
stok INT DEFAULT 0,
category_id INT,
FOREIGN KEY (category_id) REFERENCES categories(id)
);
-- Tabel categories: Nyimpen kategori produk
CREATE TABLE categories (
id INT PRIMARY KEY AUTO_INCREMENT,
nama VARCHAR(50) NOT NULL
);
-- Tabel orders: Nyimpen data pesanan
CREATE TABLE orders (
id INT PRIMARY KEY AUTO_INCREMENT,
customer_id INT NOT NULL,
tanggal DATE NOT NULL,
status VARCHAR(20) DEFAULT 'pending',
FOREIGN KEY (customer_id) REFERENCES customers(id)
);
Data Dummy untuk Tutorial 📝
Sekarang kita bakal isi tabel-tabel di atas dengan data dummy yang akan kita pake di semua tutorial:
-- 1. Isi data kategori
INSERT INTO categories (nama) VALUES
('Elektronik'),
('Fashion'),
('Makanan');
-- 2. Isi data produk
INSERT INTO products (nama, harga, stok, category_id) VALUES
('Laptop Gaming', 15000000, 5, 1),
('Smartphone', 5000000, 10, 1),
('Kemeja Casual', 200000, 20, 2),
('Celana Jeans', 350000, 15, 2),
('Snack Pack', 50000, 100, 3),
('Minuman Soda', 15000, 150, 3);
-- 3. Isi data customer
INSERT INTO customers (nama, email, kota) VALUES
('Budi', 'budi@email.com', 'Jakarta'),
('Ani', 'ani@email.com', 'Bandung'),
('Caca', 'caca@email.com', 'Surabaya'),
('Dodi', 'dodi@email.com', 'Jakarta');
-- 4. Isi data orders
INSERT INTO orders (customer_id, tanggal, status) VALUES
(1, '2024-12-19', 'completed'),
(1, '2024-12-20', 'pending'),
(2, '2024-12-20', 'completed'),
(3, '2024-12-20', 'pending');
Penjelasan Komponen Penting 🔍
PRIMARY KEY
- ID unik buat setiap baris data
- Contoh: id di tabel customers
FOREIGN KEY
- Penghubung antar tabel
- Contoh: category_id di tabel products
Constraints (Aturan)
- NOT NULL: Harus diisi
- UNIQUE: Gak boleh sama
- DEFAULT: Nilai default
- CHECK: Syarat nilai yang valid
Contoh Data di Tabel 📝
-- Data di tabel categories
SELECT * FROM categories;
+----+------------+
| id | nama |
+----+------------+
| 1 | Elektronik |
| 2 | Fashion |
| 3 | Makanan |
+----+------------+
-- Data di tabel products
SELECT * FROM products;
+----+---------------+----------+------+-------------+
| id | nama | harga | stok | category_id |
+----+---------------+----------+------+-------------+
| 1 | Laptop Gaming | 15000000 | 5 | 1 |
| 2 | Smartphone | 5000000 | 10 | 1 |
| 3 | Kemeja Casual | 200000 | 20 | 2 |
| 4 | Celana Jeans | 350000 | 15 | 2 |
| 5 | Snack Pack | 50000 | 100 | 3 |
| 6 | Minuman Soda | 15000 | 150 | 3 |
+----+---------------+----------+------+-------------+
Tips Bikin Struktur Tabel yang Baik 💡
Kasih Nama yang Jelas
- Pake bahasa Inggris
- Nama yang menggambarkan isi
- Konsisten dalam penamaan
Pilih Tipe Data yang Tepat
- Sesuaikan dengan kebutuhan
- Jangan terlalu boros
- Pertimbangkan performa
Atur Relasi dengan Benar
- Pake FOREIGN KEY
- Jaga integritas data
- Hindari redundansi
Materi Selanjutnya 📚
Di materi selanjutnya, kita bakal belajar:
- Cara masukin data ke tabel
- Cara ambil data dari tabel
- Cara update dan hapus data
- Perintah-perintah SQL dasar lainnya
Udah siap praktek SQL? Yuk lanjut! 🚀