Arsip ‘PostgreSQL’ Tag
Pilih mana distinct atau group by?
Tadi siang mecoba mencari daftar nama kota yg ada dlm tabel pelanggan dg query:
select distinct kota from pelanggan;
dari ratusan ribu record menghasilakan puluhan ribu baris dalam dua puluhan detik.
lalu saya coba:
select kota from pelanggan
group by kota;
yg ini sekitar dalam dua detik!
wuich! 10x lebih cepat.
PostgreSQL: Disable – Enable Trigger
Diarsipkan di bawah: Bukan Linux, Linux, Sembarang Linux, Umum | Tag: PostgreSQL
Komentar (3) Di dalam tabel “tableq” yg saya buat ada trigger “BEFORE UPDATE” dg nama “on_update” yg bertujuan untuk memberikan nilai tertentu pd sebuah field dlm tabel itu sendiri secara otomatis, yakni dlm fungsi “pls_update_the_field“.
Namun suatu ketika saya ingin mengubah (update) harus tanpa menjalankan “on_update“. Cara paling “gampang” adalah me-comment perintah-2 dlm. fungsi “pls_update_the_field” dan menyisakan “return new“.
Cara lain adalah dg perintah SQL:
ALTER TABLE tabelq DISABLE TRIGGER on_update;
Dg. perintah di atas, saya tidak perlu lagi mengubah isi fungsi “pls_update_the_field“. Dan untuk mengembalikannya:
ALTER TABLE tabelq ENABLE TRIGGER on_update;
Pengantar PostgreSQL #2
Diarsipkan di bawah: Linux, Sembarang Linux, Ubuntu | Tag: ajax, Linux, PHP, postgre, PostgreSQL, Tutorial, Ubuntu
Komentar (3) SQL
Membuat tabel
# CREATE TABLE teriakannya (
nama VARCHAR(60) NOT NULL,
situs VARCHAR(256),
pesan TEXT NOT NULL,
waktu TIMESTAMP NOT NULL DEFAULT now()
);
Menambah baris rekaman
# INSERT INTO teriakannya VALUES ('ade','www.ade.web.id','Salam kenal');
Melihat isi table:
# SELECT * from teriakannya;
nama | situs | pesan | waktu
------+----------------+-------------+----------------------------
ade | www.ade.web.id | Salam kenal | 2008-12-06 22:26:59.217386
(1 row)
Memperbarui isi data
# UPDATE teriakannya SET nama='adesaja' WHERE nama='ade';
Menghapus baris rekaman
# DELETE FROM teriakannya where nama='ade';
Membuat view
# CREATE VIEW viewq AS SELECT nama,situs,pesan,waktu, to_char(waktu,'DD-MM-YYYY') as tgl, to_char(waktu,'HH24:MI:SS') as jam FROM teriakannya WHERE waktu>=current_timestamp - interval '2 days ORDER BY WAKTU DESC';
View digunakan sbg pengganti perintah SELECT yg berulang-2 atau untuk menutupi pekerjaan yg sebenarnya.
Menampilkan hasil view
# SELECT * FROM viewq;
Menyertakan bahasa prosedural PL/PGSQL
# CREATE LANGUAGE 'PLPGSQL';
Membuat fungsi PL/PGSQL
# create or replace function simpan_pesan (in_nama varchar, in_situs varchar, in_pesan text)
returns void as $$
begin
insert into teriakannya values (in_nama, in_situs, in_pesan);
end;
$$
language 'plpgsql';
Membuat fungsi trigger:
# CREATE OR REPLACE FUNCTION hapus_data()
RETURNS trigger AS
$BODY$
begin
delete from teriakannya where waktu
return NEW;
end;
$BODY$
LANGUAGE 'plpgsql' ;
Membuat trigger:
# CREATE TRIGGER on_insert
AFTER INSERT
ON teriakannya
FOR EACH ROW
EXECUTE PROCEDURE hapus_data()
Pengantar PostgreSQL #1
Diarsipkan di bawah: Linux, Sembarang Linux, Ubuntu | Tag: ajax, Linux, PHP, postgre, PostgreSQL, Tutorial, Ubuntu
Komentar (1) Melanjutkan tulisan-2 sebelumnya ttg postgres, kali ini adalah tulisan tentang (seri) Pengantar PostgreSQL. Bahasannya tidak mendalam (saya juga baru belajar) dari proses instalasi sampai mebuat aplikasi web berbasis PHP-Postgre-Ajax.
Yuk kita mulai….
Apa itu PostgreSQL?
PostgreSQL atau postgres adalah salah satu RDMS opensource dg lisensi BSD yg paling banyak digunakan di dunia. Penjelasan lebih lengkap tentu bisa baca di situsnya.
Fitur utama yg dimiliki adalah:
- complex queries
- foreign keys
- triggers
- views
- transactional integrity
- multiversion concurrency control
Selain itu postgres bisa dikembangkan oleh pengguna dg menambahkan:
- data types
- functions
- operators
- aggregate functions
- index methods
- procedural languages
Instal PostgreSQL di Ubuntu
Dg. baris perintash (Terminal) ketik saja:
$ sudo apt-get install postgresql postgresql-common postgresql-client
(disarankan juga untuk menginstal: postgresql-doc)
Untuk Linux-Apache-PHP-Postgre instal paket-2 berikut:
apache2
php5
php5-pgsql
(disarankan juga untuk menginstal: php-doc)
Tool
pgadmin3
phppgadmin
Agar bisa diakses dari luar (server) maka perlu mengisi kata sandi pengguna postgres di sistem database (bukan pengguna di Linux).
Masuk ke sistem database sbg pengguna Linux, postgres:
$ sudo u postgres psql postgres
Ganti kata sandi postgres di sistem database:
# ALTER USER postgres WITH PASSWORD 'KaTa54nd1';
\q
Cobalah masuk ke sistem database:
$ psql -U postgres -h localhost
lalu masukkan kata sandi di atas. Bisa?
Membuat pengguna baru, database dengan baris perintah
Membuat database baru:
$ sudo -u postgres createdb
Membuat pengguna baru:
$ sudo -u postgres createuser --superuser $USER
Membuat database untuk pengguna Linux:
$ createdb $USER
Membuat database baru dari baris perintah:
$ createdb dbq
Membuat pengguna “biasa”
$ createuser -D -R -P penggunaq
Membuat database untuk pengguna lain
$ createdb -O penggunaq dbnya
Masuk ke database
$ psql dbq
atau
$ psql -U penggunaq -h localhost dbnya
Membuat Database dan Table di PostgreSQL
Diarsipkan di bawah: Linux, Sembarang Linux, Umum | Tag: Linux, PostgreSQL
Komentar (3) Belajar PostgreSQL ach….
Membuat database (dari baris perintah)
sihab@alisya-desktop:~$ createdb mmx_db
Membuat tabel (dari psql)
sihab@alisya-desktop:~$ psql mmx_db
mmx_db=# create table allowance (
meal integer not null,
transport integer not null,
nightshift integer not null,
overmeal integer not null,
extratime integer not null);
Menghapus kolom
mmx_db=# alter table allowance drop column extratime;
Mengisi table allowance
mmx_db=# insert into allowance values (8000,12000,8000,8000);
Melihat isi table allowance
mmx_db=# select * from allowance;
meal | transport | nightshift | overmeal
------+-----------+------------+----------
8000 | 12000 | 8000 | 8000
(1 row)











RSS - Posts



