Wednesday, August 26, 2009

basis data

Koneksi ke database MySQL
Koneksi ke server lokal (localhost)
c:>mysql –u nm_user –p
Enter Password : **********
Untuk user tanpa password :
c:>mysql –u nm_user
Koneksi ke server lain

c:>mysql –h ip_addr_server –u nm_user –p
Enter Password : **********
Melihat status koneksi (current_user, current_db, port, versi server dsb)
mysql>status;
Keluar dari prompt mysql>
mysql>quit;
Administrasi database meliputi
Administrasi data
meliputi : database, table, field dan record
Administrasi user dan hak akses user meliputi : pembuatan user dan password, seting privileges user
SQL - DDL
Data Definition Languange
Instruksi-instruksi SQL yang digunakan untuk membentuk dan memanipulasi struktur obyek-obyek dalam server (Database, table dan field)

Instruksi-instruksi DDL (1)
Membuat database
mysql> create database nama_db;
Menghapus database
mysql> drop database nama_db;
Melihat semua database
mysql> show databases;
Masuk ke sebuah database
mysql> use nama_db;


Instruksi-instruksi DDL (2)
Membuat table
mysql> create table (field_nm1 data_type,
field_nm2 data_type, field_nm3 data_type);
Menghapus table
mysql> drop table nama_table;
Mengganti nama table
mengganti 1 table
mysql> rename table old_table to new_table;
mengganti nama > 1 table
mysql> rename table old_table to backup_table, new_table to old_table

DDL – Editing table (1)
Mengubah nama table
mysql> alter table t2 rename t2_2;
Mengubah nama field
mysql> alter table t1 change field_a field_b int;
Menambah field
mysql> alter table t1 add f1 varchar(30);
Menghapus field
mysql> alter table t2 drop column c, drop column d;

DDL – Editing table(2)
Mengubah tipe data field
mysql> alter table t1 change f1 f1 bigint not null;
atau
mysql> alter table t1 modify f1 bigint not null;
Menambah constraint pada field
mysql> alter table t1 add index (f1);
mysql> alter table t1 add primary key (f1);
Menghapus constraint pada field
mysql> alter table t1 drop primary key;
mysql> alter table t1 drop index nm_index;



Monitoring struktur table
Melihat struktur field sebuah table
mysql> use db_name;
mysql> describe table_nm;



SQL - DML
DML (Data Manipulation Languange)
Instruksi-instruksi SQL yang digunakan untuk memanipulasi data/record pada sebuah table

Terdiri dari :
- menampilkan data : select
- menambah data : insert
- mengubah data : update
- menghapus data : delete





DML – select statement
Digunakan untuk menampilkan data (retrieve data)
Format umum
mysql> select f1,f2,f3 from t1;
sorting data :
mysql> select f1,f2,f3 from t1 order by f1;
Menampilkan semua field
mysql> select * from t1;
Membatasi jumlah data yang ditampilkan
mysql> select * from t1 limit 5;
Klausa where
mysql> select * from t1 where [kriteria1] and [kriteria2] order by f1;

DML – select (2)
menampilkan data agregasi
mysql>select pegawai, max(gaji) from t1
group by user;
mysql>select pegawai, max(gaji) from t1
group by user having max(gaji)>10;

menampilkan data relasi lebih dari 1 table
instruksi join
mysql>select * from table1,table2 where table1.id=table2.id;
mysql>select * from table1 left join table2 on table1.id=table2.id;





DML – select (3)
Tanpa referensi ke table tertentu
mysql>select 1+1;
à 2
Mereferensikan table dengan nama lain
mysql>select t1.nip, t1.nama, t2.gaji from pegawai as t1, info as t2 where t1.nip = t2.nip;
mysql>select t1.nip, t1.nama, t2.gaji from pegawai t1,info t2 where t1.nip = t2.nip;




DML – insert statement
Digunakan untuk menambah data
Format umum
mysql>insert into t1 (f1,f2,f3) values (val1,val2,val3);
insert ke semua field :
mysql>insert into t1 values (val1,val2,val3);

DML – update statement
Digunakan untuk mengedit data
Format umum
mysql>update t1 set f1=value;
edit beberapa field
mysql>update t1 set f1=value1, f2=value2,f3=value3;

DML – delete statement
Digunakan untuk menghapus data
Format umum
hapus semua record
mysql>delete from t1;
hapus record dengan kriteria tertentu
mysql>delete from t1 where [kriteria];

Administrasi user
1.SQL - DCL (Data Control Languange)
yakni grant dan revoke
2. Menggunakan statement create user
3. Mengakses table user di db mysql
dengan instruksi insert, update dan delete Setiap manipulasi table user, harus diikuti dengan instruksi :
mysql> flush privileges;
flush privileges :
menginstruksikan mysql untuk membaca ulang table user
mysql> INSERT INTO user SET Host='localhost',User='admin',
-> Reload_priv='Y', Process_priv='Y';
mysql> INSERT INTO user (Host,User,Password)
-> VALUES('localhost','dummy','');
mysql> FLUSH PRIVILEGES;
DCL - Grant statement
Digunakan untuk membuat user sekaligus memberikan ijin akses user tersebut.
Format umum :
mysql>grant [ijin akses] on [db_name.table_nm] to ‘[user]’ identified by ‘[password]’;
create user [tanpa password]
mysql>grant [ijin akses] on [db_name.table_nm] to ‘[user]’;
cara ini tidak dapat dilakukan pd Server yg beropsi strict mode
create user [dengan opsi grant]
mysql>grant [ijin akses] on [db_name.table_nm] to ‘[user]’ with grant option;
Opsi with grant option,user tersebut diperbolehkan menggunakan statement grant (dapat meng-administrasi user),sejauh mana opsi tsb ?


Format nama user
Cara penulisan format user_nm :
‘nama_user’@’[lokasi]’

Contoh :
koneksi dari lokal : ‘andi’@’localhost’
koneksi dari all client (remote) : ‘rudi’@’%’
koneksi dari client tertentu : ‘amir’@’192.168.0.52’

Catatan : 1 nama user dapat di-set untuk 1 atau lebih lokasi (misalkan lokal dan remote)
Contoh :
‘root’@’localhost’ dan ‘root’@’%’
Contoh penerapan instruksi Grant (1)
create user dengan ijin akses penuh ke sebuah database
mysql>grant all privileges on datauser.* to ‘rudi’@’%’ identified by ‘bond007’;
atau
mysql>grant all on datauser.* to ‘rudi’@’%’ identified by ‘bond007’;
create user dengan ijin akses tertentu ke sebuah table :
mysql>grant select,insert,update on datauser.user to ‘edi’@’%’;
Contoh penerapan instruksi Grant (2)
create user tanpa ijin akses apapun
mysql>grant usage on *.* to ‘ali’@’%’ ;
opsi usage digunakan jika di inginkan seting privileges dilakukan setelah proses create user.
Opsi ini sama dengan instruksi :
mysql>create user ‘ali’@’%’ ;
Statement create user
Digunakan untuk membuat user tanpa ijin akses apapun
Format umum :
mysql>create user ‘[user_nm]’ identified by ‘[password]’;
Tanpa password :
mysql>create user ‘[user_nm]’ ;


Pengetesan hasil statement grant (1)
Melihat seluruh user yang terdaftar
mysql>use mysql
mysql>select host, user,password from user;
Melihat seting opsi grant seorang user
mysql>show grants for ‘ali’@’localhost’;
Melihat opsi grant untuk seluruh user mysql>use information_schema;
mysql>select * from user_privileges;
Catatan :
Hanya dapat dilakukan oleh root atau user dengan with grant option atau user dengan grant all on *.*
Pengetesan hasil statement grant (2)
Mengecek seting grant seorang user :
1.Login sebagai user tsb.
2.Lakukan monitoring database :
mysql> show databases;
3.Seharusnya db yang tampil adalah db information_schema dan db yang telah kita grant-kan ke user tsb.
4.Untuk mengecek privileges yang lebih spesifik, misalkan perintah select, update, insert, delete, apa berfungsi ? maka lakukan instruksi-instruksi SQL tersebut pada db yang di-grant-kan.
Seting password
Mengganti password untuk current user
mysql>set password=password(‘pwd_baru’);
Mengganti password untuk user lain :
mysql>set password for ‘ali’@’localhost’=password(‘pwd_baru’);
Menghapus ijin akses user
Digunakan statement DCL-revoke
Format umum :
mysql>revoke [privileges] on db_nm.table_nm from ‘[user_nm]’;
Contoh :
mysql>revoke drop,create,alter,update,delete on coba_db.* from ‘ali’@’localhost’;
mysql>revoke all on coba_db.* from ‘budi’@’localhost’;


rename user dan drop user
rename user digunakan untuk mengganti nama user
drop user digunakan untuk menghapus user
Format umum instruksi rename user
mysql>rename user ‘[old_user_nm]’ to ‘[new_user_nm]’;
Contoh :
mysql>rename user ‘ali’@’localhost’ to ‘ali07’@’localhost’;
Format umum instruksi drop user
mysql>drop user ‘[user_nm]’;
Contoh :
mysql>drop user ‘ali’@’localhost’;

No comments: