SlideShare a Scribd company logo
1 of 19
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
• 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
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
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

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
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
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
•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
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
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
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

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

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
•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

•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
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
(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
–> 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
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

More Related Content

What's hot (19)

Fungsi mysql di php adalah untuk mengambil data di mysql
Fungsi mysql di php adalah untuk mengambil data di mysqlFungsi mysql di php adalah untuk mengambil data di mysql
Fungsi mysql di php adalah untuk mengambil data di mysql
 
Stored procedure
Stored procedureStored procedure
Stored procedure
 
Implementasi ajax 25 okt2012
Implementasi ajax 25 okt2012Implementasi ajax 25 okt2012
Implementasi ajax 25 okt2012
 
WEB II PHP 04
WEB II PHP 04WEB II PHP 04
WEB II PHP 04
 
Dasar dasar Database
Dasar dasar DatabaseDasar dasar Database
Dasar dasar Database
 
Oracle kisi2
Oracle kisi2Oracle kisi2
Oracle kisi2
 
WEB II PHP 03
WEB II PHP 03WEB II PHP 03
WEB II PHP 03
 
Modul 1
Modul 1Modul 1
Modul 1
 
Praktikum Pengenalan Dasar Database
Praktikum Pengenalan Dasar DatabasePraktikum Pengenalan Dasar Database
Praktikum Pengenalan Dasar Database
 
SQL database client server
SQL database client serverSQL database client server
SQL database client server
 
Modul framework code igniter
Modul framework code igniterModul framework code igniter
Modul framework code igniter
 
01. pengelolaan database, tabel upload
01. pengelolaan database, tabel upload01. pengelolaan database, tabel upload
01. pengelolaan database, tabel upload
 
Mengakses data dari database my sql di listview dengan json
Mengakses data dari database my sql di listview dengan jsonMengakses data dari database my sql di listview dengan json
Mengakses data dari database my sql di listview dengan json
 
WEB II PHP 05
WEB II PHP 05WEB II PHP 05
WEB II PHP 05
 
Batching php
Batching phpBatching php
Batching php
 
Mysql
MysqlMysql
Mysql
 
Pengantar sql
Pengantar sqlPengantar sql
Pengantar sql
 
Blog 10
Blog 10Blog 10
Blog 10
 
Modul%20php%20 mysql
Modul%20php%20 mysqlModul%20php%20 mysql
Modul%20php%20 mysql
 

Similar to Modul mysql5 (20)

Basis data 2
Basis data 2Basis data 2
Basis data 2
 
My sql
My sqlMy sql
My sql
 
Prak 2 pbd Soal dml dan select (share)
Prak 2 pbd   Soal dml dan select (share)Prak 2 pbd   Soal dml dan select (share)
Prak 2 pbd Soal dml dan select (share)
 
Mwdb
MwdbMwdb
Mwdb
 
Pengantar mysql
Pengantar mysqlPengantar mysql
Pengantar mysql
 
Cara Menghapus Table Di MySQL
Cara Menghapus Table Di MySQLCara Menghapus Table Di MySQL
Cara Menghapus Table Di MySQL
 
Menjalankan mysepe
Menjalankan mysepeMenjalankan mysepe
Menjalankan mysepe
 
Command promt p2
Command promt p2Command promt p2
Command promt p2
 
Pertemuan tentang DDL DML dan praktikum system basis data MYSQL
Pertemuan tentang DDL DML dan praktikum system basis data MYSQLPertemuan tentang DDL DML dan praktikum system basis data MYSQL
Pertemuan tentang DDL DML dan praktikum system basis data MYSQL
 
Contoh store procedure dan function
Contoh store procedure dan functionContoh store procedure dan function
Contoh store procedure dan function
 
Basis Data dengan MySQL
Basis Data dengan MySQLBasis Data dengan MySQL
Basis Data dengan MySQL
 
Membuat databases
Membuat databasesMembuat databases
Membuat databases
 
Kd4 fungsi fungsi agregasi
Kd4 fungsi fungsi agregasiKd4 fungsi fungsi agregasi
Kd4 fungsi fungsi agregasi
 
Bab 06-tabel
Bab 06-tabelBab 06-tabel
Bab 06-tabel
 
Perintah Dasar MySQL
Perintah Dasar MySQLPerintah Dasar MySQL
Perintah Dasar MySQL
 
Dasar-dasar MySQL
Dasar-dasar MySQLDasar-dasar MySQL
Dasar-dasar MySQL
 
Slide ppbd d3 pertemuan 3
Slide ppbd d3 pertemuan 3Slide ppbd d3 pertemuan 3
Slide ppbd d3 pertemuan 3
 
abd_01_2223.pdf
abd_01_2223.pdfabd_01_2223.pdf
abd_01_2223.pdf
 
FreeBSD Database Server
FreeBSD Database ServerFreeBSD Database Server
FreeBSD Database Server
 
Konsep dasar sistem basis data
Konsep dasar sistem basis dataKonsep dasar sistem basis data
Konsep dasar sistem basis data
 

More from Yang Terluka

Struktur teknik-komputer-dan-informatika
Struktur teknik-komputer-dan-informatikaStruktur teknik-komputer-dan-informatika
Struktur teknik-komputer-dan-informatikaYang Terluka
 
Struktur teknik telekomunikasi
Struktur teknik telekomunikasiStruktur teknik telekomunikasi
Struktur teknik telekomunikasiYang Terluka
 
Struktur kurikulum tkj
Struktur kurikulum tkjStruktur kurikulum tkj
Struktur kurikulum tkjYang Terluka
 
Struktur kurikulum tkj(1)
Struktur kurikulum tkj(1)Struktur kurikulum tkj(1)
Struktur kurikulum tkj(1)Yang Terluka
 
Spk p1-soal praktik kejuruan-13-14
Spk p1-soal praktik kejuruan-13-14Spk p1-soal praktik kejuruan-13-14
Spk p1-soal praktik kejuruan-13-14Yang Terluka
 
Soal ujian praktik kejuruan paket 1 3.doc
Soal ujian praktik kejuruan paket 1 3.docSoal ujian praktik kejuruan paket 1 3.doc
Soal ujian praktik kejuruan paket 1 3.docYang Terluka
 
Slide dkk01 modul_merakit_pc
Slide dkk01 modul_merakit_pcSlide dkk01 modul_merakit_pc
Slide dkk01 modul_merakit_pcYang Terluka
 
Silabus dasar-kejuruan
Silabus dasar-kejuruanSilabus dasar-kejuruan
Silabus dasar-kejuruanYang Terluka
 
Silabus c1 pemrograman dasar kelas x
Silabus c1 pemrograman dasar kelas xSilabus c1 pemrograman dasar kelas x
Silabus c1 pemrograman dasar kelas xYang Terluka
 
Sap sistem-operasi
Sap sistem-operasiSap sistem-operasi
Sap sistem-operasiYang Terluka
 
Rpp 10 1-instalasi_gui_dan_cli_-ok_blm_print
Rpp 10 1-instalasi_gui_dan_cli_-ok_blm_printRpp 10 1-instalasi_gui_dan_cli_-ok_blm_print
Rpp 10 1-instalasi_gui_dan_cli_-ok_blm_printYang Terluka
 
Rancang setting-ulang-keamanan-wan
Rancang setting-ulang-keamanan-wanRancang setting-ulang-keamanan-wan
Rancang setting-ulang-keamanan-wanYang Terluka
 
Program kerja kurikulum_2013-2014
Program kerja kurikulum_2013-2014Program kerja kurikulum_2013-2014
Program kerja kurikulum_2013-2014Yang Terluka
 
Program kerja kurikulum_2013-2014(1)
Program kerja kurikulum_2013-2014(1)Program kerja kurikulum_2013-2014(1)
Program kerja kurikulum_2013-2014(1)Yang Terluka
 
Peraturan pos-un-smpsma-smk-dan-unpk-tahun-2013
Peraturan pos-un-smpsma-smk-dan-unpk-tahun-2013Peraturan pos-un-smpsma-smk-dan-unpk-tahun-2013
Peraturan pos-un-smpsma-smk-dan-unpk-tahun-2013Yang Terluka
 
Penyusunan raport dan kkm
Penyusunan raport dan kkmPenyusunan raport dan kkm
Penyusunan raport dan kkmYang Terluka
 

More from Yang Terluka (20)

Struktur teknik-komputer-dan-informatika
Struktur teknik-komputer-dan-informatikaStruktur teknik-komputer-dan-informatika
Struktur teknik-komputer-dan-informatika
 
Struktur teknik telekomunikasi
Struktur teknik telekomunikasiStruktur teknik telekomunikasi
Struktur teknik telekomunikasi
 
Struktur kurikulum tkj
Struktur kurikulum tkjStruktur kurikulum tkj
Struktur kurikulum tkj
 
Struktur kurikulum tkj(1)
Struktur kurikulum tkj(1)Struktur kurikulum tkj(1)
Struktur kurikulum tkj(1)
 
Spk p1-soal praktik kejuruan-13-14
Spk p1-soal praktik kejuruan-13-14Spk p1-soal praktik kejuruan-13-14
Spk p1-soal praktik kejuruan-13-14
 
Soal ujian praktik kejuruan paket 1 3.doc
Soal ujian praktik kejuruan paket 1 3.docSoal ujian praktik kejuruan paket 1 3.doc
Soal ujian praktik kejuruan paket 1 3.doc
 
Slide dkk01 modul_merakit_pc
Slide dkk01 modul_merakit_pcSlide dkk01 modul_merakit_pc
Slide dkk01 modul_merakit_pc
 
Silabus dasar-kejuruan
Silabus dasar-kejuruanSilabus dasar-kejuruan
Silabus dasar-kejuruan
 
Silabus c1 pemrograman dasar kelas x
Silabus c1 pemrograman dasar kelas xSilabus c1 pemrograman dasar kelas x
Silabus c1 pemrograman dasar kelas x
 
Sil53
Sil53Sil53
Sil53
 
Sil9
Sil9Sil9
Sil9
 
Sil1
Sil1Sil1
Sil1
 
Sap sistem-operasi
Sap sistem-operasiSap sistem-operasi
Sap sistem-operasi
 
Rpp 10 1-instalasi_gui_dan_cli_-ok_blm_print
Rpp 10 1-instalasi_gui_dan_cli_-ok_blm_printRpp 10 1-instalasi_gui_dan_cli_-ok_blm_print
Rpp 10 1-instalasi_gui_dan_cli_-ok_blm_print
 
Routing
RoutingRouting
Routing
 
Rancang setting-ulang-keamanan-wan
Rancang setting-ulang-keamanan-wanRancang setting-ulang-keamanan-wan
Rancang setting-ulang-keamanan-wan
 
Program kerja kurikulum_2013-2014
Program kerja kurikulum_2013-2014Program kerja kurikulum_2013-2014
Program kerja kurikulum_2013-2014
 
Program kerja kurikulum_2013-2014(1)
Program kerja kurikulum_2013-2014(1)Program kerja kurikulum_2013-2014(1)
Program kerja kurikulum_2013-2014(1)
 
Peraturan pos-un-smpsma-smk-dan-unpk-tahun-2013
Peraturan pos-un-smpsma-smk-dan-unpk-tahun-2013Peraturan pos-un-smpsma-smk-dan-unpk-tahun-2013
Peraturan pos-un-smpsma-smk-dan-unpk-tahun-2013
 
Penyusunan raport dan kkm
Penyusunan raport dan kkmPenyusunan raport dan kkm
Penyusunan raport dan kkm
 

Modul mysql5

  • 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