Social Icons

Pages

Tampilkan postingan dengan label Postgresql. Tampilkan semua postingan
Tampilkan postingan dengan label Postgresql. Tampilkan semua postingan

Selasa, 05 November 2013

Setup & Instalasi PostgreSQL

A. INSTALASI POSTGRESQL :

1. Login kedalam sistem linux :
sani@sanilaptop:~$

2. Masuk ke dalam direktori Downloads :
sani@sanilaptop:~$ cd Downloads/

3. Pastikan paket postgresql-9.3.1.tar.gz sudah tersedia atau belum pada direktori Downloads :
sani@sanilaptop:~/Downloads$ ls

1385515_317577291718559_1641401235_n.jpg
7.Manajemen Memory.pdf
AJP.gif
ajpp.png
Bab_III.pdf
BBM v1.0.0.70.-(androidesia-blogspot-com.apk
bootstrap-3.0.0.zip
contact.html~
elegant_green_vcard-PSD_template.zip
free-template-Whirlpool_site
grand design
laporan_worksheet3.odt
Makalah Lingkungan Manajemen.docx
MANAJEMEN_MEMORI.ppt
'Marry Your Daughter' by Brian McNight.html
mnjmemori-up.pdf
Pengantar Jaringan komputer.odp
postgresql-9.3.1.tar.gz
Presentasi MySQL.pdf
tugas-akutansi-3a.odt
USER_MANAJEMEN.pdf
USER_ROLE_GROUP.pdf

4. Urai paket tarball postgresql-9.3.0.tar.gz hasil Downloads :
sani@sanilaptop:~/Downloads$ tar -xzvf postgresql-9.3.1.tar.gz -C /home/sani/

5. Masuk kedalam direktori hasil urai paket tarball postgresql-9.3.0.tar.gz yaitu direktori postgresql-9.3.0 :
sani@sanilaptop:~$ cd postgresql-9.3.1/

6. Lihat seluruh isi direktori postgresql-9.3.1 :
sani@sanilaptop:~/postgresql-9.3.1$ ls

aclocal.m4 config configure configure.in contrib COPYRIGHT doc GNUmakefile.in HISTORY INSTALL Makefile README src
7. Jalankan perintah berikut ini untuk configure PostgreSQL-9.3 yang akan diinstall dalam direktori /home/siswa/pg93 ( pastikan direktori pg93 belum pernah ada )
sani@sanilaptop:~/postgresql-9.3.1$ ./configure–prefix=/home/sani/pg931

Jika tidak berhasil, maka harus meng-install libreadline6 terlebih dahulu “

8. Install paket library yang dibutuhkan (libreadline6) :
sani@sanilaptop:~/postgresql-9.3.1$ sudo apt-get install libreadline6 libreadline6-dev

[sudo] password for sani:
Reading package lists... Done
Building dependency tree
...
...

Jika instalasasi'a gagal, maka harus menginstall library lainnya seperti sudo apt-get install zlib1g-dev

jika sudah make dan siap di install, maka lanjutkan untuk menginstall make

9. Jalankan perintah compile source program PostgreSQL :
sani@sanilaptop:~/postgresql-9.3.1$ make

10. Instalasi PostgreSQL harus dilakukan oleh super user dengan menjalankan perintah sudo :
sani@sanilaptop:~/postgresql-9.3.1$ sudo make install

make[1]: Leaving directory `/home/sani/postgresql-9.3.1/config'
PostgreSQL installation complete.

Jika mendapatkan pesan seperti diatas maka binary program PostgreSQL telah sukses
diinstall dikomputer anda dalam direktori /home/siswa/pg93


B. DIREKTORI CLUSTER DATA

1. Buat direktori cluster data yang didalamnya akan tersimpan file-file konfigurasi dan binary basis data dari sistem database PostgreSQL :
sani@sanilaptop:~$ /home/siswa
sani@sanilaptop:~$ mkdir pgdata

2. Jalankan perintah inisialisasi cluster data di direktori pgdata :
sani@sanilaptop:~$ /home/sani/pg931/bin/initdb -D pgdata

The files belonging to this database system will be owned by user "sani".
This user must also own the server process
...
...
Success. You can now start the database server using:

/home/sani/pg931/bin/postgres -D pgdata
or
/home/sani/pg931/bin/pg_ctl -D pgdata -l logfile start

3. Jalankan service PostgreSQL :
sani@sanilaptop:~$ /home/sani/pg931/bin/pg_ctl -D /home/sani/pgdata/ -l /home/sani/pgsani@sanilaptop:data/logfile.log start
server starting

4. Cek status service PostgreSQL :
sani@sanilaptop:~$ /home/sani/pg931/bin/pg_ctl -D /home/sani/pgdata/ -l /home/sani/pgsani@sanilaptop:data/logfile.log status
pg_ctl: server is running (PID: 5224)
/home/sani/pg931/bin/postgres "-D" "/home/sani/pgdata"

5. Stop service PostgreSQL :
sani@sanilaptop:~$ /home/sani/pg931/bin/pg_ctl -D /home/sani/pgdata/ -l /home/sani/pgsani@sanilaptop:data/logfile.log status
waiting for server to shut down.... done
server stopped


C. SETTING KONEKSI & UBAH PORT

1. Ubah setingan koneksi database agar bisa diakses lewat komputer lokal, dengan cara mengedit file pg_hba.conf
sani@sanilaptop:~$ gedit pgdata/pg_hba.conf

- aktifkan koneksi dengan membuka konfigurasi listen_addreses dengan menghapus tanda pagar listen_addresses = 'localhost'
- ubah port cluster postgresql anda di port 5454 (hilangkan tanda pagar dan ubah menjadi 5454)
port = 5454

2. restart service PostgreSQL :
sani@sanilaptop:~$ /home/sani/pg931/bin/pg_ctl -D /home/sani/pgdata/ -l /home/sani/pgsani@sanilaptop:data/logfile.log restart
waiting for server to shut down.... done
server stopped
server starting

3. Login ke database template1 :
sani@sanilaptop:~$ /home/sani/pg931/bin/psql template1 -h localhost -p 5454

psql (9.3.1)
Type "help" for help.

template1=#

4.Seting password super user sani :
template1=# alter user sani with password 'password';
ALTER ROLE

5. Keluar dari prompt postgresql
template1=# \q


D. AKTIFKAN KONFIGURASI DENGAN PASSWORD

1. Buka file konfigurasi pg_hba.conf dan ubah dibagian terakhir file method otentikasi dari trust menjadi password :
sani@sanilaptop:~$ gedit pgdata/pg_hba.conf

# TYPE DATABASE USER ADDRESS METHOD

# "local" is for Unix domain socket connections only
local all all password
# IPv4 local connections:
host all all 127.0.0.1/32 password
# IPv6 local connections:
host all all ::1/128 password

2. Restart Service PostgreSQL :
sani@sanilaptop:~$ /home/sani/pg931/bin/pg_ctl -D /home/sani/pgdata/ -l /home/sani/pgdata/logfile.log restart

waiting for server to shut down.... done
server stopped
server starting

E. BUAT USER POSTGRESQL

1. Login ke database server :
sani@sanilaptop:~$ /home/sani/pg931/bin/psql template1 -h localhost -p 5454
Password: (password sani 'password' )
psql (9.3.1)
Type "help" for help.

template1=#

2.Buat user ahmad dengan password '1234':

template1=# CREATE USER ahmad WITH PASSWORD '1234' CREATEDB ;
CREATE ROLE
template1=#\q

3. User ahmad buat database dblatihan :
sani@sanilaptop:~$ /home/siswa/pg93/bin/createdb dblatihan -U ahmad -h localhost -p 5454


4. User ahmad login kedatabase dblatihan :
sani@sanilaptop:~$ /home/sani/pg931/bin/psql dblatihan -U ahmad -h localhost -p 5454
Password for user ahmad:
psql (9.3.1)
Type "help" for help.

dblatihan=> \q


=== Membuat file pg931_start.sh agar mudah saat login sehingga tidak panjang ===
sani@sanilaptop:~$ gedit pg931_start.sh

isinya :

/home/sani/pg931/bin/pg_ctl -D /home/sani/pgdata/ -l /home/sani/pgdata/logfile.log start




=== Membuat file pg931_restart.sh agar mudah saat restart service sehingga tidak panjang ===
sani@sanilaptop:~$ gedit pg931_restart.sh

isinya :

/home/sani/pg931/bin/pg_ctl -D /home/sani/pgdata/ -l /home/sani/pgdata/logfile.log restart

=== Membuat file pg931_stop.sh agar mudah saat menghentikan service sehingga tidak panjang ===
sani@sanilaptop:~$ gedit pg931_stop.sh

isinya :

/home/sani/pg931/bin/pg_ctl -D /home/sani/pgdata/ -l /home/sani/pgdata/logfile.log stop

=== Memberi Permision kepada seluruh yang mengandung pg931 ===

sani@sanilaptop:~$ chmod 755 pg931_*

Selasa, 22 Oktober 2013

Worksheet DML (Data Manipulation Language) Part 2


1) Tampilkan 2 data produk termahal

dbkoperasi=# select * from produk order by harga desc limit 2;

2) Tampilkan produk yang paling murah

dbkoperasi=# select * from produk order by harga asc limit 1;

3) Tampilkan customer yang paling muda

dbkoperasi=# select nama, tgl_lahir, age(current_date, tgl_lahir) from customer order by tgl_lahir desc limit 1;

4) Tampilkan customer yang paling tua

dbkoperasi=# select nama, tgl_lahir, age(current_date, tgl_lahir) from customer order by tgl_lahir asc limit 1;

5) Berapa jumlah customer yang tahun lahirnya 2005
    
      dbkoperasi=# select count(id) as jumlah_customer from customer where date_part('year', tgl_lahir) = 2005;

6) Berapa jumlah data custumer perempuan yang tempat lahirnya di Jakarta

     dbkoperasi=# select count(id) as jumlah_customer from customer where gender = 'P' and alamat = 'Jakarta';
      
      dbkoperasi=# select count(id) as jumlah_customer from customer where gender = 'P' and upper(alamat) = 'JAKARTA';

      dbkoperasi=# select count(id) as jumlah_customer from customer where gender = 'P' and alamat = 'Jakarta';

7) Berapa jumlah total stok semua produk yang harganya dibawah 10rb

    dbkoperasi=# select sum(stok) as total_stok from produk where harga < 10000;

8) Ada berapa produk yang harganya diatas 1jt

    dbkoperasi=# select count(id) as jumlah_produk from produk where harga > 1000000;

9) Ada berapa produk yang mempunyai kode awal K

    dbkoperasi=# select count(id) as kode_produk from produk where kode ilike 'K%' ;

10) Berapa harga rata-rata produk yang diatas 1jt
     
       dbkoperasi=# select avg(harga) as harga_produk from produk where harga > 1000000;

11) Tampilkan jumlah stok yang paling besar

     dbkoperasi=# select max(stok) as jumlah_stok from produk;

12) Ada berapa produk yang stoknya kurang

     dbkoperasi=# select count(id) as jumlah_stok from produk where stok < min_stok;

13) Berapa total asset dari keseluruhan produk

     dbkoperasi=# select sum(harga*stok) as asset from produk;

14) berapa rata-rata stok yang harganya diantara 1jt sampa 4 jt

      dbkoperasi=# select avg(stok) as rata2_stok_produk from produk where harga between 1000000 and 4000000;

15) Tampilkan jumlah statistik customer berdasarkan tempat kelahiran customer 
 
      dbkoperasi=# select distinct(alamat) as kota_kelahiran from customer 

16) Tampilkan jumlah statistik produk berdasarkan jenis produk

       dbkoperasi=# select jenis_produk_id, count(id) as jumlah from produk group by jenis_produk_id;

Worksheet DML (Data Manipulation Language) Part 1


1) Tampilkan data produk yang stoknya 10 dan 20
dbkoperasi=# select * from produk where stok = 10 or stok = 20 ;

2) Tampilkan data produk yang harganya kurang dari 1jt
tetapi lebih dari 500rb

dbkoperasi=# select * from produk where harga < 1000000 and harga > 500000;

3) Tampilkan data produk yang harus segera ditambah
stoknya

dbkoperasi=# select nama, stok, min_stok from produk where stok < min_stok;

4) Tampilkan data customer mulai dari yang paling muda

dbkoperasi=# select nama, tgl_lahir from customer order by tgl_lahir desc;

5) Tampilkan customer yang lahirnya di Jakarta dan gendernya perempuan

dbkoperasi=# select * from customer where alamat = 'Jakarta' and gender = 'P' ;

6) Tampilkan customer yang ID customernya 2,4 dan 6

dbkoperasi=# select * from customer where id in (2,4,6);

7) Tampilkan data customer yang tempat lahirnya di medan dan di semarang

dbkoperasi=# select * from customer where alamat in ('Medan','Semarang');

8) Tampilkan data customer yang lahirnya antara tahun 2003 sampai 2006

dbkoperasi-# where date_part('year',tgl_lahir) between 2003 and 2006;

9) Tampilkan data customer yang lahirnya tahun 2005

dbkoperasi=# select * from customer where date_part ('year',tgl_lahir) = 2005;

10) Tampilkan data customer yang bulan ini berulang tahun

dbkoperasi=# select id, nama,tgl_lahir from customer where date_part('month',tgl_lahir) dbkoperasi-# = date_part('month',current_date);

11) Tampilkan data nama customer dan umurnya

dbkoperasi=# select id, nama,tgl_lahir, age(current_date,tgl_lahir) from customer order by tgl_lahir desc;

12) Tampilkan produk yang kode awalnya huruf K dan huruf M

dbkoperasi=# select * from produk where kode ilike 'k%' or kode ilike 'm%';

13) Tampilkan produk yang kode awalnya bukan huruf M

dbkoperasi=# select * from produk where kode not like 'M%' ;

14) Tampilkan produk-produk kulkas

dbkoperasi=# select * from produk where nama ilike '%kulkas%';

15) Tampilkan customer mengandung huruf 'SA'

dbkoperasi=# select * from customer where nama ilike '%sa%';

16) Tampilkan customer yang emailnya yahoo

dbkoperasi=# select * from customer where email ilike '%yahoo%' ;

17) Tampilkan customer yang emailnya bukan gmail

dbkoperasi=# select * from customer where email not like '%gmail%' ;

18) Tampilkan customer yang lahirnya bukan di Jakarta dan
mengandung huruf 'fa'

dbkoperasi=# select id, nama, alamat from customer where alamat not like 'Jakarta' and nama ilike '%fa%';

Belajar Postgresql (Part 1)

Hmmm,,,sudah lama tidak mendarat disini jadi sedikit bingung merangkai kata,he
Oke baiklah...kalau sebelumnya kita belajar database dengan menggunakan lampp naah sekarang saya mau berbagi tentang belajar database bersama postgresql,,,untuk cara installasiny nanti menyusul yaaa,,,he

Monggo silakan di simak :

cara mengaktifkan postgresql :
sudo service postgresql start

cara men-stop postgresql :
sudo service postgresql stop

cara mengecek postgresql jalan atau tidak :
sudo netstat -tanp | grep postgres

cara login :
sudo su postgres

cara login :
sudo psql -U postgres template1

cara melihat database yang tersedia :
\l

cara keluar dari database :
\q

cara mengganti password :
ALTER USER postgres with password 'password';

cara membuat database :
createdb NamaDatabase -U postgres = creatdb dblatihan -U postgres

cara masuk kedalam database :
psql -U postgres NamaDatabase = psql -U postgres dblatihan

cara pindah database :
\c namadatabase

membuat table (agama):
dblatihan=# CREATE TABLE agama (
dblatihan(# id integer primary key,
dblatihan(# nama varchar(20)
dblatihan(# );

melihat tabel yg ada dalam database tertentu :
\dt

melihat tabel yg ada dalam tabel tertentu :
\d nama_tabel


cara mengisi isi tabel :
dblatihan=# INSERT INTO agama VALUES (1,'Islam');
dblatihan=# INSERT INTO agama VALUES (2,'Kristen');
dblatihan=# INSERT INTO agama VALUES (3,'Khatolik');

cara melihat isi dari tabel agama :
dblatihan=# SELECT * FROM agama;
membuat tabel pegawai :
dblatihan=# CREATE TABLE pegawai (
dblatihan(# id serial primary key,
dblatihan(# nim varchar(10) unique not null,
dblatihan(# nama varchar(40) not null,
dblatihan(# idagama integer references agama(id)
dblatihan(# );

cara mengisi isi tabel pegawai:
dblatihan=# INSERT INTO pegawai VALUES (default,'001','sani',1);
dblatihan=# INSERT INTO pegawai (nim,nama,idagama)
VALUES ('002','zulvi',1);INSERT 0 1

cara melihat isi dari tabel pegawai :
dblatihan=# SELECT * FROM pegawai;

sebelum membackup database masuk dulu ke :
postgres@sanilaptop:/home/sani$ cd /var/lib/postgresql/

cara back up database :
postgres@sanilaptop:~$ pg_dump -U postgres dblatihan > dblatihan.sql

cara melihat data hasil backup :
postgres@sanilaptop:~$ ls

cara me restore dbkoperasi kedalam dblatihan.sql :
postgres@sanilaptop:~$ pg_dump -U postgres dbkoperasi < dblatihan.sql

kemudian masuk kedalam dbkoperasi :
postgres@sanilaptop:~$ psql -U postgres dbkoperasi

melihat isi tabel:
dbkoperasi=# \d

oKE,,,sekian dulu yaaa,mari sharing bersama... ^_^



#Fighter

/--------- Latihan Worksheet 1 Postgresql ---------/


1. Buat Database & Tabel

mysql> create database dbkaryawan;

mysql> use dbkaryawan;

mysql> create table departemen (
    -> id integer auto_increment primary key,
    -> kode varchar(10),
    -> nama varchar(45),
    -> alamat varchar(45),
    -> budget double,
    -> nipmanager varchar(10)
    -> );

mysql> create table pegawai (
    -> nip varchar(10) primary key,
    -> nama varchar(45),
    -> tmp_lahir varchar(45),
    -> tgl_lahir date,
    -> cv text,
    -> anak integer,
    -> gaji_pokok double,
    -> tunjangan double,
    -> departemen_id int,
    -> foreign key (departemen_id) references departemen(id)
    -> );


2. Untuk simulasi testing akses data, isi record departemen dengan 5 record dan     pegawai 10 record

mysql> insert into departemen values (default, 'FA', 'Finance Accounting', 'Jl. Margonda Raya No. 522', 100000000, '99901123');

mysql> insert into pegawai values ('88210291', 'Achmad Ilham', 'Jakarta', '1985-09-02', 'Software Engineer', 1, 2000000, 300000, 1);


3. Database karyawan dan isinya hanya dapat diakses oleh user satpamdb dari server database saja 

mysql> grant all privileges on dbkaryawan.* to satpamdb@localhost identified by 'satpamdb';

mysql> flush privileges;


4. Database karyawan dan isinya dapat diakses melalui jaringan dari komputer managerhrd yang berada diruang manager HRD

mysql> grant all privileges on dbkaryawan.* to managerhrd@192.168.1.8 identified by 'managerhrd';

mysql> flush privileges;


5. Terdapat beberapa staff HRD yang dapat mengakses database dari komputer masing-masing melalui jaringan komputer, dengan rincian tugas:

- staff1 yang bertugas memaintain data pegawai dan tidak bisa mengakses data departemen :

    mysql> grant all privileges on dbkaryawan.pegawai to staff1@192.168.1.2 identified by 'staff1';

- staff2 yang bertugas memaintain data departemen dan tidak bisa mengakses data pegawai :
    
    mysql> grant all privileges on dbkaryawan.departemen to staff2@192.168.1.3 identified by 'staff2';

- staff3 hanya dapat melihat isi data pegawai : nip,nama,tgl_lahir,tmp_lahir dan data departemen : nama,alamat,nipmanager

    mysql> grant select(nip,nama,tgl_lahir,tmp_lahir) on dbkaryawan.pegawai to staff3@192.168.1.4 identified by 'staff3';

    mysql> grant select(nama,alamat,nipmanager) on dbkaryawan.departemen to staff3@192.168.1.4 identified by 'staff3';

- staff4  mendapat tugas untuk menambah data, mengubah data, melihat seluruh data pegawai dan tidak bisa menghapus data pegawai

    mysql> grant insert,update,select on dbkaryawan.pegawai to staff4@192.168.1.5 identified by 'staff4';