Modul 3: Query Select & DML - informatika-itts/modul-perancangan-basis-data GitHub Wiki
Query Select
Query SELECT
di MySQL digunakan untuk mengambil data dari satu atau lebih tabel. Kita dapat mengambil data semua kolom atau kolom tertentu yang cocok dengan kondisi tertentu menggunakan query ini.
Ada beberapa parameter yang ada di query SELECT
ini, seperti SELECT
, WHERE
, TOP
, DISTINCT
, ORDER BY
, dan LIMIT
SELECT
Perintah SELECT
pada MySql biasanya digunakan untuk menampilkan data yang berada di dalam tabel. Selain itu, fungsi SELECT
juga digunakan untuk mendapatkan nilai/data dari dalam tabel.
Sintaks :
SELECT [kolom-yang-ingin-ditampilkan] FROM [nama tabel];
Contoh :
SELECT nama FROM user;
Untuk menampilkan keseluruhan data didalam tabel, tinggal ganti nama kolomnya menjadi * Contoh :
SELECT * FROM user;
WHERE
WHERE
digunakan untuk menampilkan data dengan suatu kondisi tertentu. Pada dasarnya WHERE
dapat mendukung operasi perbandingan seperti =, !=, >, <, >=, dan <=
.
Contoh : Kita akan menampilkan list mahasiswa yang kelahirannya tahun 2002
SELECT * FROM mahasiswa WHERE tahun_lahir = 2002;
Selain itu, WHERE
memiliki banyak turunan. Salah satunya WHERE IS NOT NULL
untuk memilih data yang tidak bernilai NULL
.
Adalagi namanya WHERE IN
, yang akan memfilter data yang memenuhi salah satu value yang ditentukan.
Contoh : Kita ingin menampilkan mahasiswa yang berasal dari prodi Informatika, Sistem Informasi, dan Teknologi Informasi.
SELECT * FROM mahasiswa WHERE program_studi IN (Informatika, Sistem Informasi, Teknologi Informasi);
Ada lagi namanya WHERE LIKE
. Perhatikan contoh soal berikut:
SELECT * FROM mahasiswa WHERE nama LIKE 'A%';
Fungsi WHERE LIKE
diatas akan memfilter semua nama mahasiswa yang diawali dengan 'A'. Dan di contoh WHERE LIKE
diatas juga ditambahkan wildcard % untuk menyatakan 'terserah'. Misalnya contoh diatas 'A%', maka nama harus diawali dengan 'A' dan dilanjutkan dengan karakter atau kata apapun.
Contoh lainnya adalah WHERE BETWEEN
yang dapat memfilter data dengan rentang date / datetime tertentu.
Selain semua varian WHERE
diatas, kita juga bisa mengkombinasikan banyak kondisi WHERE
dalam satu query dengan menggunakan AND
atau OR
.
Contoh : Kita ingin menampilkan list mahasiswa yang berada di prodi Informatika dengan tahun kelahiran 2002
SELECT * FROM mahasiswa WHERE program_studi = 'IF' AND tahun_lahir = 2001;
Jika kedua kriteria terpenuhi, data akan ditampilkan. Namun jika hanya perlu minimal 1 kriteria terpenuhi, kita bisa menggantikan AND
dengan OR
.
LIMIT
Perintah SELECT LIMIT
digunakan untuk membatasi jumlah baris data yang dihasilkan oleh suatu perintah atau query SELECT
. Pembatasan jumlah baris data hasil query ini diperlukan apabila suatu query menghasilkan jumlah baris data yang sangat banyak sehingga mempengaruhi kecepatan eksekusi query tersebut.
Sintaks :
SELECT [nama_kolom] FROM [nama_tabel] WHERE [kondisi] LIMIT [angka];
Contoh kasus :
- Kita ingin mengambil 3 data saja dari kumpulan data diatas
SELECT * FROM Customers LIMIT 3;
Hasil :
- Kita ingin mengambil 3 data saja customer yang berasal dari negara UK
SELECT * FROM Customers WHERE Country='UK' LIMIT 3;
Hasil :
DISTINCT
Saat kita membuat query untuk menampilkan data pada suatu tabel, Sangat dimungkinkan kita akan mendapat duplikasi data pada baris tabel tersebut. Dengan menggunakan select distinct kita dapat menghapus duplikasi baris tersebut sehingga akan menampilkan data yang unik. Atau bisa juga dengan kata lain kita kelompokan data menjadi satu baris data yang unik untuk ditampilkan.
Sintaks :
SELECT DISTINCT [nama_kolom] FROM [nama_tabel];
Contoh kasus :
- Kita ingin melihat daftar negara dari data nama pelanggan diatas.
SELECT DISTINCT Country FROM customers;
Hasil :
- Kita ingin menampilkan 3 negara dari sekumpulan list negara pada data pelanggan diatas.
SELECT DISTINCT Country FROM customers LIMIT 3;
Hasil :
ORDER BY
ORDER BY
merupakan sebuah klausa yang digunakan untuk mengurutkan hasil query pada sebuah kolom berdasarkan dengan nilai terbesar atau terkecilnya. Untuk mengetahui diurutkan secara nilai terbesar atau terkecil, setelah klausa ORDER BY
dapat ditambahkan ASCENDING
ataupun DESCENDING
.
Apabila tidak menulis perintah urutan ASC
ataupun DESC
, secara default akan diurutkan secara ASCENDING
.
Sintaks :
SELECT [nama_kolom] FROM [nama_tabel] ORDER BY [nama_kolom] ASC/DESC;
Contoh kasus :
- Kita ingin menampilkan data diatas berdasarkan nama negara dari A - Z
SELECT * FROM Customers ORDER BY Country;
Hasil :
- Kita ingin menampilkan CustomerName dari data diatas berdasarkan nama negara dari Z - A dan City dari A - Z.
SELECT CustomerName, City, Country FROM Customers ORDER BY Country DESC, City ASC;
Hasil :
DML (DATA MANIPULATION LANGUAGE)
DML (Data Manipulation Language) merupakan command yang berhubungan dengan proses manipulasi data yang ada di database, yang umumnya mencakup hampir sebagian besar statement MySQL.
Adapun perintah DML yang digunakan pada MySQL ialah :
SELECT
– untuk mengambil atau menampilkan data dari tabel.
INSERT
– untuk menyimpan data ke dalam tabel.
UPDATE
– untuk mengubah data dalam tabel.
DELETE
– untuk menghapus data dari tabel.
INSERT
Memasukkan data dalam database MySQL dengan perintah INSERT
. Syarat untuk memasukkan data adalah telah terciptanya tabel pada sebuah database.
Sintaks :
INSERT INTO [nama_tabel] VALUES ('isi_kolom1', 'isi_kolom2', 'isi_kolom3');
Contoh kasus :
Kita ingin menambahkan kategori baru pada list diatas, yakni dengan nama "Drink" dengan deskripsi "Healthy Drink"
INSERT INTO categories VALUES ('9', 'Drink', 'Healthy Drink');
Hasil :
UPDATE
Update data adalah sebuah proses edit data lama menjadi data yang lebih baru.
Sintaks :
UPDATE [nama_tabel] SET [kolom_1] = 'data_baru', [kolom_2] ='data_baru' WHERE
[kondisi];
Contoh kasus :
Kita ingin merubah kategori nomor 9 menjadi bahasa Indonesia baik CategoryName nya maupun Description nya
UPDATE categories SET CategoryName = 'Minuman', Description = 'Minuman Kesehatan' WHERE CategoryID='9';
Hasil :
DELETE
Untuk menghapus data, MySQL memiliki query bernama DELETE
. Penggunaannya diikuti dengan nama data yang akan dihapus.
Sintaks untuk menghapus seluruh data pada suatu tabel (HATI-HATI) :
DELETE FROM [nama_tabel];
Sintaks untuk menghapus data berdasarkan kondisi tertentu :
DELETE FROM [nama_tabel] WHERE [kondisi];
Contoh kasus :
Kita ingin menghapus kategori yang sebelumnya kita tambahkan dan ubah pada praktikum diatas.
DELETE FROM categories WHERE CategoryID ='9';
Hasil :
Klik "OK" jika ada notifikasi popup seperti ini, maka hasilnya :
SOAL TUGAS
Mekanisme tugas : Kerjakan dan setiap kodingan serta step by step sebelum & sesudah harap di screenshot dan taruh di word dan tunjukkan kepada Aslab saat penilaian. Lupa screenshot atau tidak dapat menunjukkan jawaban nomor soal tertentu dinilai belum mengerjakan pada nomor tersebut.
Persiapan : Buatlah database beserta isinya seperti gambar dibawah ini :
Lakukan :
- Tampilkan list dengan klausa WHERE IN antara Surabaya dan Mojokerto
- Tampilkan keseluruhan kolom berdasarkan nilai IPK dari terbesar ke terkecil kemudian diurutkan berdasarkan jenis kelamin L terlebih dahulu.
- Kerjakan melalui console! :
- Tambahkan data dirimu dengan melanjutkan urutan nim sesuai di list diatas, nama sesuai namamu sendiri, domisili sesuai dengan domisilimu sendiri, dan jenis kelaminnya. IPK silahkan dirandom.
- Ubah data diri kalian pada kolom domisili menjadi "Surabaya"