Blogger news

News Update :
Home » , » Dasar SQL dengan MySQL Database

Dasar SQL dengan MySQL Database


Dasar SQL dan perintah SQL.
Dasar SQL dengan MySQL Database. 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!
http://gienvision.wordpress.com/2012/03/19/pengetahuan-dasar-sql-dengan-mysql-database-bag-1/
Share this article :

Posting Komentar

Blogger templates

 
Company Info | Contact Us | Privacy policy | Term of use | Widget | Advertise with Us | Site map
Copyright © 2011. note . All Rights Reserved.
Design Template by panjz-online | Support by creating website | Powered by Blogger