Pengetahuan dasar SQL dengan MySQL Database (Bag 1)

19 03 2012

Sebagai tambahan referensi pengetahuan tentang MySQL Database khususnya lebih spesifik tentang perintah – perintah SQL dalam MySQL berikut akan saya jelaskan secara terurut apa saja yang sebaiknya diketahui untuk mengetahui lebih jauh tentang perintah SQL dalam MySQL, dengan asumsi setiap user yang membaca tulisan ini minimal sudah dapat mengakses database baik menggunakan console, phpmyadmin atau editor tools lain, maka pembahasan hanya akan mencakup kepada perintah “create database”, “create table”, “insert”, “update”, “delete”, “select” dan “alter”, adapun fungsi lain yang akan dibahas “in”, “not in”, “order by”, “group by”, “sum”, “count” beserta fungsi join flat, left join dan right join. Pembahasan pertama yaitu kita akan membuat database sim_mahasiswa dengan perintah seperti berikut:

CREATE DATABASE `sim_mahasiswa`;

Kemudian dilanjut dengan membuat table mahasiswa dengan field “id”, “nim”, “nama”, “alamat”, “jkelamin” diteruskan dengan table mata_kuliah dengan field “id”, “kode”, “nama”, “bobot” kemudian dibuat juga table “nilai_siswa” dengan field “id”, “mahasiswa_id”, “matkul_id”, “nilai_angka”, “nilai_huruf”, secara berturut perintah membuat table tersebut dengan terlebih dahulu mengaktifkan dahulu perintah sebagai berikut:

USE `sim_mahasiswa`;
CREATE TABLE `mahasiswa` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `nim` char(10) DEFAULT NULL,
  `nama` char(50) DEFAULT NULL,
  `alamat` char(100) DEFAULT NULL,
  `jkelamin` char(1) DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `nim` (`nim`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
CREATE TABLE `mata_kuliah` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `kode` char(10) DEFAULT NULL,
  `nama` char(40) DEFAULT NULL,
  `bobot` int(1) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
CREATE TABLE `nilai_siswa` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `mahasiswa_id` int(11) DEFAULT NULL,
  `matkul_id` int(11) DEFAULT NULL,
  `nilai_angka` int(1) DEFAULT NULL,
  `nilai_huruf` char(1) DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `mahasiswa_id` (`mahasiswa_id`),
  KEY `matkul_id` (`matkul_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

Dari ketiga perintah SQL “create table” diatas berikut adalah penjelasan mengenai atribut – atribut perintah yang mengikuti perintah utama “create table” tersebut:

  • Not Null adalah properti field yang memberikan syarat terhadap field tersebut untuk tidak boleh bernilai null

  • Auto_increment adalah properti field khusus untuk Primary Key yang menyebabkan field tersebut mempunyai kemampuan sequence key yang bertambah secara otomatis terus menerus seiring bertambah banyak jumlah data yang disimpan dalam table.

  • Default Null adalah properti field yang memberikan syarat terhadap field tersebut boleh bernilai null

  • Primary Key adalah field yang secara khusus mengidentifikasi setiap baris record yang terdapat dalam sebuah table.

  • Key adalah field yang menjadi acuan pencarian data dalam sebuah table database, dimana field tersebut juga disimpan dalam index database sehingga mempermudah pencarian.

  • Engine adalah properti table yang mendefinisikan tipe storage yang digunakan untuk menyimpan data masing – masing table (Tentang hal ini akan diulas di artikel lain)

  • Default Charset adalah tipe character yang di konfigurasikan terhadap table tersebut.

Disaat tiga table tersebut sudah jadi dan siap untuk menyimpan data, maka perintah untuk menyimpan data ke dalam table tersebut adalah sebagai berikut:

INSERT INTO `mahasiswa` (`nim`,`nama`,`alamat`,`jkelamin`) VALUES ('361061010', 'Asep Juhana', 'Jl. Maskumambang No. 29', 'L');
INSERT INTO `mahasiswa` (`nim`,`nama`,`alamat`,`jkelamin`) VALUES ('361061011', 'Sergio', 'Jl. Dago atas', 'L');
INSERT INTO `mahasiswa` (`nim`,`nama`,`alamat`,`jkelamin`) VALUES ('361061012', 'Arief Ginanjar', 'Jl. Rasamala No. 18', 'L');

Kemudian diikuti dengan query insert data mata kuliah sebagai berikut:

INSERT INTO `mata_kuliah` (`kode`,`nama`,`bobot`) VALUES ('KD001', 'B. Inggris', 2);
INSERT INTO `mata_kuliah` (`kode`,`nama`,`bobot`) VALUES ('KB023', 'Sistem Pakar', 2);
INSERT INTO `mata_kuliah` (`kode`,`nama`,`bobot`) VALUES ('KB012', 'Etika dan Profesi IT', 2);

Dengan asumsi seluruh mahasiswa yang ada dalam table mahasiswa mengikuti seluruh mata kuliah yang tersedia dalam table mata_kuliah, cukup menggunakan 1 query maka seluruh data dalam table mahasiswa dan mata_kuliah dapat terintegrasi dalam table nilai_siswa, dengan query sebagai berikut:

INSERT INTO `nilai_siswa` (`mahasiswa_id`, `matkul_id`) SELECT a.id, b.id FROM `mahasiswa` a, `mata_kuliah` b;

Jika kita ingin melihat data dalam masing – masing table maka dapat menggunakan perintah query seperti berikut, Untuk query table mahasiswa akan menghasilkan tampilan seperti berikut:

SELECT `id`, `nim`, `nama`, `alamat`, `jkelamin` FROM `mahasiswa`;
+----+-----------+----------------+-------------------------+----------+
| id | nim       | nama           | alamat                  | jkelamin |
+----+-----------+----------------+-------------------------+----------+
|  1 | 361061010 | Asep Juhana    | Jl. Maskumambang No. 29 | L        |
|  2 | 361061011 | Sergio         | Jl. Dago atas           | L        |
|  3 | 361061012 | Arief Ginanjar | Jl. Rasamala No. 18     | L        |
+----+-----------+----------------+-------------------------+----------+

Untuk query table mata_kuliah akan menghasilkan tampilan seperti berikut:

SELECT `id`, `kode`, `nama`, `bobot` FROM `mata_kuliah`;

+----+-------+----------------------+-------+
| id | kode  | nama                 | bobot |
+----+-------+----------------------+-------+
|  1 | KD001 | B. Inggris           |     2 |
|  2 | KB023 | Sistem Pakar         |     2 |
|  3 | KB012 | Etika dan Profesi IT |     2 |
+----+-------+----------------------+-------+

Untuk query table nilai_siswa akan menghasilkan tampilan seperti berikut:

SELECT `id`, `mahasiswa_id`, `matkul_id`, `nilai_angka`, `nilai_huruf` FROM `nilai_siswa`;
+----+--------------+-----------+-------------+-------------+
| id | mahasiswa_id | matkul_id | nilai_angka | nilai_huruf |
+----+--------------+-----------+-------------+-------------+
|  1 |            1 |         1 |        NULL | NULL        |
|  2 |            2 |         1 |        NULL | NULL        |
|  3 |            3 |         1 |        NULL | NULL        |
|  4 |            1 |         2 |        NULL | NULL        |
|  5 |            2 |         2 |        NULL | NULL        |
|  6 |            3 |         2 |        NULL | NULL        |
|  7 |            1 |         3 |        NULL | NULL        |
|  8 |            2 |         3 |        NULL | NULL        |
|  9 |            3 |         3 |        NULL | NULL        |
+----+--------------+-----------+-------------+-------------+

Dari hasil query diatas terlihat data dari masing – masing table, kemudian apa yang akan dilakukan dengan data – data tersebut? Selanjutnya kita akan coba memanipulasi data – data tersebut dengan merubah isi masing – masing data tersebut dengan perintah update seperti berikut:

UPDATE `mahasiswa` SET `nama` = 'Sergio Montenegro' WHERE `nama` = 'Sergio';
UPDATE `mahasiswa` SET `nama` = 'Sergio Montenegro' WHERE `id` = '361061011';
UPDATE `mahasiswa` SET `nama` = 'Nirmala Jelita', `jkelamin`= 'P' WHERE `nama` = 'Sergio';
UPDATE `mata_kuliah` SET `bobot` = 3 WHERE `nama` = 'B. Inggris';
UPDATE `mata_kuliah` SET `bobot` = 3 WHERE `kode` = 'KD001';
UPDATE `mata_kuliah` SET `bobot` = 3 WHERE `id` = 1;
UPDATE `nilai_siswa` SET `nilai_angka` = 4, `nilai_huruf` = 'A';
UPDATE `nilai_siswa` SET `nilai_angka` = 3, `nilai_huruf` = 'B' WHERE `matkul_id` = 1;
UPDATE `nilai_siswa` SET `nilai_angka` = 2, `nilai_huruf` = 'C' WHERE `mahasiswa_id` = 2;

Cobalah beberapa contoh query diatas dan lihat hasil penggunaan perintah tersebut dengan query select. Selamat mencoba!

Advertisements

Actions

Information

3 responses

19 03 2012
Iwan

ok saya coba..

19 03 2012
gugum

Mantap.. terima kasih penjelasannya..

24 03 2012
Pengetahuan dasar SQL dengan MySQL Database (Bag 2) « A g i e n ‘ s B l o g

[…] tulisan terdahulu, sekarang kita akan membahas lebih jauh lagi mengenai perintah – perintah dasar SQL dalam […]

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s




%d bloggers like this: