Tutorial Mysql Database
Tutorial Mysql Database
Basis data adalah koleksi dari data-data yang terorganisasi sedemikian rupa sehingga data
mudah disimpan dan dimanipulasi (diperbaharui, dicari, diolah dengan perhitungan-
perhitungan tertentu, dan dihapus).
Abstraksi Data
1. Peringkat fisik (terendah)
Mendeskripsikan struktur data yang digunakan, pola representasi bit, dll, yang akan
disimpan dalam penyimpanan fisik.
2. Peringkat logika
Mendeskripsikan data apa yang disimpan di basis data dan hubungan apa yang ada
antara data-data tersebut.
3. Peringkat pengguna (tertinggi)
Menyederhanakan interaksi pengguna dengan sistem dalam bentuk GUI dalam
aplikasi sistem basis data.
Hirarki Data
Data elemen data record file/berkas
Keterangan:
Elemen data : Satuan data terkecil yang tidak dapat dipecah lagi menjadi unit lain
yang bermakna. Istilah lainnya adalah field, kolom, item dan atribut.
Record : Gabungan sejumlah elemen data yang saling terkait. Dalam sistem
basis data relasional, record biasa disebut dengan istilah tupel atau
baris (row)
File / berkas : Himpunan seluruh record yang bertipe sama membentuk sebuah
berkas. Dalam sistem basis data relasional, file mewakili komponen
yang disebut tabel atau relasi
Pengguna Database
1. Database Administrator (DBA)
Adalah orang yang bertanggung jawab terhadap pengelolaan basis data. Tugas DBA
adalah:
Mendeinisikan pola basis data
Mendefinisikan struktur penyimpanan dan metode akses
Memberikan kekuasaan pada user untuk mengakses data
Memantau kinerja sistem
Menentukan keamanan data
Merencanakan backup dan recovery
2. Programmer
Adalah orang yang membuat aplikasi dan menghubungkan dengan database
3. Pengguna aplikasi
Adalah orang yang dapat memberikan perintah-perintah tambahan pada basis data.
4. Pengguna akhir
Adalah orang yang dapat menggunakan hasil aplikasi
Pengenalan DBMS
DBMS adalah aplikasi yang digunakan untuk mengelola atau me-manage data.
Tanpa menggunakan DBMS, untuk me-manage data, seperti data produk, data
customer, data penjualan, maka kita harus simpan data tersebut dalam bentuk file.
Misal: Seperti kita menggunakan Excel
DBMS biasanya berjalan sebagai aplikasi yang berbasis server yang digunakan untuk
me-manage data, kita hanya tinggal memberi perintah ke DBMS untuk melakukan
proses manajemen datanya, seperti menambah, mengubah, menghapus atau
mengambil data.
Contoh DBMS yang popular seperti MySQL, PostgreeSQL, MongoDB, Oracle, dan
lain-lain.
SQL
Structured Query Language
Merupakan bahasa yang digunakan untuk mengirim perintah ke DBMS
SQL adalah bahasa yang karena hanya berisi instruksi untuk menyimpan, mengubah,
menghapus atau mengambil data melalui DBMS.
Secara garis besar, semua perintah SQL di relational database itu hamper sama,
namun biasanya tiap DBMS ada improvement yang membedakan hal-hal kecil dalam
perintah SQL namun secara garis besar perintahnya tetap sama.
Pengenalan MySQL
MySQL adalah DBMS Relational OpenSource yang paling popular didunia saat ini
Tidak hanya OpenSource, MySQL juga gratis untuk digunakan
MySQL pertama kali dibuat dan diperkenalkan tahun 1995 oleh David Axmark dan
Michael Widenius
MySQL sangat popular sekali terutama dikalangan programmer web PHP
https://www.mysql.com/
MySQL vs MariaDB
Tahun 2008 MySQL di akuisisi oleh perusahaan Sun Microsystem
Namun Tahun 2009, Sun Microsystem diakuisisi oleh perusahaan Oracle (Pemilik
DBMS Oracle)
Hal ini menyebabkan 2 founder MySQL keluar dari MySQL dan membuat project
baru bernama MariaDB
MariaDB sebenarnya fork dari MySQL, jadi apa yang bisa dilakukan di MySQL bisa
dilakukan di MariaDB
Sehingga sekarang jangan terlalu bingung jika ada MySQL dan MariaDB, karena
sebenarnya itu dari source code yang sama, mungkin ada perbedaan kecil seperti
improvement yang dilakukan pada MariaDB, namun secara garis besar sebenarnya
tetap sama.
https://mariadb.org/
o Download – Install
o Saat anda meng-install aplikasi MySQL, pilih Full pada Choosing a Setup
Type.
o Setelah proses install selesai, klik service pada menu windows pastikan nama
MySQL yang kita install tersebut dalam kondisi running.
Atau menggunakan aplikasi yang mem-bundle MySQL seperti XAMPP yang biasa
digunakan oleh programmer PHP
Jika sudah menginstall MySQL/MariaDB menggunakan XAMPP, tidak perlu
menginstall lagi MySQL, karena jika bentrok, maka salah satu aplikasi MySQL tidak
akan bisa digunakan.
Database
Database adalah tempat kita menyimpan table di MySQL
Jika kita misalkan table di MySQL adalah sebuah file, maka database adalah
foldernya, dimana kita bisa menyimpan banyak table di sebuah database.
Biasanya pembuatannya kita akan membuat satu database untuk satu jenis aplikasi
bisa menggunakan lebih dari satu database, namun lumrahnya, satu aplikasi akan
menggunakan satu database.
MySQL
Database_xxx Database_yyy
Table
B Table
xxx
Table
A Table
C Table
111
Melihat semua database di MySQL, maka anda dapat mengetikkan perintah SQL
show databases;
Untuk membuat database, maka cukup mengetikkan perintah create database
nama_database;
Untuk menghapus database, maka anda dapat mengetikkan perintah drop database
nama_database;
Perintah drop database digunakan untuk menghapus database, maka seluruh data atau
table yang ada dalam database akan hilang. Pastikan anda untuk mem backup data
atau table tersebut.
Setelah anda meng-create database, langkah selanjutnya gunakan database tersebut
dengan mengetikkan perintah use nama_database; jika anda tidak menggunakan
database tersebut, maka anda tidak dapat meng-create table di dalam database
tersebut.
Tipe Data
Saat kita membuat table di excel, kita bisa menentukan tipe data yang kita masukkan
ke tiap kolom di excel.
Pada MySQL, kita juga bisa menentukan tipe data tiap kolom yang kita buat disebuah
table
Ada banyak sekali tipe data yang tersedia di MySQL, dari yang sederhana sampai
yang kompleks
Biasanya kita akan menggunakan tipe data sesuai dengan kebutuhan kolom yang
perlu kita buat.
Keterangan:
Length in Bytes adalah ukuran dalam kapasitas memori penyimpanan.
Unsigned adalah nilai yang tidak bisa menampung nilai minus akan tetapi
nilai minus di ganti menjadi “0”
Keterangan:
Decimal (5,2) = 5 adalah panjang angkanya, dan 2 adalah jumlah angka
dibelakan koma
Number Attribute
Tipe Deskripsi
Dimana N adalah integer dengan panjang data sebanyak N yang
ditetapkan.
TYPE(N)
Contoh: INT(3) = maka panjangnya angka yang diinputkan adalah 3
digit
Padding default spasi diganti dengan nol, Jadi, jika anda mengetikkan
tipe data INT(3) ZEROFILL, 7, maka ditampilkan 007
ZEROFILL
Jika anda mengetikkan INT(3) ZEROFILL, 2, maka hasilnya 002
Keterangan:
Perbedaannya adalah cara menyimpan datanya.
Jika anda menginputkan nilai atau tanda ‘’ saja, maka CHAR akan tetap dihitung
sebanyak 4 karakter dengan storage required sebanyak 4 bytes.
Jika anda inputkan nilai ‘abcdefgh’ dan CHAR hanya menyimpan sebanyak karakter,
maka yang dibaca adalah ‘abcd’ dengan storage required sebanyak 4 bytes.
VARCHAR atau disebut dengan variable karakter dimana ukurannya bisa membesar
dan mengecil sesuai dengan data yang diinputkan.
Jika anda inputkan tanda string ‘’ saja, maka storage required 1 bytes
Alasan panjang storage required lebih 1 bytes, karena varchar membutuhkan
informasi dari penggunaan datanya.
Tipe Data Lainnya seperti BLOB, SPATIAL, JSON, SET dan lain-lain atau kalian bisa baca
pada link berikut: https://dev.mysql.com/doc/refman/8.0/en/data-types.html
Table
Data biasanya disimpan di dalam tabel di MySQL
Tiap tabel biasanya menyimpan satu jenis data, misal ketika kita membuat aplikasi
took online, kita akan membuat tabel barang, tabel pelanggan, tabel penjual dan lain-
lain
Sebelum kita bisa memasukkan data ke tabel, kita wajib terlebih dahulu membuat
tabelnya terlebih dahulu
Dan tiap tabel yang kita buat, wajib ditentukan kolom-kolomnya dan tipe data tiap
kolomnya
Kita juga bisa mengubah tabel yang sudah terlanjur dibuat, seperti menambah kolom
baru, mengubah kolom yang sudah ada, atau menghapus kolom
Storage Engines
MySQL memiliki berbagai cara melakukan pengolahan data, cara pengolahan data
tersebut disimpan dalam Storage Engines
Saat ini yang biasa dan popular digunakan adalah InnoDB yang merupakan
DEFAULT storage engines dari MySQL.
Untuk melihat storage engines apa saja yang terdapat di MySQL, kita bisa
menggunakan perintah: SHOW ENGINES;
Melihat Tables
Setelah anda sukses meng-create database, ketikkan perintah use nama_database nya
Show tables. Jika anda sudah membuat table di dalam database nya, maka seluruh
table yang anda create akan muncul.
Membuat Tables
Perintah SQL untuk membuat table adalah,
create table barang(
id int,
nama varchar(100),
harga int,
jumlah int
)Engine = InnoDB;
Melihat struktur table
Describe nama_tabel;
describe barang;
Perintah struktur SQL untuk membuat tabel
Show Create Table nama_table;
show create table barang;
Mengubah table, dimana kita dapat menambah kolom, merename table dan lain
sebagainya
ALTER TABLE barang
ADD COLUMN nama_column TEXT, //perintah untuk menambah
kolom
DROP COLUMN nama, //perintah untuk menghapus kolom
RENAME COLUMN nama TO nama_baru, //perintah untuk merubah
nama kolom
MODIFY nama VARCHAR(100) AFTER jumlah, //menggeser kolom
nama setelah kolom jumlah
MODIFY nama VARCHAR(100) FIRST; //menggeser kolom nama
pada posisi pertama
Null Value
NULL adalah nilai ketika kita tidak mengisi data ke dalam kolom
Secara default, saat kita membuat kolom, kolom tersebut bisa bernilai NULL, jika kita
tidak ingin menerima nilai NULL, kita bisa menambahkan NOT NULL ketika
pembuatan kolomnya.
Default Value
Saat kita menyimpan data kedalam tabel, lalu kita hanya menyimpan beberapa kolom
(tidak semuanya), kolom yang tidak kita beri nilai secara default nilainya adalah
NULL
Jika kita ingin mengubah default value nya, kita bisa menambahkan perintah
DEFAULT NILAI ketika pembuatan kolomnya
Khusus tipe data DATETIME atau TIMESTAMP, jika kita ingin menggunakan
default value dengan nilai waktu saat ini, kita bisa gunakan kata kunci
CURRENT_TIMESTAMP (perintah yang menggunakan waktu saat ini)
create table barang(
id int NOT NULL,
nama varchar(100) NOT NULL,
harga int NOT NULL DEFAULT 0, //saat anda tidak memasukkan
nilai, maka default nilai nya adalah 0
jumlah int NOT NULL DEFAULT 0
)Engine = InnoDB;
Perintah SQL untuk membuat ulang table atau menghapus semua data yang ada dalam
table, adalah: TRUNCATE nama_tabel;
Perintah untuk menghapus tabel adalah: DROP Table nama_tabel;
Insert Data
Sebelum kita memasukkan data kedalam tabel, tabel harus dibuat terlebih dahulu
Kita bisa menyebutkan kolom mana yang ingin kita isi, jika kita tidak menyebutkan
kolomnya, artinya kolom tersebut tidak akan kita isi, dan secara otomatis kolom yang
tidak kita isi, nilainya akan NULL, kecuali memiliki DEFAULT VALUE
Untuk memasukkan data kedalam tabel, kita bisa menggunakan perintah SQL yang
bernama INSERT.
Perintah untuk menginputkan satu data
insert into products (id, nama, price, quantity) values ('P0001','Mie Ayam
Bakso',15000,100);
atau
Primary Key
Saat kita membuat tabel, idealnya tiap tabel memiliki Primary Key
Primary Key adalah sebuah kolom yang kita tunjuk sebagai id dari tabel tersebut
Primary key adalah identitas untuk tiap baris data didalam tabel
Primary key harus unik, tidak boleh ada data dengan primary key yang sama
Kita bisa menunjuk kolom yang akan kita jadikan primary key
Where Clause
Saat mengambil data menggunakan perintah SQL SELECT, kadang kita ingin
melakukan pencarian data
Misal kita ingin mengambil data barang yang harganya 1jt, atau mengambil data
barang yang quantity nya 0 (stoknya kosong)
Hal ini bisa kita lakukan dengan WHERE clause setelah perintah SELECT
SELECT id, nama, price, quantity
FROM products
WHERE quantity = 0;
Keterangan:
Perintah untuk menampilkan id, nama, price, quantity dari tabel products dimana yang
ditampilkan adalah nilai quantity = 0.
Update Data
Untuk mengubah data di tabel, kita bisa menggunakan perintah SQL UPDATE
Saat menggunakan SQL UPDATE kita harus memberi tahu data mana yang akan di
update dengan WHERE clause
Hati-hati ketika meng-update data di tabel, jika sampai WHERE clause nya salah
bisa-bisa kita malah meng-update seluruh data di tabel
Untuk update kita harus beritahu kolom mana yang akan di update.
UPDATE products
SET category = ‘Makanan’
WHERE id = ‘P0001’;
//Update untuk nilai yang lebih dari satu data.
UPDATE products
SET category = ‘Makanan’
Description = ‘Mie Ayam Original + Ceker’
WHERE id = ‘P0003’;
//Mengubah data harga dengan menambahkan nilai yang ada pada kolom tersebut
UPDATE products
SET price = price + 5000
WHERE id = ‘P0004’;
Delete Data
Setelah kita tahu cara menambah data mengubah dan mengambil data di tabel,
terakhir yang perlu kita ketahui adalah menghapus data di table
Untuk menghapus data di table kita menggunakan perintah SQL DELETE
Perintah SQL DELETE sama seperti UPDATE, kita perlu memberi tahu data mana
yang akan di hapus dengan WHERE clause
Dan hati-hati jangan sampai salah menentukan WHERE clause, karena jika salah
bisa-bisa kita akan menghapus seluruh data di tabel.
DELETE
FROM products
WHERE id =’P0009’;
Alias
MySQL memiliki fitur untuk melakukan alias untuk kolom dan tabel
Alias berguna jika kita ingin mengubah nama kolom atau nama tabel ketika
melakukan SELECT data
Mungkin saat ini alias untuk tabel tidak terlalu terlihat gunanya, tapi nanti ketika kita
telah mempelajari tentang JOIN, maka fitur alias untuk tabel sangat berguna sekali.
Contoh:
Mencari data dengan operator perbandingan dimana quantity dari tabel produk
besar dari 100.
SELECT id, nama, price, quantity
FROM products
WHERE quantity > 100;
Contoh:
Mencari data dengan operator AND dimana quatity > 100 dan price > 10000 pada
tabel products. Kondisi nya harus sama-sama benar.
SELECT * FROM products
WHERE quantity > 100 AND price > 20000;
Hasil Operator OR
Contoh:
Mencari data dengan operator OR dimana quatity > 100 dan price > 20000 pada
tabel products.
SELECT * FROM products
WHERE quantity > 100 OR price > 20000;
o Operator LIKE
LIKE operator adalah operator yang bisa kita gunakan untuk mencari
sebagian data dalam string
Ini cocok sekali ketika kita hanya ingin mencari sebagian kata dalam
string
Namun perlu diingat, operator LIKE itu sangat lambat, oleh karena itu
tidak disarankan jika datanya sudah terlalu besar di tabel
Operator LIKE tidak case sensitive, jadi huruf besar dan kecil tidak akan
berpengaruh
Hasil Operator LIKE
Keterangan:
b% = artinya kita ingin mencari data yang depannya adalah b
%a = artinya kita ingin mencari data yang belakangnya adalah a
%mie% = artinya ingin mencari seluruh kata yang ada kata mie
o Operator NULL
Untuk mencari data yang berisi NULL kita tidak bisa menggunakan
operator perbandingan = NULL
Ada operator khusus untuk mencari data NULL yanitu menggunakan
NULL operator
IS NULL artinya mencari yang NULL
IS NOT NULL artinya mencari yang tidak NULL
Contoh:
Mencari data yang NULL dengan menggunakan operator NULL
SELECT *
FROM products
WHERE description IS NULL;
o BETWEEN Operator
Kadang kita ingin mencari data yang >= dan <= secara sekaligus, hal ini
jika dilakukan secara bersamaan makan akan sedikit rumit.
Misal kita mencari products yang harganya antara 10000 sampai 20000
Untuk melakukan ini, kita bisa menggunakan WHERE price >= 10000
AND price <= 20000. Cara seperti ini membutuhkan perintah yang sangat
panjang. Untuk mengatasi ini maka digunakan operator BETWEEN.
Namun ada operator BETWEEN yang bisa kita gunakan agar lebih
sederhana
Untuk kebalikannya, kita bisa gunakan NOT BETWEEN
SELECT *
FROM products
WHERE price BETWEEN 10000 AND 20000;
o IN Operator
Operator IN adalah operator untuk melakukan pencarian sebuah kolom
dengan beberapa nilai
Misal kita ingin mencari products dengan category Makanan atau
Minuman, maka kita bisa menggunakan Operator IN
SELECT *
FROM products
WHERE category IN (‘Makanan’, ‘Minuman’);
Limit Clause
Mengambil seluruh data di tabel bukanlah pilihan bijak, apalagi jika datanya sudah
banyak sekali.
Kita bisa membatasi jumlah data yang diambil dalam SQL SELECT dengan LIMIT
clause
Selain membatasi jumlah data, kita juga bisa meng-skip sejumlah data yang tidak
ingin kita lihat.
LIMIT biasanya digunakan saat melakukan paging di aplikasi kita.
Numeric Function
MySQL memiliki banyak sekali fitur untuk manipulasi data angka
Hal ini memudahkan kita untuk memanipulasi data angka
Secara garis besar, fitur ini dibagi menjadi dua, Arithmetic Operator dan
Mathematical Function
Arithmetic Operator
Name Description
%, MOD Modulo operator
* Multiplication operator
+ Addition operator
- Minus operator
Change the sign of the argument (Minus
-
didepan angka)
/ Division operator
DIV Integer division (dibagi)
Mathematical Function
Selain arithmetic operator, ada juga mathematical function
Ini adalah kumpulan function yang terdapat di MySQL yang bisa kita gunakan
sebagai fungsi-fungsi matematika
Ada banyak sekali, dan tidak bisa kita bahas semua
https://dev.mysql.com/doc/refman/8.0/en/mathematical-functions.html
Melihat Id Terakhir
SELECT LAST_NAME_ID();
String Function
Sama seperti number, di MySQL juga banyak menyediakan function untuk tipe data
String
Ada banyak sekali function-function yang bisa kita gunakan
https://dev.mysql.com/doc/refman/8.0/en/string-functions.html