Tanpa menggunakan DBMS, untuk mengelola data seperti data produk, data pelanggan, data penjualan kita perlu menyimpannya dalam bentuk file (misalnya seperti saat menggunakan excel). DBMS biasanya berjalan sebagai aplikasi server yang digunakan untuk mengelola data, kita hanya perlu memberikan perintah pada DBMS untuk melakukan proses pengelolaan data seperti menambah, mengubah, menghapus atau mengambil data. Database relasional cukup mudah dipahami dan dipelajari karena kita terbiasa menyimpan data dalam bentuk tabel (tabel), seperti di Microsoft Excel atau di Google Doc Spreadsheet.
Selain itu database relasional mempunyai perintah standar yang menggunakan SQL sehingga memudahkan kita ketika ingin mengubah aplikasi database (seperti MySQL, Oracle, PostgreSQL dan lain-lain). Biasanya DBMS menyediakan database client sederhana yang dapat kita gunakan untuk berkomunikasi dengan DBMS agar lebih mudah. Atau kita bisa membuat aplikasi untuk berkomunikasi dengan DBMS, misalnya dengan membuat aplikasi database client dengan menggunakan Java, PHP atau bahasa pemrograman lainnya.
SQL merupakan bahasa yang ringan karena hanya berisi instruksi untuk menyimpan, mengubah, menghapus, atau mengambil data melalui DBMS. Secara umum semua perintah SQL pada database Relasional hampir sama, namun biasanya setiap DBMS mempunyai penyempurnaan yang membedakan hal-hal kecil pada perintah SQL, namun secara umum perintahnya tetap sama.
Pengenalan MySQL
MySQL
Kenapa Belajar MySQL?
MySQL Community vs MySQL Enterprise
MySQL vs MariaDB
Cara Kerja MySQL Server
Menginstall MySQL
Jika Anda menginstal MySQL/MariaDB menggunakan XAMPP, Anda tidak perlu menginstal ulang MySQL karena jika terjadi konflik maka salah satu aplikasi MySQL tidak akan berfungsi.
Menginstall MySQL di Mac
Menggunakan MySQL Client
MySQL Workbench
Database
Jika kita asumsikan tabel di MySQL adalah sebuah file, maka database adalah sebuah folder, dimana kita dapat menyimpan banyak tabel dalam sebuah database. Biasanya kita akan membuat satu database untuk satu jenis aplikasi, walaupun suatu aplikasi mungkin menggunakan lebih dari satu database, namun secara umum, sebuah aplikasi akan menggunakan lebih dari satu database.
Melihat Semua Database di MySQL
Membuat Database
Memilih Database
Menghapus Database
Tipe Data
Saat kita membuat tabel di Excel, kita bisa mengontrol tipe data apa yang kita masukkan ke setiap kolom di Excel. Di MySQL kita juga bisa menentukan tipe data untuk setiap kolom yang kita buat dalam sebuah tabel. Ada banyak tipe data yang tersedia di MySQL, dari yang sederhana hingga yang kompleks.
Tipe Data per Kolom
Tipe Data Number
Tipe Data Integer
Tipe Data Floating Point
DECIMAL
Number Attribute
Tipe Data String
CHAR dan VARCHAR
Perbedaan CHAR dan VARCHAR
TEXT
ENUM
Tipe Data Date dan Time
Selain tipe data Number dan String, terkadang kita juga menyimpan data waktu atau tanggal. Sebenarnya kita bisa menggunakan Strings untuk menyimpan data waktu atau tanggal namun hal tersebut tidak disarankan karena akan menyulitkan kita ketika perlu memanipulasi waktu atau tanggal di MySQL.
Jenis-Jenis Tipe Data Date dan Time
Tipe Data Boolean
Tipe Data Lainnya
Dan Lain-Lain
Setiap tabel biasanya menyimpan beberapa jenis data, misalnya ketika kita membuat aplikasi toko online, kita akan membuat tabel produk, tabel pelanggan, tabel penjual, dan lain-lain. Sebelum memasukkan data ke dalam tabel, kita harus membuat tabel terlebih dahulu. Dan untuk setiap tabel yang kita buat, kita perlu menentukan kolom dan tipe data untuk setiap kolom.
Kita juga bisa memodifikasi tabel yang sudah dibuat, seperti menambahkan kolom baru, memodifikasi kolom yang sudah ada, atau menghapus kolom.
Storage Engines
Daftar Storage Engines
Melihat Table
Membuat Table
Melihat Struktur Table
Mengubah Table
Secara default, saat kita membuat kolom, kolom tersebut boleh bernilai NULL, jika kita tidak ingin menerima nilai NULL, kita bisa menambahkan NOT NULL saat membuat kolom.
Null Value
Default Value
Membuat Ulang Table
Menghapus Table
Insert Data
Kita bisa menyebutkan kolom mana yang ingin kita isi, jika kita tidak menyebutkan kolom berarti kita tidak akan mengisi kolom tersebut dan otomatis kolom yang tidak kita isi akan menjadi NULL kecuali mempunyai NILAI DEFAULT.
Membuat Tabel Produk
Memasukkan Data
Memasukkan Beberapa Data Sekaligus
Select Data
SELECT dapat digunakan untuk mengambil semua kolom dalam sebuah tabel, atau hanya beberapa kolom saja. Jika kita ingin mengambil beberapa kolom saja, kita dapat menyebutkan nama kolom yang ingin kita ambil datanya.
Mengambil Data
Primary Key
Primary Key di Multiple Column
Menambah Primary Key Ketika Membuat Tabel
Menambah Primary Key di Tabel
Where Clause
Misal kita ingin mengambil data barang yang harganya 1 jutaan, atau mengambil data barang yang jumlahnya 0 (persediaan kosong).
Mencari Data
Update Data
Saat menggunakan SQL UPDATE, kita perlu mengetahui data mana yang akan diperbarui menggunakan klausa WHERE. Berhati-hatilah saat memperbarui data dalam tabel, jika klausa WHERE salah, kita mungkin akan memperbarui semua data dalam tabel.
Menambah Kolom Kategori
Mengubah Satu Kolom
Mengubah Beberapa Kolom
Mengubah Dengan Value di Kolom
Delete Data
Sekarang kita telah mengetahui cara menambah, mengubah, dan mengambil data dalam tabel, hal terakhir yang perlu kita ketahui adalah cara menghapus data dalam tabel. Perintah SQL DELETE sama dengan UPDATE, kita perlu menggunakan klausa WHERE untuk mengetahui data mana yang akan dihapus. Dan hati-hati jangan sampai salah membuat klausa WHERE, karena jika salah, kita bisa menghapus semua data yang ada di tabel.
Menghapus Data
Alias
Mungkin saat ini alias untuk tabel sepertinya belum terlalu berguna, namun nanti ketika kita mempelajari tentang JOIN, fitur alias untuk tabel akan sangat berguna.
Alias untuk Kolom
Alias untuk Tabel
Where Operator
Operator Perbandingan
Mencari Data dengan Operator Perbandingan
AND dan OR Operator
Hasil Operator AND
Mencari Data dengan Operator AND
Hasil Operator OR
Mencari Data dengan Operator OR
Prioritas dengan Kurung ()
LIKE Operator
Hasil Operator LIKE
Mencari Menggunakan LIKE Operator
NULL Operator
Mencari Menggunakan NULL Operator
BETWEEN Operator
Mencari Menggunakan BETWEEN Operator
IN Operator
Mencari Menggunakan IN Operator
Order By Clause
Untuk mengurutkan data saat kita menggunakan pernyataan SQL SELECT, kita dapat menambahkan klausa ORDER BY. Klausa ORDER BY digunakan untuk mengurutkan data berdasarkan kolom yang dipilih dan jenis urutan pengurutan (ASC atau DESC).
Mengurutkan Data
Limit Clause
Selain membatasi jumlah data, kita juga bisa melewatkan beberapa data yang tidak ingin kita lihat.
Membatasi Hasil Query
Skip Hasil Query
Select Distinct Data
Misalnya kita ingin melihat semua kategori pada tabel produk, otomatis hasil query SELECT akan terduplikasi karena banyak sekali produk dalam kategori yang sama. Jika kita ingin menghilangkan data duplikat, kita bisa menggunakan SELECT dengan menambahkan DISTINCT sebelum nama kolom.
Menghilangkan Data Duplikat
Numeric Function
Arithmetic Operator
Menggunakan Arithmetic Operator
Mathematical Function
Menggunakan Mathematical Function
Auto Increment
MySQL mempunyai fitur yang bernama auto inrice, kita bisa menggunakan fitur ini untuk menandakan bahwa suatu data primary key sudah otomatis terisi dari angka terakhir + 1. Dengan menggunakan auto increte, kita tidak perlu memasukkan data-data primary key maka tidak, maka akan terjadi dibuat secara otomatis oleh MySQL.
Membuat Tabel dengan Auto Increment
Memasukkan Data Tanpa Id
Melihat Id Terakhir
String Function
Menggunakan String Function
Date and Time Functions
Date dan Time Function
Menambah Kolom Timestamp
Flow Control Function
Menggunakan Control Flow CASE
Menggunakan Control Flow IF
Menggunakan Control Flow IFNULL
Aggregate Function
Menggunakan Aggregate Function
Grouping
GROUP BY
Menggunakan GROUP BY
HAVING Clause
Menggunakan HAVING Clause
Constraint
Constraint sangat baik kita tambahkan untuk mencegah terjadinya kesalahan validasi pada program kita, sehingga data yang masuk ke database tetap terjaga.
Unique Constraint
Membuat Table dengan Unique Constraint
Menambah/Menghapus Unique Constraint
Check Constraint
Membuat Table dengan Check Constraint
Menambah/Menghapus Check Constraint
Index
Hal ini menyebabkan ketika kita mencari data, MySQL akan mencari dari baris pertama sampai terakhir yang artinya semakin banyak data maka akan semakin lambat. Saat kita membuat indeks, MySQL akan menyimpan datanya di struktur data B-Tree: https://en.wikipedia.org/wiki/B-tree. Selain memudahkan kita saat melakukan pencarian, indeks juga akan memudahkan kita saat mengurutkan dengan ORDER BY.
Cara Kerja Index
Efek Samping Membuat Index
Tidak Perlu Index
Membuat Table dengan Index
Menambah/Menghapus Index
Full-Text Search
Masalah dengan LIKE operator
Membuat Table dengan Full-Text Search
Menambah/Menghapus Full-Text Search
Mode Full-Text Search
Mencari dengan Natural Language Mode
Mencari dengan Boolean Mode
Mencari dengan Query Expansion Mode
Misalnya tabel siswa pada aplikasi kampus akan berhubungan dengan tabel mata kuliah dan tabel guru. Saat kita membuat relasi tabel, biasanya kita membuat kolom sebagai referensi ke tabel lain. Saat kita mis. membuat tabel penjualan pada tabel penjualan, kita menambahkan kolom product_id sebagai acuan tabel produk yang berisi primary key tabel produk.
Membuat Foreign Key sama dengan membuat kolom biasa, hanya saja kita perlu memberitahu MySQL bahwa itu adalah Foreign Key ke tabel lain.
Membuat Table dengan Foreign Key
Menambah/Menghapus Foreign Key
Keuntungan Menggunakan Foreign Key
Ketika Menghapus Data Berelasi
Behavior Foreign Key
Mengubah Behavior Menghapus Relasi
Join
Gabung sangat kompatibel dengan kunci asing, meskipun tidak ada aturan di MySQL bahwa GABUNG harus memiliki kunci asing. Namun ingat, semakin banyak GABUNG, semakin sulit dan lambat proses kuerinya, jadi berhati-hatilah saat mengimplementasikan GABUNG. Idealnya, Anda tidak boleh BERGABUNG lebih dari 5 tabel, karena ini dapat memengaruhi kinerja kueri.
Melakukan JOIN Table
Membuat Relasi ke Table Customers
Melakukan JOIN Multiple Table
One to One Relationship
Jenis-Jenis Relasi Tabel
Artinya, setiap record dalam suatu tabel hanya dapat dikaitkan dengan maksimal 1 record di tabel lain.
Membuat One to One Relationship
Membuat Table Wallet
One to Many Relationship
Relasi banyak ke banyak adalah relasi antar tabel dimana suatu data dapat digunakan lebih dari satu kali dalam tabel relasi tersebut. Berbeda dengan one-to-one yang dapat digunakan paling banyak satu kali pada tabel relasi, one-to-many tidak memiliki batasan berapa banyak data yang digunakan. Contoh hubungan antara kategori dan tabel produk, dimana suatu kategori dapat digunakan oleh lebih dari satu produk, artinya hubungannya adalah kategori multi produk.
Membuat hubungan one to many sebenarnya sama saja dengan one to one, bedanya kita tidak perlu menggunakan UNIQUE KEY karena datanya bisa berkali-kali lipat.
Membuat Table Category