Your SlideShare is downloading. ×
Modul mysql5
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Modul mysql5

132
views

Published on


0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
132
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
7
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. 1 Modul Pemrograman Basis Data Membuat Database • Menampilkan database cd xamppmysqlbin mysql -u root -p --prompt="[u @h] [d]nmysql> " mysql> show databases; • Membuat database Setiap ada pjual diganti dengan mi.. mysql> create database pjual; mysql> create database barang; mysql> create database xpjual; membuat database dengan nama pjual membuat database dengan nama barang 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; mysql> show tables from xpjual; pilih database pjual 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)); mysql> create table pelanggan(kode varchar(3) not –> null primary key, nama varchar(20), alamat –> varchar(30), telepon varchar(13)); mysql> 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 kobrgdx(ko_brg)); • Membuat tabel pada database non aktif mysql> create table xpjual.detrans(no_fak –> varchar(3), ko_brg varchar(3), jlh_brg –> int(3)); xpjual = nama database xdetrans = nama tabel yang dibuat
  • 2. 2 • Menampilkan struktur tabel mysql> describe detrans; detrans = nama tabel yang ditampilkan strukturnya Tampilan struktur tabel detrans Field Type Null no_fak ko_brg jlh_brg varchar(3) varchar(3) int(3) Key YES YES YES Default Extra NULL NULL NULL 3 rows in set (0.00 sec) mysql> desc barang; Tampilan struktur tabel barang Field Type Null Key kode nama harga stok varchar(3) varchar(20) YES decimal(9,0) YES int(3) YES Default Extra PRI NULL NULL NULL 4 rows in set (0.00 sec) mysql> desc pelanggan; Tampilan struktur tabel pelanggan Field Type Null kode nama alamat telepon varchar(3) varchar(20) varchar(30) varchar(13) Key YES YES YES Default Extra PRI NULL NULL NULL 4 rows in set (0.00 sec) mysql> desc transaksi; Tampilan struktur tabel transaksi Field Type Null no_fak tanggal ko_plgn varchar(3) date varchar(3) YES YES Key Default Extra PRI NULL 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 mysql> create table xdetrans select * from –> detrans; detrans = nama tabel yang dicopy xdetrans = nama tabel hasil copy mysql> create table xtransaksi select * from –> transaksi; • Mengcopy tabel ke database non aktif
  • 3. 3 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; mysql> alter table xdetrans add id_no int –> unsigned auto_increment not 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> –> mysql> –> alter table xbarang modify nama varchar(20) not null; alter table xbarang modify nama varchar(20); •Membuat Primary Key mysql> alter table xbarang add primary key –> (kode); •Menghapus Primary Key merubah field nama menjadi not null merubah field nama menjadi null
  • 4. 4 mysql> alter table xbarang drop primary key; •Membuat Index mysql> –> mysql> –> alter table xdetrans add index kobrg_ndx(ko_brg); create index kobrg_ndx on xdetrans(ko_brg); atau •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> –> mysql> –> alter table xbarang alter nama set default 'KULKAS'; alter table xbarang alter harga set default 999; field yang Not Null dan default tidak ada, bisa tidak diisi dan field tersebut tetap kosong •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); mysql> insert into barang –> values('B21','SEPATU',300000,2); mysql> –> mysql> –> insert into barang(kode,nama) values('C21','KEMEJA'); insert into transaksi values('001','2005-12-30','101'); •Isilah tabel pelanggan, transaksi dan detrans sesuai dibawah ini.
  • 5. 5 PELANGGAN KODE 101 102 103 104 NAMA BUDIMAN ABDULLAH KARTINI HARTONO ALAMAT KANGKUNG 15, MEDAN JAHE 20, MEDAN MERAK 12, MEDAN SUDIRMAN 20, BINJAI BARANG KODE A11 A12 B21 C21 TRANSAKSI NO_FAK 001 002 003 004 005 006 NAMA VIDEO RADIO SEPATU KEMEJA HARGA 500000 250000 300000 NULL TANGGAL 2005-12-30 2005-12-30 2006-01-02 2006-01-02 2006-01-03 2006-03-20 STOK 2 2 2 NULL KO_PLGN 101 103 104 102 101 102 DETRAN S NO_FAK 001 001 002 003 003 004 004 004 005 006 006 •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'; TELEPON 8213344 08153061566 8455667 08123345678 KO_BRG A11 A12 A12 A11 B21 A11 A12 B21 B21 A12 D21 JLH_BRG 2 3 2 1 2 1 2 4 1 2 1
  • 6. 6 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; mysql> select * from detrans –> where ko_brg='A11'; mysql> select * from detrans –> where ko_brg='A11' and jlh_brg=1; 5 record mulai dari record 3
  • 7. 7 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<='2006-01-10'; mysql> 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) –> from detrans group by ko_brg –> having sum(jlh_brg)>5; select no_fak, sum(jlh_brg) as jumlah from detrans group by no_fak having jumlah>2 order by jumlah desc; mysql> select ko_brg, sum(jlh_brg) as jumlah –> from detrans group by ko_brg having –> sum(jlh_brg)>5 order by jumlah; select no_fak, sum(jlh_brg) as jumlah from detrans group by no_fak 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 –> from barang left join detrans –> on kode=ko_brg order by no_fak; mysql> select no_fak, nama, harga, jlh_brg –> 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; select t.no_fak, tanggal, p.nama, b.nama, harga, jlh_brg, harga * jlh_brg as hartot from ((barang b left join detrans d on b.kode=ko_brg) left join transaksi t on t.no_fak=d.no_fak) left join pelanggan p on p.kode=ko_plgn order by t.no_fak;
  • 8. 8 •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; mysql> select t.no_fak, t.tanggal, d.ko_brg, –> d.jlh_brg from transaksi t, detrans d –> where t.no_fak=d.no_fak; mysql> –> –> –> 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 d.ko_brg=b.kode; mysql> –> –> –> select d.no_fak, b.nama, b.harga, d.jlh_brg, b.harga*d.jlh_brg as hartot from detrans d, barang b where ko_brg=kode; mysql> –> –> –> –> –> 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 from detrans d, barang b where d.ko_brg=b.kode; •Sub Query mysql> select * from transaksi where no_fak > –> (select count(*) from transaksi)-3; mysql> select * from (select * from detrans –> where ko_brg='B21') as dt –> where jlh_brg>1; select kode from barang union select ko_brg from detrans; select kd.kode, sum(d.jlh_brg) as jumlah from (select kode from barang union select ko_brg from detrans) as kd left join detrans d on kd.kode=d.ko_brg group by kd.kode mysql> select * from detrans where jlh_brg > –> any (select stok from barang); any adalah memilih stok yang terkecil dari hasil select stok from barang mysql> select * from detrans where jlh_brg > –> some (select stok from barang); some sama dengan any mysql> select * from detrans where jlh_brg > –> all (select stok from barang); all adalah memilih stok yang terbesar dari hasil select stok from barang mysql> select * from detrans where jlh_brg –> = any (select stok from barang);
  • 9. 9 mysql> select * from detrans where jlh_brg –> in (select stok from barang); mysql> –> –> –> –> select no_fak, sum(jlh_brg) as jumlah from detrans group by no_fak having sum(jlh_brg) > (select sum(jlh_brg) from detrans where no_fak='002' group by no_fak); in sama dgn = any, not in sama dgn <> any select no_fak, sum(harga*jlh_brg) as hartot from detrans, barang where ko_brg=kode group by no_fak having sum(harga*jlh_brg) > (select sum(harga*jlh_brg) from detrans,barang where ko_brg=kode and 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 menampung 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.
  • 10. 10 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) not null primary key, nama varchar(20), alamat varchar(30), telepon varchar(13)) type=innodb; mysql> show table status from rpjual like –> 'pelanggan' G mysql> show table status from rpjual G mysql> –> –> –> –> –> create table transaksi(no_fak varchar(3) not null, tanggal date, ko_plgn 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; mysql> –> –> –> –> –> –> create table transaksi(no_fak varchar(3) 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; buat database dengan nama rpjual dan pilih database rpjual Untuk pemeriksaan membuat foreign key tanpa menggunakan clausa constraint atau dengan menggunakan clausa constraint mysql> show create table transaksi G Untuk melihat symbol contraint mysql> –> mysql> –> mysql> –> mysql> –> mysql> –> mysql> –> Untuk pembuktian insert into pelanggan(kode, nama) values('101','BUDIMAN'); insert into transaksi values('001','2005-12-30','101'); insert into transaksi values('002','2005-12-30','102'); insert into pelanggan(kode, nama) values('102','ABDULLAH'); insert into transaksi values('002','2005-12-30','102'); delete from pelanggan where kode='102'; error karena kode 102 belum ada pada tabel pelanggan error karena kode 102 terdapat pada tabel transaksi, sehingga akan kehilangan induk
  • 11. 11 mysql> delete from transaksi where –> ko_plgn='102'; mysql> delete from pelanggan where kode='102'; 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> –> mysql> –> mysql> –> mysql> –> mysql> –> mysql> mysql> mysql> mysql> –> mysql> mysql> mysql> –> mysql> mysql> mysql> mysql> mysql> mysql> mysql> mysql> insert into pelanggan(kode, nama) values('102','ABDULLAH'); insert into transaksi values('002','2005-12-30','102'); insert into barang values('A11','VIDEO',500000); insert into barang values('A12','RADIO',250000); insert into barang values('B21','SEPATU',300000); insert into detrans values('001','A11',2); insert into detrans values('001','A12',1); insert into detrans values('002','A11',3); update barang set kode='A13' where kode='A11'; select * from barang; select * from detrans; update detrans set ko_brg='B21' where ko_brg='A12'; select * from detrans; select * from barang; delete from detrans where ko_brg='B21'; select * from detrans; select * from barang; delete from barang where kode='A13'; select * from barang; select * from detrans; Untuk pembuktian •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 –> koplgfk foreign key (ko_plgn) references –> pelanggan (kode) on delete restrict; Bila belum di index, index terlebih dahulu berdasarkan foreign key
  • 12. 12 Transaksi pada MySQL mysql> mysql> mysql> –> mysql> set autocommit=0; begin; insert into transaksi values('007', '2006-12-15','101'); select * from transaksi; no_fak tanggal Ko_plgn 001 002 007 101 102 101 2005-12-30 2005-12-30 2006-12-15 3 rows in set (0.00 sec) mysql> q Bye c:xamppmysqlbin>mysql -u root -p Enter password: ********* mysql> use rpjual; mysql> select * from transaksi; no_fak tanggal Ko_plgn 001 002 101 102 2005-12-30 2005-12-30 2 rows in set (0.00 sec) mysql> mysql> mysql> –> mysql> mysql> set autocommit=0; begin; insert into transaksi values('007','200612-15','101'); insert into detrans values('007','B21',2); commit; mysql> q Bye c:xamppmysqlbin>mysql -u root -p Enter password: ********* mysql> use rpjual; mysql> select * from transaksi; no_fak tanggal Ko_plgn 001 002 007 101 102 101 2005-12-30 2005-12-30 2006-12-15 3 rows in set (0.00 sec) mysql> select * from detrans; pilih database rpjual
  • 13. 13 no_fak ko_brg jlh_brg 007 B21 2 1 rows in set (0.00 sec) mysql> mysql> mysql> –> mysql> set autocommit=0; begin; insert into transaksi values('008','2006-12-15','101'); select * from transaksi; no_fak tanggal Ko_plgn 001 002 007 008 101 102 101 101 2005-12-30 2005-12-30 2006-12-15 2006-12-15 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 008 B21 B21 2 2 2 rows in set (0.00 sec) mysql> rollback; mysql> select * from transaksi; no_fak tanggal Ko_plgn 001 002 007 101 102 101 2005-12-30 2005-12-30 2006-12-15 3 rows in set (0.00 sec) mysql> select * from detrans; no_fak ko_brg jlh_brg 007 B21 1 rows in set (0.00 sec) Administrasi User 2
  • 14. 14 •Login melalui username root c:xamppmysqlbin>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) values('localhost', –> 'ti..cb1',password('ti..cb1'),’Y’,’Y’); haknya hanya select dan insert ke semua database mysql> flush privileges; menyesuaikan/menerapkan perubahan user name dan privilege(hak) pada server MySQL untuk pengujian mysql> quit; c:xamppmysqlbin >mysql –u ti..cb1 –p Enter password: *******
  • 15. 15 •Merubah username dan password mysql> update user set user='ti..ak1', password= –> password('ti..ak1') where user='ti..cb1'; login kembali melalui user root dan gunakan database mysql •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) values('localhost','pjual', –> 'ti..ak2','Y',’Y’); haknya hanya select dan delete ke semua tabel pada database pjual •Menambah hak (insert dan update) mysql> update db set insert_priv='Y', –> update_priv=’Y’ where user='ti..ak2' and –> db='pjual'; haknya insert dan update ke semua tabel pada database 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) 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 haknya hanya select dan insert ke tabel barang pada database pjual
  • 16. 16 mysql> insert into user(host, user, password) –> values('localhost','ti..ak4', –> password('ti..ak4')); mysql> –> –> –> insert into tables_priv(host, db, user, haknya hanya select dan insert ke kolom table_name,column_priv) kode pada tabel barang database pjual values('localhost','pjual','ti..ak4','barang', 'select,insert'); mysql> –> –> –> insert into columns_priv(host, db, user, table_name, column_name, column_priv) values('localhost','pjual','ti..ak4','barang', 'kode','select,insert'); •Menambah hak (update) mysql> update tables_priv set column_priv= –> 'select,insert,update' where user='ti..ak4' –> and db='pjual' and table_name='barang'; mysql> –> –> –> update columns_priv set column_priv= 'select,insert,update' where 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> –> mysql> –> mysql> mysql> delete from columns_priv where user='ti..ak4'; delete from tables_priv where user='ti..ak4'; delete from db where user='ti..ak4'; delete from user where user='ti..ak4'; Administrasi User dengan Grant dan Revoke
  • 17. 17 (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)
  • 18. 18 –> 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:xamppmysqlbin >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:xamppmysqlbin >mysqldump -u root -p pjual > c:ti..bpjual •Menyalin struktur tabel
  • 19. 19 c:xamppmysqlbin >mysqldump --no-data -u root -p pjual > c:ti..bpjuals •Menyalin data saja c:xamppmysqlbin >mysqldump -t -u root -p pjual > c:ti..bpjuald •Menyalin struktur dan data tabel tertentu c:xamppmysqlbin >mysqldump -u root -p pjual barang > c:ti..rbarang3 c:xamppmysqlbin >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:xamppmysqlbin >mysql -u root -p rbpjual < c:ti..bpjual (catatan : rbpjual berisi struktur dan data) mysql> create database rsdpjual; c:xamppmysqlbin >mysql -u root -p rsdpjual < c:ti..bpjuals (catatan : bpjuals berisi struktur tabel saja) c:xamppmysqlbin >mysql -u root -p rsdpjual < c:ti..bpjuald (catatan : bpjuald berisi data saja) mysql> create database brpjual; c:xamppmysqlbin >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:xamppmysqlbin >mysqladmin -u root -p create spjual •Menyalin database ke server localhost c:xamppmysqlbin >mysqldump -u root -p pjual | (sumber/asal) mysql --host=localhost --user=root --password=positronb spjual (tujuan) atau c:xamppmysqlbin >mysqldump --user=root --password=positronb pjual | mysql --host=localhost -u root -p spjual •Membuat database pada server lain c:xamppmysqlbin >mysqladmin --host=192.168.0.6 -u positron -p create slpjual •Menyalin database ke server lain c:xamppmysqlbin >mysqldump -u root -p pjual | (sumber/asal) mysql --host=192.168.0.6 --user=positron --password=positron slpjual (tujuan) atau c:xamppmysqlbin >mysqldump --user=root --password=positronb pjual | mysql --host=192.168.0.6 -u positron -p slpjual