Wednesday, September 11, 2019

SQL untuk Pemula

SQL untuk Pemula

SQL untuk Pemula
Wednesday, September 11, 2019
Pada artikel ini kita akan memberikan tutorial belajar MySQL untuk pemula. Banyak aplikasi web moderen akhir-akhir ini tertarik menggunakan database, biasanya dengan menggunakan bahasa yang disebut dengan SQL. Bahasa ini sangat mudah untuk dipelajari. Dalam artikel ini, kita akan memulai dengan basic SQL queries dan menggunakan dengan MySQL database.

Apa yang dibutuhkan


SQL (Structured Query Language) adalah bahasa yang didesain untuk berinteraksi dengan relational database management system (RDBMS), seperti MySQL, Oracle, Sqlite, dan sebagainya. Untuk memulai SQL queries dalam artikel ini, saya sarankan untuk menginstall MySQL. Saya juga sarankan phpMyAdmin sebagai visual interface dengan MySQL.

Aplikasi tersebut sangan mudah untuk diinstal  untuk MySQL dan phpMyAdmin di local machine (server local) seperti:


Dalam artikel ini saya akan menggunakan comand line untuk queries. Dan saya menggunakan XAMPP untuk memulai MySQL.

Memulai XAMPP


Untuk memulai menjalankan XAMPP pastikan sudah menginstall aplikasi XAMPP di komputer yang digunakan.

Pertama buka XAMPP Control Panel. Klik Start pada MySQL.


Kemudian buka console atau klik shell pada XAMPP. Ketikkan "mysql -u root" untuk memulai menggunakan database. Perintah ini adalah perintah untuk login ke dalam MySQL. root merupakan user login default.


Setelah itu kita siap menggunakan query sql untuk membuat dan memanipulasi database.

CREATE DATABASE: Membuat Database


Pertama kita menggunakan query untuk membuat database dan bekerja dengannya.

CREATE DATABASE my_frist_db;


Semicolon (;) adalah akhir dari query, seperti akhir dari baris kode.

'CREATE DATABASE' adalah case insensitive, kita bisa menggunakan huruf besar atau huruf kecil untuk menuliskan querynya. Tapi dalam artikel ini agar mudah dibaca query akan ditulis menggunakan huruf besar.

Optional: Character Set dan Collation


Jika kamu akan set karakter default dan collation, kamu bisa menuliskan query seperti ini:

CREATE DATABASE my_frist_db DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

Klik disini untuk lebih mengetahui character set dan collations di MySQL.

SHOW DATABASES: Daftar semua Database


Query ini digunakan untuk mendapatkan daftar dari semua database yang dimiliki.


DROP DATABASES: Delete sebuah Database


Kamu bisa menghapus databse yang ada dalam databasemu dengan query 'DELETE DATABASE' diikuti dengan nama database yang ingin didelet.


Hati-hati menggunakan query ini, karena tidak ada peringatan. Jika kamu memiliki table dan data didalam database, tabel dan data tersebut akan ikut terhapus.

USE: Memilih sebuah Database


Ini sebenarnya bukan query. Ini hanyalah sebuat statement dan tidak diperlukan semicolon di akhir dari statement ini.


Itu akan mengatakan MySQl untuk memilih default database untuk bekerja dengannya, mulai dari sesi ini. Sekarang kita siap untuk membuat table dan melakukan banyak hal dalam database.

Apa itu table?


Kamu bisa berfikir table dari database seperti sebuah spreadsheet atau file excel yang memiliki structure seperti data.


Seperti halnya data dalam spreadsheet atau excel, table juga memiliki kolom nama, dan baris dari data. Dengan SQL query kita bisa membuat table. Kita juga bisa add, read, update, dan delete data.

CREATE TABLE: Membuat sebuah Table


Dengan query ini kita bisa membuat table dalam database kita. Sebenarnya MySQL documentation tidak begitu baik untuk pembelajaran. Struktur dari tipe query sangan komplek, tetapi kita akan memulai dari yang paling mudah.

Query dibawah ini akan membuat table dengan 2 kolom.

CREATE TABLE users (
          username VARCHAR(20),
          create_date DATE
);

Kita bisa menggunakan query dengan banyak baris dan menggunakan tabs sebagai pembeda tingkatan dari query yang digunakan.

Baris pertama sangan mudah dipahami. Kita hanya membuat table dengan nama 'users'. Mengikuti itu, kita memiliki table dengan 2 kolom . Masing-masing kolom dipisahkan dengan koma.

VARCHAR(20) maksudnya kolom dengan type string, dan bisa mengisi maksimum sampai 20 karakter. DATE juga merupakan type data yang spesial digunakan untuk tanggal, memiliki format 'YYYY-MM-DD'.

PRIMARY KEY


Sebelu menjalankan query itu, kita sebaiknya menambahkan kolom 'user_id' yang akan menjadi PRIMARY KEY. Kamu bisa berfikir sebuah PRIMARY KEY seperti identitas dari baris dari data pada tabel.

Sekarang querynya menjadi:

CREATE TABLE users (
          user_id INT AUTO_INCREMENT PRIMARY KEY,
          username VARCHAR(20),
          create_date DATE
);

INT membuat 32 bit integer dengan tipe numerik. AUTO_INCREMENT otomatis generate nomor baru setiap kita menambahkan baris pada data. Ini tidak dibutuhkan, tapi membuatnya lebih efisien.

Kolom ini tidak harus dibuat integer, tetaou biasanya menggunakan type integer. Memiliki sebuah PRIMARY KEY kolom tidak dibutuhkan, tetapi direkondasikan untuk membuat disegn dan performa database menjadi bagus.

Mari kita lakukan query itu


SHOW TABLES: Daftar semua Tabel


Query ini untuk mendapatkan daftar table yang sekarang dalam database.


EXPLAIN atau DESCRIBE: Melihat Struktur Tabel


Untuk melihat struktur dari tabel, dapat digunakan EXPLAIN tabel atau menggunakan DESCRIBE.
.

DROP TABLE: Delete sebuah Tabel


Seperti dengan DROP DATABASES, query ini juga bisa untuk menghapus tabel dan konten, tanpa peringatan.


ALTER TABLE: Memodifikasi sebuah Tabel


Query ini bisa sangat komplek karena banyaknya perubahan pada table. Mari kita lihat contoh simpel.

Jangan lupa membuat table users kembali jika sudah di drop dengan query sebelumnya.

Menambahkan sebuah kolom


ALTER TABLE users
          ADD email VARCHAR(100)
          AFTER username;

SQL query menggunakan bahasa Inggris sehari hari, saya rassa tidak perlu menjelaskan query diatas.


Menghapus kolom


Itu terlihat sangat simpel. Tetapi hati-hati dalam menghapus kolom karena itu akan permanen, tidak ada restore atau peringatan apapun.

Tambahkan kembali email yang sudah dihapus.

Memodifikasi Kolom


Terkadang kamu mungkin ingin merubah properti dari kolom, jadi kamu tidak harus menghapus dan membuatnya kembali.


Query diatas mengubah kolom username menjadi 'user_name' dan mengubah type dari VARCHAR(20) menjadi VARCHAR(30). Perubahan tidak akan mempengaruhi isi dari data table.

INSERT: Menambah data ke dalam Tabel


Mari mulai menambahkan data dalam tabel dengan query ini.


Sekarang kamu dapat melihat, VALUES() berisi daftar dari nilai, dipisahkan dengan koma. String diisi didalam single quotes. Dan nilai diurutkan berdasarkan kolom yang didefinisikan ketika dibuat tabel.

Catatan nilai pertama adalah NULL untuk PRIMARY KEY atau yang disebut 'user_id'. Diisi NULL karena akan mengenerate otomatis, karena kolom ini didefinisikan AUTO_INCREMENT. Ketika memasukkan data pertama kali, id akan bernomor 1. Kemudian insert selanjutnya akan 2 dan seterusnya.

Syntax Alternatif


Ini adalah syntax lain untuk melakukan insert baris.


Kali ini kita menggunakan keyword SET sebagai ganti VALUES, dan ini tidak diikuti dengan tanda kurung. Ini beberapa catatan untuk syntax ini:

  • Sebuah kolom dapat dihilangkan. Contohnya kita tidak memasukkan nilai user_id, yang akan default dengan fungsi AUTO_INCREMENT. Jika kamu menghilangkan kolom VARCHAR, itu akan default dengan empty string.
  • Kolom menjadi referensi untuk nama. Karena itu, urutannya dapat dirubah.

Syntax Alternatif 2


Ini syntax lain dari insert.


Kita menggunakan referensi nama, jadi urutan bisa mengikuti dari nama tersebut.

LAST_INSERT-ID()


Kamu  bisa menggunakan query ini untuk mendapatkan AUTO_INCREMENT id untuk terakhir kali dilakukan inset pada baris.


NOW()


Fungsi NOW() akan mengembalikan waktu saat ini. Jadi kamu bisa set waktu otomatis menggunakan kolom DATE untuk waktu sekaang pada baris baru.


Catatan itu akan mengeluarkan warning pada MySQL, tapi itu tidak begitu masalah. NOW() sebenarnya akan mengeluarkan informasi waktu juga seperti jam menit detik.


Tetapi create_date kolom hanya membutuhkan tanggal, dan tidak membutuhkan waktu. Meskipun demikian tidak begitu masalah. Kita juga bisa menggunakan CURDATE() untuk mendapatkan hanya tanggal.

SELECT: Membaca Data dari Tabel


Data yang kita masukkan tidak berguna jika kita tidak bisa membacanta. Ini mengapa query SELECT datang.

Ini adalah query paling simpel dari SELECT untuk menampilkan tabel:


Pada kasus itu, bintang (*) maksudnya kita meminta untuk mengeluarkan semua kolom dari tabel. Jika kamu ingin hanya mengeluarkan kolom tertentu, query yang digunakan akan seperti ini:


WHERE Klausa


Lebih jauh lagi, kita hanya tertarik dengan baris tertentu, dan tidak semua. Contohnya kita ingin menampilkan email dengan user fiesta.


Pikirkan seperti IF statement. WHERE mengizinkan kita untuk menaruh kondisi pada hasil query yang akan kita lihat.

Catatan untuk pembandingan kondisi, hanya membutuhkan satu sama dengan (=), bukan double (==) yang biasa digunakan pada programming.

Kamu juga bisa menggunakan lebih kecil atau lebih besar juga atau menggunakan logika OR, AND dan lainnya:


Catatan untuk numerik tidak dibutuhkan quotes.

IN()


Ini digunakan untuk mencocokan beberapa values.


LIKE


Ini akan mengizinkan untuk melakukan pencarian kata.


Persen digunakan dalam pencarian kata.

ORDER BY Klausa


Jika kamu ingin hasil yang ditampilkan terurut, gunakan klausa ini:


Urutan default adalah ASC (ascending). Kamu bisa menambahkan DESC untuk membaliknya.

LIMIT ... OFFSET ...


Kamu bisa membatasi hasil dari keluaran.


LIMIT 2 hanya mengeluarkan hasil 2 pertama. LIMIT 1 OFFSET 3 menghasilkan 1 output,setelah 3 pertama. LIMIT 1, 3 maksudnya mengeluarkan 3 setelah pertama.

UPDATE: Memperbarui Data pada Tabel


Query ini digunakan untuk melakukan perbaruan pada data di tabel.


Sekarang ini banyak menggunakan klausa WHERE, karena kamu hanya akan merubah baris spesifik saja. Jika tidak menggunakan WHERE, semua baris akan terganti tanpa mengeluarkan peringatan.

Kamu juga bisa menggunakan klausa LIMIT untuk membatasi jumlah perubahan.


DELETE: Menghapus Data dari Tabel


Seperti halnya UPDATE, query ini juga digunakan dengan klausa WHERE.


TRUNCATE TABLE


Untuk menghapus semua isi dalam tabel, kamu bisa menggunakan query ini:

DELETE FROM users;

Tetapi akan lebih efisien menggunakan TRUNCATE TABLE.


TRUNCATE juga akan mereset AUTO_INCREMENT nomor jadi baris akan memulai kembali dari awal. Tetapi ini tidak terjadi dengan query DELETE, dan penghitungan akan tetap berjalan.

Menggunakan Nilai String dan Karakter Special


Nilai String


Semua karakter khusus dapat disimpan dalam database, dengan cara seperti ini:


Tanda backslash (\) digunakan untuk meloloskan karakter khusus.

Ini sangatpenting untuk keamanan. User dapat melakukan input database yang menggunakan karakter khusus. Dalam PHP, kamu bisa menggunakan fungsi mysql_real_escape_string() atau perintah yang berbeda untuk meloloskan ke dalam database.

Kata Spesial


MySQL memiliki banyak kata spesial seperti SELECT atau UPDATE, kamu tidak dapat menggunakannya sebagai nama tabel atau kolom secara langsung.

Kesimpulan


Untuk menggunakan SQL kamu harus mengerti mengenai syntax yang digunakan untuk memanipulasi data atau membuat table untuk data yang diinginkan. Dengan mempelajari ini kamu sudah belajar syntax yang biasa digunakan dalam MySQL. 

Berkomentarlah secara bijak.
EmoticonEmoticon