Kamis, 08 Januari 2009

Belajar SQL dengan MySQL

Belajar SQL dengan MySQL

Create Database

Diasumsikan anda telah login sebagai user root MySQL,
Jalankan perintah berikut untuk create database KLINIK

mysql> create database klinik;
Query OK, 1 row affected (0.00 sec)
Menggunakan Database

Jalankan perintah berikut untuk menggunakan database KLINIK

mysql> use klinik
Database changed
Create Tabel

Dalam latihan ini akan membuat tabel Spesialis dan Dokter seperti gambar berikut ini:



Gunakan perintah \e untuk membuka editor Vi
Berikut perintah SQL untuk membuat tabel Spesialis

CREATE TABLE spesialis
( id integer not null auto_increment,
nama varchar(32) not null,
primary key (id)
);
Jalankan perintah dengan menekan tombol Esc dilanjutkan dengan perintah :wq

mysql> \e
-> ;
Query OK, 0 rows affected (0.06 sec)
Berikut perintah SQL membuat tabel Dokter

CREATE TABLE dokter
(
id integer not null auto_increment primary key,
nama varchar(64) not null,
gender varchar(20),
alamat varchar(255),
telp varchar(20),
id_spesialis integer
);
Melihat Tabel-Tabel Database

mysql> show tables;
+------------------+
| Tables_in_klinik |
+------------------+
| dokter |
| spesialis |
+------------------+
2 rows in set (0.00 sec)
Melihat Schema Tabel

mysql> describe dokter;
+--------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------+--------------+------+-----+---------+----------------+
| id | int(11) | | PRI | NULL | auto_increment |
| nama | varchar(64) | | | | |
| gender | varchar(20) | YES | | NULL | |
| alamat | varchar(255) | YES | | NULL | |
| telp | varchar(20) | YES | | NULL | |
| id_spesialis | int(11) | YES | | NULL | |
+--------------+--------------+------+-----+---------+----------------+
6 rows in set (0.00 sec)
Query INSERT

Berikut perintah SQL untuk menambahkan record ke dalam tabel Spesialis

mysql> insert into spesialis (nama) values ('Penyakit Dalam');
Query OK, 1 row affected (0.00 sec)
Berikut perintah SQL untuk menambahkan record ke dalam tabel Dokter

mysql> insert into dokter (nama,gender,alamat,telp,id_spesialis)
-> values ('Rosalie Naurah Husna','Jl. Rawajati Timur II No.21',
-> 'Wanita','021-7943333',4);
Perhatikan pada tabel Spesialis dan Dokter, Field Id tidak ada pada SQL INSERT, karena Field id adalah Field dengan tipe auto_increment / id akan di generate langsung oleh MySQL

Query SELECT

Menampilkan seluruh record tabel spesialis

mysql> select * from spesialis;
+----+----------------+
| id | nama |
+----+----------------+
| 1 | Umum |
| 2 | Jantung |
| 3 | Penyakit Dalam |
| 4 | Anak |
| 5 | Genekologi |
+----+----------------+
5 rows in set (0.00 sec)
Menampilkan Record untuk Field id,nama,gender,telp pada tabel Dokter

mysql> select id,nama,gender,telp from dokter;
+----+-------------------------+--------+-------------+
| id | nama | gender | telp |
+----+-------------------------+--------+-------------+
| 1 | Rosalie Naurah Husna | Wanita | 021-7943333 |
| 2 | Defghi Arsy M | Pria | 021-7891111 |
| 3 | Iffa Arsy Cahya Nisrina | Wanita | 021-7891111 |
+----+-------------------------+--------+-------------+
3 rows in set (0.01 sec)
Query SELECT lebih dari 1 Tabel

Menampilkan seluruh record dokter dan spesialisasinya

mysql> select dokter.id,dokter.nama,spesialis.nama from dokter, spesialis
-> where dokter.id_spesialis=spesialis.id;
+----+-------------------------+---------+
| id | nama | nama |
+----+-------------------------+---------+
| 1 | Rosalie Naurah Husna | Anak |
| 2 | Defghi Arsy M | Jantung |
| 3 | Iffa Arsy Cahya Nisrina | Umum |
+----+-------------------------+---------+
3 rows in set (0.00 sec)
Query UPDATE

Berikut perintah SQL untuk mengupdate record telpon dokter Defghi

mysql> update dokter set telp='021-7894444' where id=2;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0

mysql> select * from dokter where id=2;
+----+---------------+--------+---------------------------+-------------+--------------+
| id | nama | gender | alamat | telp | id_spesialis |
+----+---------------+--------+---------------------------+-------------+--------------+
| 2 | Defghi Arsy M | Pria | Kebagusan IV Pasar Minggu | 021-7894444 | 2 |
+----+---------------+--------+---------------------------+-------------+--------------+
1 row in set (0.00 sec)
Query DELETE

Berikut perintah SQL untuk menghapus record tabel spesialis untuk data spesialis Dokter Umum

mysql> delete from spesialis where id=1;
Query OK, 1 row affected (0.00 sec)

mysql> select * from spesialis;
+----+----------------+
| id | nama |
+----+----------------+
| 2 | Jantung |
| 3 | Penyakit Dalam |
| 4 | Anak |
| 5 | Genekologi |
+----+----------------+
4 rows in set (0.00 sec)
Perhatikan, seharusnya record pada tabel spesialis untuk id=1 tidaklah bisa dihapus, karena masih digunakan oleh tabel lain yaitu tabel dokter. MySQL (4.01) yang digunakan dalam latihan ini (MyISAM) masih belum support foreign key, menurut dokumentasi dari MySQL fitur foreign key dengan gunakan MyISAM baru akan di realisasikan pada MySQL 5.01. Namun demikian Anda bisa menggunakan fitur foreign key pada MySQL 4.01 dengan engine InnoDB.

Latihan SQL

Perhatikan Skema tabel berikut :


Buat Tabel kota dan Tabel Pasien sesuai skema Gambar diatas
Isi data tabel Kota dan tabel Pasien
Cobalah latihan untuk Edit data dan Hapus data

Tidak ada komentar:

Posting Komentar