Pengantar PostgreSQL #2

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()

3 Komentar

  1. boleh nanya ga?
    'atau untuk menutupi pekerjaan yang sebenarnya', maksudnya apa ya?

    eshabe: dg view, operator/pengguna view tidak (perlu) tahu dari mana dan bagaimana kolom-2 hasil SELECT * didapat. Dan seandainya ada perubahan struktur tabel(-tabel) yg di view maka pengguna view tidak direpotkan karena perintah query tetap.

    BalasHapus
  2. Wah makasih dah ngeposting tentang postgreSql. selama ini pake mySql terus, ganti postgreSql ah.. matur nuwun mas

    BalasHapus