praktikum mysql 2

5

Click here to load reader

Upload: ti2nt

Post on 18-Jun-2015

310 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Praktikum MySql 2

Praktikum Basis Data (MySQL) II

I. Create user & grant privilege

- Masuk ke prompt mysql dengan user rootprompt> mysql -uroot

- Buat user baru, pakai nama panggilan anda dan pilih sendiri password andamysql> create user nama_anda identified by 'password_anda';

- Keluar dari mysqlmysql> \q

- Masuk lagi sebagai user baru tersebutprompt> mysql -unama_anda -p

- Cobalah membuat suatu database dengan nama database2mysql> create database database2;

Apa yang terjadi? Tuliskan hasil dari perintah yang anda ketikkan.

- Keluar dari mysql dan masuk lagi sebagai user rootmysql> \qprompt> mysql -uroot

- Tambahkan privilege all (hak untuk semua fungsi) pada user yang baru anda buatmysql> grant all on *.* to nama_anda;

- Keluar dari mysql dan masuk lagi sebagai user baru yang anda buat, kemudian coba lagi membuat database bernama database2. Apa hasilnya? Jelaskan kenapa berbeda dengan percobaan pertama.

1 Dari 5 Praktikum Basis Data MySql 2

Page 2: Praktikum MySql 2

II. Create table, trigger & procedure

- Gunakan database2 yang anda buat (dengan menggunakan user baru tersebut), kemudian buat dua tabel baru dengan spesifikasi di bawah ini:

Tabel LogData :Kolom Type Null Key Extra

idlog int no primary auto_increment

tanggal datetime yes

isilog varchar(200) yes

Perintah :

mysql> create table logdata(idlog int not null auto_increment, tanggal datetime, isilog varchar(200), primary key(idlog));

Tabel Kota:Kolom Type Null Key Extra

idkota int no primary auto_increment

namakota varchar(50) yes

propinsi varchar(50) yes

Perintah :

mysql> create table kota(idkota int not null auto_increment, namakota varchar(50), propinsi varchar(50), primary key(idkota)) type=innodb;

Tabel Mahasiswa:Kolom Type Null Key Extra

npm char(9) no primary

nama varchar(50) yes

idkota int yes foreign

Perintah :

mysql> create table mahasiswa(npm char(9) not null, nama varchar(50), idkota int, index(nama), primary key(npm), foreign key(idkota) references kota(idkota)) type=innodb;

Periksa hasil dari pembuatan tiga tabel di atas. Pastikan sama dengan spesifikasi di atas.

2 Dari 5 Praktikum Basis Data MySql 2

Page 3: Praktikum MySql 2

Catatan : - Selain nama kolom & type kolom, kita bisa menuliskan ketentuan lain untuk sebuah kolom pada

saat membuat tabel. Not null berarti kolom tersebut tidak boleh bernilai null (harus ada isinya). Sedangkan auto_increment berarti bahwa kolom tersebut akan terisi dengan sendirinya dengan angka yang selalu naik satu setiap ada baris/record ditambahkan. Default nilai pertama adalah 1 (satu).

- Type=innodb diperlukan, karena pada mysql foreign key hanya dapat di-set untuk tabel dengan type innodb (type tabel default adalah myisam).

- Pembuatan index dapat disatukan pada saat kita membuat tabel (dalam kasus ini, untuk tabel mahasiswa kita buat index pada kolom nama). Cara penulisan lain (jika indeks belum dibuat pada saat membuat tabel) adalah dengan perintah:

mysql> create index nama_index on nama_tabel(nama_kolom);

- Coba buat indeks pada tabel Kota untuk kolom namakota. Bandingkan deskripsi tabel sebelum membuat indeks dengan setelah membuat indeks. Tuliskan perintah membuat indeks tersebut.

- buat trigger yang akan menulis log ke tabel LogData setiap ada perubahan pada tabel Mahasiswa

Trigger untuk insert data ke tabel mahasiswa:

mysql> create trigger mhsinsert before insert on mahasiswa - > for each row - > insert into logdata(tanggal, isilog) values(now(),'Insert Data');

Trigger untuk update data ke tabel mahasiswa:

mysql> create trigger mhsupdate before update on mahasiswa - > for each row - > insert into logdata(tanggal, isilog) values(now(),'Update Data');

Trigger untuk hapus data dari tabel mahasiswa:

mysql> create trigger mhsdelete before delete on mahasiswa - > for each row - > insert into logdata(tanggal, isilog) values(now(),'Hapus Data');

3 Dari 5 Praktikum Basis Data MySql 2

Page 4: Praktikum MySql 2

III.Insert data

- Lihat isi tabel logdata dengan perintah:

mysql> select * from logdata;

- Apa isi dari tabel logdata tersebut?

- Masukkan data npm dan nama anda ke tabel Mahasiswa, berikan nilai 1 untuk kolom idkota.

mysql> insert into mahasiswa(npm,nama,idkota) values('npm_anda','nama_anda', 1);

- Apa yang terjadi? Tuliskan pesan hasil dari perintah yang anda tuliskan di atas.

- Masukkan nama kota dan propinsi asal anda ke tabel kota. Nilai idkota tidak perlu diisi karena sebagai auto_increment, dia akan mengisi sendiri nilainya.

mysql> insert into kota(namakota,propinsi) values('nama_kota','propinsi');

- Lihat hasilnya dengan menuliskan perintah:

mysql> select * from kota;

- Kemudian ulangi lagi perintah untuk memasukkan data ke tabel Mahasiswa, hanya kali ini gunakan nilai idkota pada tabel kota yang baru anda masukkan sebagai nilai idkota pada tabel Mahasiswa. Apa yang terjadi? Jelaskan kenapa perintah kedua berhasil, sedangkan perintah pertama gagal.

- Lihat kembali isi dari tabel logdata. Apakah sekarang sudah terisi?

4 Dari 5 Praktikum Basis Data MySql 2

Page 5: Praktikum MySql 2

- Coba ubah data Mahasiswa yang telah anda masukkan dengan cara:

mysql> update mahasiswa set nama='BADU' where npm='npm_anda';

- Pastikan data telah berubah dengan melihat isi tabel mahasiswa (gunakan perintah select.....). Jika data telah berubah, coba lihat lagi isi dari tabel logdata. Apakah ada tambahan baris di sana?

- Coba tambahkan satu baris data lagi pada tabel mahasiswa (data teman anda), kemudian hapus data tersebut (dengan perintah delete from....). Setelah itu lihat lagi isi dari tabel logdata. Jelaskan kenapa tabel logdata terisi tanpa anda melakukan perintah insert pada tabel tersebut.

IV. Kesimpulan

- Tuliskan kesimpulan anda dari praktikum hari ini.

5 Dari 5 Praktikum Basis Data MySql 2