Tujuan:
1. Mengetahui dan
Mengenal Bahasa SQL beserta pembagiannya
2. Menggunakan Bahasa
SQL
3. Mengenal dan
Menggunakan Sub Bahasa DDL (Data Definition Language)
Mengelola Database
Sebelum kita membuat suatu tabel yang
digunakan untuk menyimpan data, maka harus terlebih dahulu dibuat database yang
merupakan kumpulan atau berisi tabel-tabel yang saling berhubungan dengan
menggunakan kunci-kunci yang ditentukan. Tapi bagaimana caranya memerintahkan
mysql untuk membuat database, tabel, dan lainnya yang kita perlukan.
Untuk itu kita perlu untuk mempelajari bahasa
gaul yang akan digunakan untuk berkomunikasi dengan MySQL. Bahasa ini disebut
dengan SQL (Structured Query Language) dan orang sering mengakronimnya dengan
“sequel”. SQL merupakan bahasa standar untuk pengolahan database. Ini berarti
bahwa DBMS yang lain juga mengenal bahasa gaul ini. Walau ada beberapa istilah
yang di salah satu DBMS tidak dikenal, tapi dikenal di DBMS yang lain.
Di dalam bahasa SQL, perintah dibedakan
menjadi 3 sub bahasa:
a. DDL (Data Definition Language)
b. DML (Data Manipulation Language)
c. DCL (Data Control Language)
Data Definition Language
Kelompok perintah ini bisa digunakan untuk
melakukan pendefinisian database dan pendefinisian tabel. Sehingga dengan
menggunakan perintah-perintah ini, kita bisa memerintahkan untuk membuat
database, membuat tabel, mengubah strukturnya, menghapus tabel, membuat index
tabel dan lain-lain yang berhubungan dengan pendefinisian database dan tabel.
Membuat Database
Untuk mengetahui atau melihat database yang
sudah ada, bisa digunakan perintah:
mysql> show
databases;
+----------+
| Database |
+----------+
| mysql |
| test |
+----------+
Dalam pembuatan database perlu
perhatikan penulisan nama database tidak
boleh menggunakan spasi dan karakter non standar. Bentuk penulisan perintah
untuk membuat database baru adalah create
database <nama_database>;
mysql>
create database perpustakaan;
Untuk memastikan bahwa database yang kita
buat sudah jadi, perintahkan show databases, sehingga semua database yang ada di server dan bisa diakse oleh user
akan ditampilkan.
mysql> show
databases;
+--------------+
|
Database |
+--------------+
|
myperpus |
| mysql |
| perpustakaan
|
| test |
+--------------+
Membuat Tabel
Selanjutnya untuk memulai membuat tabel di
dalam database perpustakaan, maka kita harus mengaktifkan terlebih dulu
database perpustakaan dengan menggunakan perintah use <nama_database>.
mysql> use
perpustakaan;
Setelah database aktif, kita baru bisa
memulai untuk membuat tabel yang kita perlukan. Pada database perpustakaan,
akan disimpan data-data tentang buku, judul buku, kelompok buku, pengarang, dan
penerbitnya. Selain itu juga untuk menyimpan data anggota beserta transaksi
yang dilakukan.
Pertama kali, kita akan membuat tabel buku yang
fungsinya untuk menyimpan data tentang buku.
mysql>
create table buku (
-> id_buku bigint(5) NOT NULL
auto_increment primary key,
-> index_buku varchar(15) NOT NULL
default '',
-> no_urut tinyint(3) default 0,
-> referensi tinyint(1)) type=myISAM;
Untuk membuktikan
bahwa kita berhasil, maka tabel yang ada database bisa kita tampilkan dengan
cara:
mysql> show
tables;
+------------------------+
|
Tables_in_perpustakaan |
+------------------------+
| buku |
+------------------------+
Pada hasil perintah
diatas ditampilkan, bahwa tabel yang sudah ada di database perpustakaan adalah
buku. Untuk menampilkan struktur dari tabel buku, perintahkan:
mysql>
describe buku;
+------------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+-------------+------+-----+---------+----------------+
| id_buku | bigint(5) |
| PRI | NULL | auto_increment |
| index_buku |
varchar(15) | | |
| |
| no_urut | tinyint(3) | YES
| | 0 | |
|
referensi | tinyint(1) | YES
| | NULL | |
+------------+-------------+------+-----+---------+----------------+
id_buku : menyimpan no_id
tidap buku walaupun judulnya sama, sifatnya unik. Dan semua field yang lain
bergantung hanya kepada id_buku. Karena itu field ini dijadikan primary key.
index_buku : digunakan untuk
menyimpan indeks setiap judul buku yang tiap judul bukunya tersimpan di dalam
tabel judul_buku yang akan kita buat berikutnya.
no_urut : digunakan untuk
menyimpan no_urut buku no_urut buku untuk judul yang sama.
referensi : digunakan untuk
mengetahui apakah buku boleh dipinjam/dibawa keluar atau tidak, jika boleh maka
nilainya 0 jika tidak maka nilainya 1. Seperti ini apabila tiap judul buku ada
yang boleh dibawa keluar ada yang tidak. Seandainya setiap judul buku yang sama
memiliki kondisi referensi yang sama, maka field ini dimasukkan kedalam tabel
judul_buku.
Berikutnya kita akan
membuat tabel judul_buku.
mysql>
create table judul_buku (
-> index_buku varchar(10) NOT NULL
primary key,
-> judul varchar(90),
-> kd_pengarang varchar(5),
-> kd_kelompok smallint(3),
-> edisi tinyint(2),
-> thn_terbit int(4))type=myISAM;
index_buku : buku dengan judul,
pengarang, penerbit, dan edisi yang sama akan memiliki index yang sama.
judul : judul buku.
kd_pengarang : kode pengarang
yang nama pengarangnya ada di tabel pengarang.
kd_kelompok : kode kelompok isi
buku sesuai ilmu, yang domainnya dari tabel kelompok.
edisi : cetakan ke berapa
untuk judul, penerbit, dan pengarang yang sama.
thn_terbit : tahun terbit buku.
untuk tabel-tabel
yang selanjutnya, coba buatlah sendiri dengan struktur sebagai berikut:
bonus: untuk mempermudah
pengeditan perintah sql, kita bisa menuliskannya pada salah satu text editor,
misalnya kwrite. Setelah disimpan, kemudian kita bisa menjalankannya dengan
perintah source <[[/]nama_dir/]nama_file>
Tabel Kelompok
+-------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------+-------------+------+-----+---------+-------+
| kd_kelompok
| smallint(3) | | PRI | 0 |
|
|
kelompok | varchar(20) | |
| | |
+-------------+-------------+------+-----+---------+-------+
Tabel Penerbit
+-------------+-------------+------+-----+---------+-------+
| Field |
Type | Null | Key | Default |
Extra |
+-------------+-------------+------+-----+---------+-------+
| id_penerbit | varchar(5)
| | PRI | |
|
| penerbit |
varchar(20) | YES | | NULL
| |
| kota | varchar(20) | YES | |
NULL | |
+-------------+-------------+------+-----+---------+-------+
Tabel Pengarang
+--------------+-------------+------+-----+---------+-------+
| Field |
Type | Null | Key | Default |
Extra |
+--------------+-------------+------+-----+---------+-------+
| id_pengarang | varchar(5)
| | PRI | |
|
| nama |
varchar(30) | | |
| |
+--------------+-------------+------+-----+---------+-------+
Tabel Anggota
+---------------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------------------+-------------+------+-----+---------+-------+
|
kd_anggota | varchar(7) | YES
| | NULL |
|
|
nama_anggota | varchar(50) |
YES |
| NULL | |
|
tgllahir | date | YES
| | NULL |
|
| jklmn | tinyint(1) | YES
| | NULL |
|
| alamat | varchar(50) | YES | |
NULL | |
| no_hp | varchar(12) | YES | |
NULL | |
| no_telp | varchar(15) | YES | |
NULL | |
|
tmp_lahir | varchar(20) |
YES |
| NULL | |
|
Sekolah_Universitas | varchar(30) |
| | |
|
+---------------------+-------------+------+-----+---------+-------+
Tabel Peminjam
+-------------+------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------+------------+------+-----+---------+-------+
|
id_anggota | varchar(7) | |
| | |
| id_buku | varchar(5) | |
| | |
|
tgl_pinjam | date | YES
| | NULL |
|
| tgl_kembali
| date | YES | |
NULL | |
+-------------+------------+------+-----+---------+-------+
Merubah dan
Memodifikasi Tabel
Terkadang ketika
kita, sedang membuat tabel, ternyata ada nama field yang kurang, atau
nama_fieldnya susah dipahami, atau bisa juga type data serta ukurannya tidak/
kurang sesuai. Sekarang coba kita perhatikan tabel yang sudah kita buat
sebelumnya.
Pada tabel buku
terdapat field id_buku dengan type bigint ukurannya 5, sedangkan pada tabel
peminjam id_buku typenya varchar ukurannya 5. Ini tidak sama, bisa-bisa timbul
kekacauan ini (emangnya apaan, kok sampai terjadi kekacauan segala)
Maksudnya ini harus disamakan supaya kedua tabel bisa dihubungkan. Sekarang,
id_buku pada tabel peminjam diubah menjadi bertype bigint(5), caranya:
mysql>
alter table peminjam modify id_buku bigint(5);
Query OK, 0
rows affected (0.00 sec)
Records:
0 Duplicates: 0 Warnings: 0
Coba sekarang
ditampilkan lagi struktur dari tabel peminjam, adakah perubahan? (harus
dong... kita harus selalu berubah untuk menuju yang lebih baik...)
+-------------+------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------+------------+------+-----+---------+-------+
|
id_anggota | varchar(7) | |
| | |
| id_buku | bigint(5) | YES
| | NULL |
|
|
tgl_pinjam | date | YES
| | NULL |
|
| tgl_kembali
| date | YES | |
NULL | |
+-------------+------------+------+-----+---------+-------+
Sekarang kita
perhatikan field index_buku pada tabel buku dan pada tabel judul_buku,
ukurannya juga berbeda, nah sekarang tugas Anda/Antum semuanya adalah
menyamakan dengan ukuran 15 pada tabel judul_buku. Sudah tahu caranya? (masa gitu aja gak
tahu, sich)
Merubah Nama Field
Pada tabel buku
terdapat field id_buku dan index_buku, kalau melihat namanya, maka seolah-olah
fungsinya sama, kenapa ada dua field id(index) buku pada satu tabel. Padahal
fungsi kedua field tersebut berbeda. Field index_buku fungsinya untuk menyimpan
indeks judul buku sedangkan field id_buku untuk menyimpan indeks untuk setiap
buku yang domainnya ada di tabel judul_buku. Judul buku yang sama
memiliki index_buku yang sama tapi id_bukunya berbeda. Sebetulnya namanya tetap
seperti itu juga tidak ada masalah, tapi akan membingungkan. (bagi orang-orang yang bingung... :) )
Untuk lebih
mempermudah pemahaman hanya dengan melihat namanya saja, maka sebaiknya namanya
diganti dengan id_judul. Caranya?
mysql>
alter table buku change index_buku id_judul varchar(15);
Query OK, 0
rows affected (0.00 sec)
Records:
0 Duplicates: 0 Warnings: 0
Sudah tahu tugas
berikutnya? Nah... Ubahlah field index_buku yang ada di tabel judul_buku dengan
id_judul. Ubah juga field yang berawalan dengan kd dengan id, misalnya
kd_penerbit menjadi id_penerbit. Ini hanya untuk melatih cara merubah nama
field serta untuk menyeragamkan penamaan saja. Selain itu, ubah juga field
sekolah_universitas menjadi sekolah saja. Untuk
apa panjang-panjang, universitas juga sekolah kan? Apakah
SD itu universitas? Kenapa nggak
sekolah_sma, atau sekolah_lpk, atau sekolah_stmik saja, kenapa
sekolah_universitas? he... he... he... :)
Menambah Field
Kalau kita perhatikan
tabel penerbit, dengan tabel manakah tabel ini berhubungan? Kalau tabel
pengarang berhubungan dengan tabel judul_buku menggunakan field kd_pengarang /
id_pengarang (jika sudah diganti). Sehingga untuk mengetahui nama pengarang
dari suatu judul buku tinggal menghubungkan tabel judul_buku dengan pengarang
menggunakan field kunci id_pengarang. Harusnya tabel penerbit diperlukan juga
oleh tabel judul_buku untuk mengetahui nama penerbit dari suatu judul buku.
Tapi jangan khawatir, SQL punya juga bahasa yang digunakan untuk
menambah/menyisipkan field kedalam suatu tabel.
mysql>
alter table judul_buku add id_penerbit varchar(5) after judul;
Perintah di atas
digunakan untuk menyisipkan field id_penerbit ke dalam tabel judul_buku
diletakkan setelah field judul. Untuk membuktikan, tampilkan saja struktur
tabel judul_buku.
Menghapus Field
Di dalam tabel anggota, kita bisa melihat di sana terdapat field no_hp
dan no_telp. Perlukah kedua-duanya disimpan? Tidak semua anggota punya no. hp,
dan tidak pula semuanya memiliki no. telpon. (macam mana
pula ini, kok disimpan semuanya? ini pemborosan
namanya. instruksi presiden kan
disuruh hemat energi. Lho... kok sampai bbm?) Untuk menghapus field no_hp gunakan
perintah berikut:
mysql>
alter table anggota drop no_hp;
Query OK, 0
rows affected (0.00 sec)
Records:
0 Duplicates: 0 Warnings: 0
Merubah Nama Tabel
Tabel peminjam
berfungsi untuk menyimpan data anggota yang melakukan peminjaman dan
pengembalian buku. Mungkin akan lebih jelasnya kalau nama peminjam diganti
dengan transaksi. Untuk melakukannya gunakan perintah :
mysql>
alter table peminjam rename transaksi;
Menghapus Table dan
Database
Terkadang kita sudah
membuat suatu tabel atau database, tapi ternyata tabel tersebut sebetulnya
tidak diperlukan. Mungkin karena pembatasan masalah, ataupun mungkin karena
diketahui setelahnya bahwa tabel tersebut tidaklah diperlukan, dan hanya
memboroskan tempat penyimpanan saja, atau dengan tabel tersebut menjadikan
tidak efektif dan efisien. Atau bisa saja tabel tersebut diciptakan hanya untuk
keperluan sementara saja(temporari), maka kita harus atau perlu untuk menghapus
tabel tersebut. Begitu juga dengan database yang sudah kita buat ,ternyata
database tersebut sudah kita perlukan lagi. Perintah yang digunakan untuk
menghapus adalah DROP.
Menghapus Tabel
struktur perintah:
drop table <nama_table>
contoh:
mysql> drop
table pengarang;
Menghapus Database
struktur perintah:
drop database <nama_table>
contoh:
mysql> drop
database pengarang;
Tampilkan
semua tabel yang ada di dalam database, atau tampilkan semua database yang ada
di dalam server, masih adakah tabel atau database yang diberlakukan padanya
perintah drop? Jika perintah yang dilakukan sesuai dengan aturannya (syariat) tanpa mengurangi
ataupun menambahnya (dengan kebid'ahan-kebid'ahan), pasti akan
mendapatkan hasilnya sesuai yang sudah disebutkan (dijanjikan,
kecuali jika ada kesalahan penulisan maka diluar tanggung jawab percetakan.
lho...?).





15.43
Miftahur Rohman


0 komentar:
Posting Komentar