MODUL MySQL



Modul Pemrograman Basis Data

|Membuat Database |cd \xampp\mysql\bin |

| |mysql -u root -p --prompt="[\u @\h] [\d]\nmysql> " |

|• Menampilkan database | |

|mysql> |show databases; | |

| | |

|• Membuat database |Setiap ada pjual diganti dengan mi.. |

|mysql> |create database pjual; |membuat database dengan nama pjual |

|mysql> |create database barang; |membuat database dengan nama barang |

|mysql> |create database xpjual; |membuat database dengan nama xpjual |

| | |

|• Menghapus database | |

|mysql> |drop database barang; |menghapus database dgn nama barang |

| | |

|• Memilih database | |

|mysql> |use pjual; |memilih database dengan nama pjual |

| | |

| | |

|Membuat Tabel | |

| | |

|• Menampilkan tabel | |

|mysql> |show tables; |pilih database pjual |

|mysql> |show tables from xpjual; |menampilkan tabel dari database xpjual |

| | |

|• Membuat tabel | |

|mysql> |create table detrans(no_fak varchar(3), ko_brg varchar(3), jlh_brg | |

|–> |int(3)); | |

| | | |

|mysql> |create table barang(kode varchar(3) not null primary key, nama | |

|–> |varchar(20), harga decimal(9,0), stok int(3)); | |

|–> | | |

| |create table pelanggan(kode varchar(3) not null primary key, nama | |

|mysql> |varchar(20), alamat varchar(30), telepon varchar(13)); | |

|–> | | |

|–> |create table transaksi(no_fak varchar(3) not null, tanggal date, | |

| |ko_plgn varchar(3), primary key(no_fak)); | |

|mysql> | | |

|–> |create table pdetrans(no_id int unsigned auto_increment not null, | |

|–> |nopel int, no_fak varchar(3), ko_brg varchar(3), jlh_brg int(3) | |

| |default 0, primary key(no_id), unique nopeluni(nopel), index | |

|mysql> |kobrgdx(ko_brg)); | |

|–> | | |

|–> | | |

|–> | | |

|–> | | |

| | |

|• Membuat tabel pada database non aktif | |

|mysql> |create table xpjual.detrans(no_fak varchar(3), ko_brg varchar(3), |xpjual = nama database |

|–> |jlh_brg int(3)); |xdetrans = nama tabel yang dibuat |

|–> | | |

| | |

| | |

|• Menampilkan struktur tabel | |

|mysql> |describe detrans; |detrans = nama tabel yang ditampilkan strukturnya |

Tampilan struktur tabel detrans

|Field |Type |Null |Key |Default |Extra |

|no_fak |varchar(3) |YES | |NULL | |

|ko_brg |varchar(3) |YES | |NULL | |

|jlh_brg |int(3) |YES | |NULL | |

3 rows in set (0.00 sec)

|mysql> |desc barang; | |

Tampilan struktur tabel barang

|Field |Type |Null |Key |Default |Extra |

|kode |varchar(3) | |PRI | | |

|nama |varchar(20) |YES | |NULL | |

|harga |decimal(9,0) |YES | |NULL | |

|stok |int(3) |YES | |NULL | |

4 rows in set (0.00 sec)

|mysql> |desc pelanggan; | |

Tampilan struktur tabel pelanggan

|Field |Type |Null |Key |Default |Extra |

|kode |varchar(3) | |PRI | | |

|nama |varchar(20) |YES | |NULL | |

|alamat |varchar(30) |YES | |NULL | |

|telepon |varchar(13) |YES | |NULL | |

4 rows in set (0.00 sec)

|mysql> |desc transaksi; | |

Tampilan struktur tabel transaksi

|Field |Type |Null |Key |Default |Extra |

|no_fak |varchar(3) | |PRI | | |

|tanggal |date |YES | |NULL | |

|ko_plgn |varchar(3) |YES | |NULL | |

3 rows in set (0.00 sec)

|• Mengcopy tabel | |

|mysql> |create table xbarang select * from barang; |barang = nama tabel yang dicopy |

|–> | |xbarang = nama tabel hasil copy |

| |create table xdetrans select * from detrans; | |

|mysql> | |detrans = nama tabel yang dicopy |

|–> |create table xtransaksi select * from transaksi; |xdetrans = nama tabel hasil copy |

| | | |

|mysql> | | |

|–> | | |

|• Mengcopy tabel ke database non aktif | |

|mysql> |create table xpjual.barang select * from barang; |barang = nama tabel yang dicopy |

|–> | |xbarang = nama tabel hasil copy |

| | |xpjual = nama database |

| | |

|• Mengcopy tabel dari database non aktif | |

|mysql> |create table pbarang select * from xpjual.barang; |xpjual = nama database |

|–> | |xbarang = nama tabel yang dicopy |

| | |pbarang = nama tabel hasil copy |

| | |

|•Merubah nama tabel | |

|mysql> |alter table xtransaksi rename jualbrg; |pbarang = nama tabel yang diganti namanya |

| | |jualbrg = nama tabel pengganti |

| | |

|•Menghapus tabel | |

|mysql> |drop table jualbrg; |jualbrg = nama tabel yang dihapus |

| | |

|•Menambah field (kolom) | |

|mysql> |alter table xbarang add jenis varchar(20); | |

| | | |

|mysql> |alter table xbarang add id varchar(5) not null after kode; | |

|–> | | |

| |alter table xdetrans add id_no int unsigned auto_increment not | |

|mysql> |null primary key first; | |

|–> | | |

|–> | | |

| | |

|•Merubah nama field (kolom) | |

|mysql> |alter table xbarang change jenis kategori varchar(20); | |

|–> | | |

| | |

|•Menghapus field (kolom) | |

|mysql> |alter table xbarang drop kategori; | |

| | |

|•Merubah tipe data | |

|mysql> |alter table xbarang modify harga int(8); | |

| | |

|•Merubah ukuran field (kolom) | |

|mysql> |alter table xbarang modify harga int(10); | |

| | |

|•Merubah NULL menjadi NOT NULL dan sebaliknya | |

|mysql> |alter table xbarang modify nama varchar(20) not null; |merubah field nama menjadi not null |

|–> |alter table xbarang modify nama varchar(20); | |

|mysql> | |merubah field nama menjadi null |

|–> | | |

| | |

|•Membuat Primary Key | |

|mysql> |alter table xbarang add primary key (kode); | |

|–> | | |

| | |

| | |

| | |

|•Menghapus Primary Key | |

|mysql> |alter table xbarang drop primary key; | |

|•Membuat Index | |

|mysql> |alter table xdetrans add index kobrg_ndx(ko_brg); | |

|–> |atau | |

|mysql> |create index kobrg_ndx on xdetrans(ko_brg); | |

|–> | | |

| | |

|•Menghapus Index | |

|mysql> |alter table xdetrans drop index kobrg_ndx; | |

|–> | | |

| | |

|•Membuat Unique | |

|mysql> |alter table xbarang add unique id_uni(id); |buat kode sebagai primary key |

|–> | | |

| | |

|•Menghapus Unique | |

|mysql> |alter table xbarang drop index id_uni; | |

| | |

|•Merubah Default | |

|mysql> |alter table xbarang alter nama set default 'KULKAS'; |field yang Not Null dan default tidak ada, bisa tidak diisi dan |

|–> |alter table xbarang alter harga set default 999; |field tersebut tetap kosong |

|mysql> | | |

|–> | | |

| | |

|•Menghapus Default | |

|mysql> |alter table xbarang alter nama drop default; | |

|–> | | |

| | |

| | |

|Mengisi Data / Menambah Data | |

|•Menampilkan isi tabel barang | |

|mysql> |select * from barang; |pilih database pjual |

| | |

|•Mengisi/menambah data ke tabel barang | |

|mysql> |insert into barang(kode,nama,harga,stok) | |

|–> |values('A11','VIDEO',500000,2); | |

| | | |

|mysql> |insert into barang values('A12','RADIO',250000,2); | |

|–> | | |

| |insert into barang values('B21','SEPATU',300000,2); | |

|mysql> | | |

|–> |insert into barang(kode,nama) values('C21','KEMEJA'); | |

| |insert into transaksi | |

|mysql> |values('001','2005-12-30','101'); | |

|–> | | |

|mysql> | | |

|–> | | |

•Isilah tabel pelanggan, transaksi dan detrans sesuai dibawah ini.

|PELANGGAN | | | |

|KODE |NAMA |ALAMAT |TELEPON |

|101 |BUDIMAN |KANGKUNG 15, MEDAN |8213344 |

|102 |ABDULLAH |JAHE 20, MEDAN |08153061566 |

|103 |KARTINI |MERAK 12, MEDAN |8455667 |

|104 |HARTONO |SUDIRMAN 20, BINJAI |08123345678 |

|BARANG | | | | |DETRANS | | |

|KODE |NAMA |HARGA |STOK | |NO_FAK |KO_BRG |JLH_BRG |

|A11 |VIDEO |500000 |2 | |001 |A11 |2 |

|A12 |RADIO |250000 |2 | |001 |A12 |3 |

|B21 |SEPATU |300000 |2 | |002 |A12 |2 |

|C21 |KEMEJA |NULL |NULL | |003 |A11 |1 |

| | | | | |003 |B21 |2 |

|TRANSAKSI | | | | |004 |A11 |1 |

|NO_FAK |TANGGAL |KO_PLGN | | |004 |A12 |2 |

|001 |2005-12-30 |101 | | |004 |B21 |4 |

|002 |2005-12-30 |103 | | |005 |B21 |1 |

|003 |2006-01-02 |104 | | |006 |A12 |2 |

|004 |2006-01-02 |102 | | |006 |D21 |1 |

|005 |2006-01-03 |101 | | | | | |

|006 |2006-03-20 |102 | | | | | |

|•Mengcopy tabel | |

|mysql> |create table tbarang select * from barang; | |

| | |

|•Mengcopy struktur tabel | |

|mysql> |create table tdetrans select * from detrans where no_fak=' '; | |

|–> | | |

| | |

|•Mengcopy data | |

|mysql> |insert into tdetrans select * from detrans; | |

| | | |

|mysql> |insert into tdetrans select * from tdetrans where no_fak='001'; | |

|–> | | |

| | |

| | |

|Merubah Data | |

|mysql> |update tbarang set harga=600000 | |

|–> |where kode='A11'; | |

| | | |

|mysql> |update tbarang set nama='KULKAS', | |

|–> |harga=1500000 where kode='A12'; | |

| | | |

|mysql> |update tbarang set kode='B22', | |

|–> |nama='SANDAL', harga=100000 | |

|–> |where kode='B21'; | |

| | | |

|mysql> |update tbarang set harga=harga*2; | |

| | | |

|mysql> |update tdetrans set jlh_brg=4 where | |

|–> |no_fak='001' and ko_brg='A11'; | |

| | |

| | |

| | |

|Menghapus Data | |

|mysql> |delete from tdetrans | |

|–> |where no_fak='002'; | |

| | | |

|mysql> |delete from tdetrans | |

|–> |where no_fak='001'; | |

| | | |

|mysql> |delete from tdetrans where | |

|–> |no_fak='003' and ko_brg='A11'; | |

| | | |

|mysql> |delete from tdetrans where | |

|–> |no_fak='003' or no_fak='005'; | |

| | | |

|mysql> |delete from tdetrans where (no_fak='004' or no_fak='006') and | |

|–> |jlh_brg=2; | |

| | | |

|mysql> |delete from tdetrans; | |

| | |

| | |

| | |

|Query Data (Select) | |

| | |

|Bentuk umum select : | |

|SELECT daftar_select | |

|FROM daftar_tabel | |

|[WHERE kondisi_pencarian] | |

|[GROUP BY daftar_group_by] | |

|[HAVING kondisi_pencarian] | |

|[ORDER BY daftar_order [ASC|DESC]] | |

|[LIMIT daftar_limit] | |

|mysql> |select * from detrans; | |

| | | |

|mysql> |select no_fak, ko_brg from detrans; | |

| | | |

|mysql> |select no_fak as 'No. Faktur', | |

|–> |ko_brg as 'Kode Barang', | |

|–> |jlh_brg as 'Jumlah' from detrans; | |

| | | |

|mysql> |select no_fak as nofak, ko_brg as kobrg, | |

|–> |jlh_brg as jumbrg from detrans; | |

| | | |

|mysql> |select distinct ko_brg from detrans; | |

| | | |

|mysql> |select distinct ko_brg, jlh_brg | |

|–> |from detrans; | |

| | | |

|mysql> |select * from detrans limit 5; | |

| | | |

|mysql> |select * from detrans limit 3,5; |5 record mulai dari record 3 |

| | | |

|mysql> |select * from detrans | |

|–> |where ko_brg='A11'; | |

| | | |

|mysql> |select * from detrans | |

|–> |where ko_brg='A11' and jlh_brg=1; | |

| | | |

|mysql> |select * from detrans where | |

|–> |ko_brg='A11' or ko_brg='B21'; | |

| | | |

|mysql> |select * from detrans where | |

|–> |(ko_brg='A11' or ko_brg='B21') | |

|–> |and jlh_brg>1; | |

| | | |

|mysql> |select * from transaksi | |

|–> |where tanggal='2006-01-02'; | |

| | | |

|mysql> |select * from transaksi | |

|–> |where tanggal>='2006-01-02'; | |

| | | |

|mysql> |select * from transaksi | |

|–> |where tanggal>='2006-01-02' | |

|–> |and tanggal |select * from transaksi where tanggal | |

|–> |between '2006-01-02' and '2006-01-10'; | |

| | | |

|mysql> |select * from detrans | |

|–> |where ko_brg like '%2%'; | |

| | | |

|mysql> |select count(*) from detrans; | |

| | | |

|mysql> |select ko_brg, sum(jlh_brg) | |

|–> |from detrans group by ko_brg; | |

| | | |

|mysql> |select ko_brg, sum(jlh_brg) |select no_fak, sum(jlh_brg) as jumlah |

|–> |from detrans group by ko_brg |from detrans group by no_fak |

|–> |having sum(jlh_brg)>5; |having jumlah>2 order by jumlah desc; |

| | | |

|mysql> |select ko_brg, sum(jlh_brg) as jumlah |select no_fak, sum(jlh_brg) as jumlah |

|–> |from detrans group by ko_brg having |from detrans group by no_fak |

|–> |sum(jlh_brg)>5 order by jumlah; |order by jumlah desc limit 3; |

| | |

|•Left Join dan Right Join | |

|Query semua data dari sebuah tabel dan membatasi data dari tabel lainnya. | |

|mysql> |select no_fak, nama, harga, jlh_brg |select t.no_fak, tanggal, p.nama, b.nama, harga, jlh_brg, harga * |

|–> |from barang left join detrans |jlh_brg as hartot |

|–> |on kode=ko_brg order by no_fak; |from ((barang b left join detrans d |

| | |on b.kode=ko_brg) left join transaksi t on t.no_fak=d.no_fak) left|

|mysql> |select no_fak, nama, harga, jlh_brg |join pelanggan p on p.kode=ko_plgn order by t.no_fak; |

|–> |from detrans right join barang | |

|–> |on ko_brg=kode order by no_fak; | |

| | | |

|mysql> |select no_fak, nama, harga, jlh_brg | |

|–> |from detrans left join barang | |

|–> |on ko_brg=kode order by no_fak; | |

| | | |

|mysql> |select kode, nama, sum(jlh_brg) as jumlah from barang left join | |

|–> |detrans | |

|–> |on kode=ko_brg group by ko_brg | |

|–> |order by kode; | |

| | |

| | |

|•Equa Join | |

|Query data yang memiliki pasangan di kedua tabel, | |

|bila tidak ada pasangan data tersebut tidak di query. | |

|mysql> |select no_fak, nama, harga, jlh_brg | |

|–> |from detrans, barang | |

|–> |where ko_brg=kode order by no_fak; | |

| | | |

|mysql> |select transaksi.no_fak, transaksi.tanggal, | |

|–> |detrans.ko_brg, detrans.jlh_brg | |

|–> |from transaksi, detrans | |

|–> |where transaksi.no_fak=detrans.no_fak; | |

| | | |

|mysql> |select t.no_fak, t.tanggal, d.ko_brg, d.jlh_brg from transaksi as| |

|–> |t, detrans as d where t.no_fak=d.no_fak; | |

|–> | | |

| |select t.no_fak, t.tanggal, d.ko_brg, | |

|mysql> |d.jlh_brg from transaksi t, detrans d where t.no_fak=d.no_fak; | |

|–> | | |

|–> |select t.no_fak, t.tanggal, b.nama,b.harga, d.jlh_brg from | |

| |transaksi t, detrans d, barang b where t.no_fak=d.no_fak and | |

|mysql> |d.ko_brg=b.kode; | |

|–> | | |

|–> |select d.no_fak, b.nama, b.harga, | |

|–> |d.jlh_brg, b.harga*d.jlh_brg as hartot | |

| |from detrans d, barang b | |

|mysql> |where ko_brg=kode; | |

|–> | | |

|–> |select d.no_fak, b.nama, b.harga, | |

|–> |d.jlh_brg, b.harga * d.jlh_brg as hartot, | |

| |if(b.harga*d.jlh_brg>500000,0.1*b.harga*d.jlh_brg,0) as diskon | |

|mysql> |from detrans d, barang b | |

|–> |where d.ko_brg=b.kode; | |

|–> | | |

|–> | | |

|–> | | |

|–> | | |

| | |

|•Sub Query | |

|mysql> |select * from transaksi where no_fak > |select kode from barang union select ko_brg from detrans; |

|–> |(select count(*) from transaksi)-3; |select kd.kode, sum(d.jlh_brg) as jumlah |

| | |from (select kode from barang union select ko_brg from detrans) as|

|mysql> |select * from (select * from detrans |kd left join detrans d on kd.kode=d.ko_brg group by kd.kode |

|–> |where ko_brg='B21') as dt | |

|–> |where jlh_brg>1; |any adalah memilih stok yang terkecil dari hasil select stok from |

| | |barang |

|mysql> |select * from detrans where jlh_brg > | |

|–> |any (select stok from barang); |some sama dengan any |

| | | |

|mysql> |select * from detrans where jlh_brg > | |

|–> |some (select stok from barang); |all adalah memilih stok yang terbesar dari hasil select stok from |

| | |barang |

|mysql> |select * from detrans where jlh_brg > | |

|–> |all (select stok from barang); | |

| | | |

|mysql> |select * from detrans where jlh_brg |in sama dgn = any, not in sama dgn any |

|–> |= any (select stok from barang); | |

|mysql> |select * from detrans where jlh_brg |select no_fak, sum(harga*jlh_brg) as |

|–> |in (select stok from barang); |hartot from detrans, barang where |

| | |ko_brg=kode group by no_fak having |

|mysql> |select no_fak, sum(jlh_brg) as jumlah |sum(harga*jlh_brg) > |

|–> |from detrans group by no_fak having |(select sum(harga*jlh_brg) from detrans,barang where ko_brg=kode |

|–> |sum(jlh_brg) > (select sum(jlh_brg) from |and no_fak='002' group by no_fak); |

|–> |detrans where no_fak='002' group by | |

|–> |no_fak); | |

Tipe Tabel MySql

Secara garis besar, tipe-tipe tabel ini dapat digolongkan menjadi dua kelompok, yaitu :

o Transaction Safe Tables (yaitu : BDB dan InnoDB)

keuntungannya :

1. Jika terjadi crash pada MySQL atau ada masalah dengan hardware, Anda dapat memperoleh kembali data yang ada dengan recovery otomatis.

2. Anda dapat melakukan kombinasi beberapa pernyataan SQL dengan sekali perintah, yaitu COMMIT.

3. Anda dapat membatalkan perubahan dengan perintah ROLLBACK.

o Not Transaction Safe Tables (yaitu : HEAP, ISAM, MERGE dan MyISAM)

keuntungannya :

1. Lebih cepat, karena tidak ada transaksi yang over.

2. Pemakaian ruang disk lebih sedikit.

3. Penggunaan memory lebih sedikit.

•MyISAM

Merupakan tipe tabel default pada MySQL. Lebih cepat dibandingkan dengan ISAM. Mendukung index pada kolom bertipe TEXT dan BLOB. Memiliki tiga jenis format tabel yaitu Static, Dinamic, Compressed. Format static digunakan bila tabel tidak memiliki tipe kolom varchar, blob, atau text. Format dinamyc digunakan bila tabel mengandung tipe kolom varchar, blob, atau text. Format compressed bertipe read-only

•Merge

Sangat efisien dalam pencarian data. Namun tidak dapat melakukan insert, hanya select, delete, dan update.

•ISAM

Cikal bakal tipe default MySQL. Kurang sesuai untuk setiap sistem operasi. Tidak dapat menam-pung lebih dari 4G tabel serta batas key yang sangat sedikit.

•HEAP

Menggunakan index hashed yang terletak didalam memori. Merupakan tabel yang tercepat pada MySQL dalam mengakses data, akan tetapi jika MySQL mengalami crash maka semua data di dalamnya tidak dapat deselamatkan. Index hanya dapat digunakan dengan = dan . Tidak mendukung kolom BLOB/Text, Auto_Increament dan index pada kolom NULL.

•BDB

Dukungan penuh terhadap transaksi. Mengharuskan adanya primary key, bila tidak dibuat MySQL akan membuat hidden primary key. Jika disk server penuh, transaksi akan dikembalikan tanpa proses.

•InnoDB

Merupakan penyempurnaan dari BDB. Mendukung foreign key constraint. Semua tabel index diletakkan pada tablespace, berbeda dengan MyISAM yang meletakkannya pada beberapa file, sehingga tabel InnoDB hanya menggunakan file .FRM saja. Sangat cocok digunakan untuk database skala besar.

Integritas Referensial (Referential Integrity)

Suatu usaha untuk tetap menjaga validitas, konsistensi, dan akurasi data pada tabel yang saling berhubungan didalam sebuah database.

•Restrict (terbatas) :

Sebuah record pada tabel induk tidak akan bisa dihapus/dirubah bila record tersebut memiliki ikatan dengan record pada tabel anak. Kecuali bila record pada tabel anak tersebut dihapus/dirubah terlebih dahulu, baru record pada tabel induk bisa dihapus/dirubah. Ini tidak akan terjadi sebaliknya.

•Cascade (bertingkat) :

Jika sebuah record pada tabel induk dihapus/dirubah, maka secara otomatis record pada tabel anak akan dihapus/dirubah juga.

| | |

|•Memeriksa tipe tabel yang didukung/diaktifkan server | |

|mysql> |show variables like 'have%'; | |

| | |

|•Membuat foreign key pada saat pembuatan tabel | |

|mysql> |create table pelanggan(kode varchar(3) |buat database dengan nama rpjual dan pilih database rpjual |

|–> |not null primary key, nama varchar(20), | |

|–> |alamat varchar(30), telepon varchar(13)) type=innodb; | |

|–> | | |

|mysql> |show table status from rpjual like 'pelanggan' \G | |

|–> |show table status from rpjual \G |Untuk pemeriksaan |

|mysql> | | |

| | | |

|mysql> |create table transaksi(no_fak varchar(3) |membuat foreign key |

|–> |not null, tanggal date, ko_plgn |tanpa menggunakan clausa constraint |

|–> |varchar(3), primary key(no_fak), index | |

|–> |koplgndx (ko_plgn), foreign key(ko_plgn) | |

|–> |references pelanggan(kode) on delete | |

|–> |restrict on update restrict) type=innodb; | |

| | |atau |

|mysql> |create table transaksi(no_fak varchar(3) |dengan menggunakan clausa constraint |

|–> |not null, tanggal date, ko_plgn | |

|–> |varchar(3), primary key(no_fak), index | |

|–> |koplgndx (ko_plgn), constraint koplgfk | |

|–> |foreign key (ko_plgn) references | |

|–> |pelanggan(kode) on delete restrict on update restrict) | |

|–> |type=innodb; | |

|mysql> |show create table transaksi \G |Untuk melihat symbol contraint |

| | |

|mysql> |insert into pelanggan(kode, nama) |Untuk pembuktian |

|–> |values('101','BUDIMAN'); | |

|mysql> |insert into transaksi | |

|–> |values('001','2005-12-30','101'); | |

|mysql> |insert into transaksi |error karena kode 102 belum ada pada tabel pelanggan |

|–> |values('002','2005-12-30','102'); | |

|mysql> |insert into pelanggan(kode, nama) | |

|–> |values('102','ABDULLAH'); | |

|mysql> |insert into transaksi | |

|–> |values('002','2005-12-30','102'); |error karena kode 102 terdapat pada tabel transaksi, sehingga akan|

|mysql> |delete from pelanggan |kehilangan induk |

|–> |where kode='102'; | |

|mysql> |delete from transaksi where ko_plgn='102'; | |

|–> |delete from pelanggan where kode='102'; | |

|mysql> | | |

| | |

|mysql> |create table barang(kode varchar(3) | |

|–> |not null primary key, nama varchar(20), | |

|–> |harga decimal(9,0)) type=innodb; | |

| | |

|mysql> |create table detrans(no_fak varchar(3), | |

|–> |ko_brg varchar(3), jlh_brg int(3), | |

|–> |index kobrgndx(ko_brg), | |

|–> |constraint kobrgfk foreign key (ko_brg) | |

|–> |references barang(kode) on update | |

|–> |cascade on delete cascade, | |

|–> |index nofakndx(no_fak), | |

|–> |constraint nofakfk foreign key (no_fak) | |

|–> |references transaksi(no_fak) on update | |

|–> |cascade on delete cascade) type=innodb; | |

| | |

|mysql> |insert into pelanggan(kode, nama) values('102','ABDULLAH'); |Untuk pembuktian |

|–> |insert into transaksi | |

|mysql> |values('002','2005-12-30','102'); | |

|–> |insert into barang values('A11','VIDEO',500000); | |

|mysql> |insert into barang values('A12','RADIO',250000); | |

|–> |insert into barang values('B21','SEPATU',300000); | |

|mysql> |insert into detrans values('001','A11',2); | |

|–> |insert into detrans values('001','A12',1); | |

|mysql> |insert into detrans values('002','A11',3); | |

|–> |update barang set kode='A13' where kode='A11'; | |

|mysql> |select * from barang; | |

|mysql> |select * from detrans; | |

|mysql> |update detrans set ko_brg='B21' where ko_brg='A12'; | |

|mysql> |select * from detrans; | |

|–> |select * from barang; | |

|mysql> |delete from detrans where ko_brg='B21'; | |

|mysql> |select * from detrans; | |

|mysql> |select * from barang; | |

|–> |delete from barang where kode='A13'; | |

|mysql> |select * from barang; | |

|mysql> |select * from detrans; | |

|mysql> | | |

|mysql> | | |

|mysql> | | |

|mysql> | | |

|mysql> | | |

|mysql> | | |

| | |

|•Menghapus foreign key | |

|mysql> |show create table transaksi \G |Menampilkan nama constraint, bila tidak diketahui nama constraint |

| | | |

|mysql> |alter table transaksi drop foreign key koplgfk; | |

|–> | | |

| | |

|•Membuat foreign key setelah pembuatan tabel | |

|mysql> |alter table transaksi add constraint |Bila belum di index, index terlebih dahulu berdasarkan foreign key|

|–> |koplgfk foreign key (ko_plgn) references | |

|–> |pelanggan (kode) on delete restrict; | |

| | |

| | |

|Transaksi pada MySQL | |

|mysql> |set autocommit=0; |pilih database rpjual |

|mysql> |begin; | |

|mysql> |insert into transaksi values('007', | |

|–> |'2006-12-15','101'); | |

|mysql> |select * from transaksi; | |

|no_fak |tanggal |Ko_plgn |

|001 |2005-12-30 |101 |

|002 |2005-12-30 |102 |

|007 |2006-12-15 |101 |

3 rows in set (0.00 sec)

|mysql> |\q | |

Bye

c:\xampp\mysql\bin>mysql -u root -p

Enter password: *********

|mysql> |use rpjual; | |

|mysql> |select * from transaksi; | |

|no_fak |tanggal |Ko_plgn |

|001 |2005-12-30 |101 |

|002 |2005-12-30 |102 |

2 rows in set (0.00 sec)

|mysql> |set autocommit=0; | |

|mysql> |begin; | |

|mysql> |insert into transaksi values('007','2006-12-15','101'); | |

|–> |insert into detrans values('007','B21',2); | |

|mysql> |commit; | |

|mysql> | | |

| |\q | |

|mysql> | | |

Bye

c:\xampp\mysql\bin>mysql -u root -p

Enter password: *********

|mysql> |use rpjual; | |

|mysql> |select * from transaksi; | |

|no_fak |tanggal |Ko_plgn |

|001 |2005-12-30 |101 |

|002 |2005-12-30 |102 |

|007 |2006-12-15 |101 |

3 rows in set (0.00 sec)

|mysql> |select * from detrans; | |

|no_fak |ko_brg |jlh_brg |

|007 |B21 |2 |

1 rows in set (0.00 sec)

|mysql> |set autocommit=0; | |

|mysql> |begin; | |

|mysql> |insert into transaksi | |

|–> |values('008','2006-12-15','101'); | |

|mysql> |select * from transaksi; | |

|no_fak |tanggal |Ko_plgn |

|001 |2005-12-30 |101 |

|002 |2005-12-30 |102 |

|007 |2006-12-15 |101 |

|008 |2006-12-15 |101 |

4 rows in set (0.00 sec)

|mysql> |insert into detrans values('008','B21',2); | |

|mysql> |select * from detrans; | |

|no_fak |ko_brg |jlh_brg |

|007 |B21 |2 |

|008 |B21 |2 |

2 rows in set (0.00 sec)

|mysql> |rollback; | |

|mysql> |select * from transaksi; | |

|no_fak |tanggal |Ko_plgn |

|001 |2005-12-30 |101 |

|002 |2005-12-30 |102 |

|007 |2006-12-15 |101 |

3 rows in set (0.00 sec)

|mysql> |select * from detrans; | |

|no_fak |ko_brg |jlh_brg |

|007 |B21 |2 |

1 rows in set (0.00 sec)

| | |

| | |

| | |

| | |

| | |

| | |

| | |

| | |

|Administrasi User | |

| | |

|•Login melalui username root | |

|c:\xampp\mysql\bin>mysql -u root –p | |

| | |

|•Menggunakan database mysql | |

|mysql> |use mysql; | |

| | |

|•Menampilkan tabel-tabel database mysql | |

|mysql> |show tables; | |

|Tables_in_mysql |

|columns_priv |

|Db |

|Func |

|Host |

|tables_priv |

|User |

6 rows in set (0.28 sec)

| | |

|•Menampilkan struktur tabel user | |

|mysql> |describe user; | |

| |atau | |

|mysql> |describe user \G | |

| | |

|•Menampilkan struktur tabel host | |

|mysql> |describe host; | |

| | |

|•Menampilkan struktur tabel db | |

|mysql> |describe db; | |

| | |

|•Menampilkan struktur tabel tables_priv | |

|mysql> |describe tables_priv \G; | |

| | |

|•Menampilkan struktur tabel columns_priv | |

|mysql> |describe columns_priv \G; | |

| | |

|•Menampilkan isi tabel user | |

|mysql> |select user, host, password from user; | |

|mysql> |select * from user \G; | |

|mysql> |select * from user where user='root' \G | |

| | |

|•Mendefinisikan user dan hak ke semua database | |

|mysql> |insert into user(host, user, password, select_priv,insert_priv) |haknya hanya select dan insert ke semua database |

|–> |values('localhost', 'ti..cb1',password('ti..cb1'),’Y’,’Y’); | |

|–> | | |

| |flush privileges; |menyesuaikan/menerapkan perubahan user name dan privilege(hak) |

|mysql> | |pada server MySQL |

| |quit; |untuk pengujian |

|mysql> | | |

|c:\xampp\mysql\bin >mysql –u ti..cb1 –p | |

|Enter password: ******* | |

| | |

| | |

|•Merubah username dan password | |

|mysql> |update user set user='ti..ak1', password= password('ti..ak1') |login kembali melalui user root dan gunakan database mysql |

|–> |where user='ti..cb1'; | |

| | |

|•Menambah hak (update dan delete) | |

|mysql> |update user set update_priv='Y', delete_priv='Y' where | |

|–> |user='ti..ak1'; | |

| | |

|•Menghapus hak (insert dan update) | |

|mysql> |update user set insert_priv='N', update_priv='N' where | |

|–> |user='ti..ak1'; | |

| | |

|• Mendefinisikan user dan hak ke database tertentu | |

|mysql> |insert into user(host, user, password) | |

|–> |values('localhost','ti..ak2', | |

|–> |password('ti..ak2')); | |

| | | |

|mysql> |insert into db(host, db, user, select_priv, delete_priv) |haknya hanya select dan delete ke semua tabel pada database pjual |

|–> |values('localhost','pjual', 'ti..ak2','Y',’Y’); | |

|–> | | |

| | |

|•Menambah hak (insert dan update) | |

|mysql> |update db set insert_priv='Y', update_priv=’Y’ where |haknya insert dan update ke semua tabel pada database pjual |

|–> |user='ti..ak2' and db='pjual'; | |

|–> | | |

| | |

|•Menghapus hak (update dan delete) | |

|mysql> |update db set update_priv='N', delete_priv=’N’ where | |

|–> |user='ti..ak2' and db='pjual'; | |

|–> | | |

| | |

|• Mendefinisikan user dan hak ke tabel tertentu | |

|mysql> |insert into user(host, user, password) | |

|–> |values('localhost','ti..ak3', | |

|–> |password('ti..ak3')); | |

| | | |

|mysql> |insert into tables_priv(host, db, user, table_name, table_priv) |haknya hanya select dan insert ke tabel barang pada database pjual|

|–> |values('localhost' ,'pjual','ti..ak3','barang','select,insert'); | |

|–> | | |

| | |

|•Menambah hak (update) | |

|mysql> |update tables_priv set table_priv= 'select,insert,update' where | |

|–> |user='ti..ak3' and db='pjual' and table_name='barang'; | |

|–> | | |

| | |

|•Menghapus hak (insert) | |

|mysql> |update tables_priv set table_priv='select, update' where | |

|–> |user='ti..ak3' and db='pjual' and table_name='barang'; | |

|–> | | |

| | |

|• Mendefinisikan user dan hak ke kolom tertentu | |

|mysql> |insert into user(host, user, password) | |

|–> |values('localhost','ti..ak4', | |

|–> |password('ti..ak4')); | |

| | | |

|mysql> |insert into tables_priv(host, db, user, table_name,column_priv) |haknya hanya select dan insert ke kolom kode pada tabel barang |

|–> |values('localhost','pjual','ti..ak4','barang','select,insert'); |database pjual |

|–> | | |

|–> |insert into columns_priv(host, db, user, table_name, column_name,| |

| |column_priv) | |

|mysql> |values('localhost','pjual','ti..ak4','barang','kode','select,inse| |

|–> |rt'); | |

|–> | | |

|–> | | |

| | |

|•Menambah hak (update) | |

|mysql> |update tables_priv set column_priv= 'select,insert,update' where | |

|–> |user='ti..ak4' and db='pjual' and table_name='barang'; | |

|–> | | |

| |update columns_priv set column_priv= 'select,insert,update' where| |

|mysql> |user='ti..ak4' and db='pjual' and table_name='barang' and | |

|–> |column_name='kode'; | |

|–> | | |

|–> | | |

| | |

|•Menghapus hak (insert) | |

|sama seperti menambah diatas tetapi insert tidak disertakan | |

|•Menambah hak (ke kolom yang lain) | |

|Insert ke tabel tables_priv tidak lagi dilakukan karena pada saat memberikan | |

|hak akses ke kolom kode sudah dilakukan, tapi bila hak akses yang akan | |

|diberikan selain select dan update maka hak tersebut harus ditambah ke tabel | |

|tables_priv, kemudian dilakukan insert ke tabel columns_priv seperti diatas. | |

| | |

|•Menghapus definisi user | |

|mysql> |delete from columns_priv where user='ti..ak4'; | |

|–> |delete from tables_priv where user='ti..ak4'; | |

|mysql> |delete from db where user='ti..ak4'; | |

|–> |delete from user where user='ti..ak4'; | |

|mysql> | | |

|mysql> | | |

Administrasi User dengan Grant dan Revoke

(catatan : mendefinisikan user dengan grant tidak perlu menggunakan database mysql dan bila username yang kita tuliskan dalam perintah grant sudah ada berarti menambah hak, bila belum ada maka dibuat user baru)

•Mendefinisikan user dengan hak penuh (sama dengan user root)

mysql> grant all on *.* to ti..ar1@localhost identified by 'ti..ar1' with grant option;

•Menghapus hak penuh

mysql> revoke all on *.* from ti..ar1@localhost identified by 'ti..ar1';

mysql> update user set grant_priv='N' where user='ti..ar1';

•Menghapus definisi user

mysql> delete from user where user='ti..ar1';

• Mendefinisikan user dan hak ke semua database (select dan insert)

mysql> grant select,insert on *.* to ti..ar1@localhost identified by 'ti..ar1';

• Menambah hak (update dan delete)

mysql> grant update,delete on *.* to ti..ar1@localhost identified by 'ti..ar1';

• Menghapus hak (insert dan update)

mysql> revoke insert,update on *.* from ti..ar1@localhost identified by 'ti..ar1';

• Mendefinisikan user dan hak ke database tertentu

mysql> grant select,delete on pjual.* to ti..ar2@localhost identified by 'ti..ar2';

(catatan : haknya hanya select dan delete ke semua tabel pada database pjual)

mysql> grant all on xpjual.* to ti..ar2@localhost identified by 'ti..ar2';

(catatan : haknya select, insert, update, dst. ke semua tabel pada database pjual)

•Menghapus hak (select, insert, update, dst. )

mysql> revoke all on xpjual.* from ti..ar2@localhost identified by 'ti..ar2';

• Mendefinisikan user dan hak ke tabel tertentu

mysql> grant all on pjual.barang to ti..ar3@localhost identified by 'ti..ar3';

(catatan : haknya adalah Select,Insert,Update,Delete,Create,Drop,References,Index,Alter)

mysql> grant all on pjual.detrans to ti..ar3@localhost identified by 'ti..ar3';

mysql> grant select, insert on pjual.pelanggan to ti..ar3@localhost identified by 'ti..ar3';

(catatan : haknya hanya select dan insert)

•Menambah hak (update dan delete)

mysql> grant update, delete on pjual.pelanggan to ti..ar3@localhost identified by 'ti..ar3';

•Menghapus hak (insert dan update)

mysql> revoke insert,update on pjual.pelanggan from ti..ar3@localhost identified by 'ti..ar3';

• Mendefinisikan user dan hak ke kolom (field) tertentu

mysql> grant select(kode,nama), insert(kode,nama)

–> on pjual.barang to ti..ar4@localhost identified by 'ti..ar4';

Untuk pengujian dapat dilakukan dengan :

mysql> select * from barang; (error)

mysql> select kode,nama from barang;

mysql> insert into barang(kode,nama,harga)

–> values('C22','CELANA',150000); (error)

mysql> insert into barang(kode,nama)

–> values('C22','CELANA');

mysql> update barang set nama='T SHIRT'

–> where kode='C22'; (error)

•Menambah hak (update)

mysql> grant update(kode,nama) on pjual.barang

–> to ti..ar4@localhost identified by 'ti..ar4';

Untuk pengujian dapat dilakukan dengan :

mysql> update barang set nama='T SHIRT' where kode='C22';

•Menambah hak ke kolom lain

mysql> grant select(harga), insert(harga), update(harga)

–> on pjual.barang to ti..ar4@localhost identified by 'ti..ar4';

Untuk pngujian dapat dilakukan dengan :

mysql> update barang set harga=150000 where kode='C22';

•Menghapus hak dari suatu kolom (update)

mysql> revoke update(nama,harga) on pjual.barang

–> from ti..ar4@localhost identified by 'ti..ar4';

•Menghapus hak dari suatu kolom (semua hak)

mysql> revoke select(harga), insert(harga) on pjual.barang

–> from ti..ar4@localhost identified by 'ti..ar4';

Backup dan Restore

o Menyalin dan membaca kembali database ke dalam dan dari file teks.

o Menyalin dan membaca kembali database ke dalam dan dari perintah SQL.

o Menyalin dan membaca kembali isi database dari satu server ke server lain.

Menyalin dan membaca kembali database ke dalam dan dari file teks

•Menyalin data ke dalam file teks

mysql> use pjual;

mysql> select * from barang into outfile 'c:\\ti..\\rbarang1.dat';

mysql> select * from barang into outfile 'c:\\ti..\\rbarang2.dat';

•Membaca kembali data dari file teks

mysql> create table rbarang1 select * from barang where kode='';

mysql> load data infile 'c:\\ti..\\rbarang1.dat' into table rbarang1;

•Membaca kembali data dari file teks menggunakan mysqlimport

mysql> create table rbarang2 select * from barang where kode='';

c:\xampp\mysql\bin >mysqlimport -u root -p pjual "c:\ti..\rbarang2.dat"

(catatan : nama file rbarang2.dat harus sama dgn nama tabel yaitu rbarang2)

Menyalin dan membaca kembali database ke dalam dan dari perintah SQL

•Menyalin database (struktur dan data) ke dalam perintah SQL

c:\xampp\mysql\bin >mysqldump -u root -p pjual > c:\ti..\bpjual

•Menyalin struktur tabel

c:\xampp\mysql\bin >mysqldump --no-data -u root -p pjual > c:\ti..\bpjuals

•Menyalin data saja

c:\xampp\mysql\bin >mysqldump -t -u root -p pjual > c:\ti..\bpjuald

•Menyalin struktur dan data tabel tertentu

c:\xampp\mysql\bin >mysqldump -u root -p pjual barang > c:\ti..\rbarang3

c:\xampp\mysql\bin >mysqldump -c -u root -p pjual barang > c:\ti..\rbarang4

(catatan : -c untuk menghasilkan perintah insert yg lengkap)

•Membaca kembali database dari perintah SQL

(dapat dilakukan dengan menggunakan perintah SQL hasil salinan pada server mysql)

mysql> create database rbpjual;

c:\xampp\mysql\bin >mysql -u root -p rbpjual < c:\ti..\bpjual

(catatan : rbpjual berisi struktur dan data)

mysql> create database rsdpjual;

c:\xampp\mysql\bin >mysql -u root -p rsdpjual < c:\ti..\bpjuals

(catatan : bpjuals berisi struktur tabel saja)

c:\xampp\mysql\bin >mysql -u root -p rsdpjual < c:\ti..\bpjuald

(catatan : bpjuald berisi data saja)

mysql> create database brpjual;

c:\xampp\mysql\bin >mysql -u root -p brpjual < c:\ti..\rbarang3

(catatan : rbarang3 berisi tabel barang saja)

Menyalin dan membaca kembali isi database dari satu server ke server lain

•Membuat database pada server localhost

c:\xampp\mysql\bin >mysqladmin -u root -p create spjual

•Menyalin database ke server localhost

c:\xampp\mysql\bin >mysqldump -u root -p pjual | (sumber/asal)

mysql --host=localhost --user=root --password=positronb spjual (tujuan)

atau

c:\xampp\mysql\bin >mysqldump --user=root --password=positronb pjual |

mysql --host=localhost -u root -p spjual

•Membuat database pada server lain

c:\xampp\mysql\bin >mysqladmin --host=192.168.0.6 -u positron -p create slpjual

•Menyalin database ke server lain

c:\xampp\mysql\bin >mysqldump -u root -p pjual | (sumber/asal)

mysql --host=192.168.0.6 --user=positron --password=positron slpjual (tujuan)

atau

c:\xampp\mysql\bin >mysqldump --user=root --password=positronb pjual |

mysql --host=192.168.0.6 -u positron -p slpjual

................
................

In order to avoid copyright disputes, this page is only a partial summary.

Google Online Preview   Download