Showing posts with label SQL. Show all posts
Showing posts with label SQL. Show all posts

Rename Table di PostgreSQL





postgres=# CREATE TABLE sample (id char);
postgres=# \d 
postgres=# ALTER TABLE sample RENAME to sampletable;
postgres=# \d

Rename Table di PostgreSQL

Returns Table Function on PostgreSQL

Returns Table Function on PostgreSQL

Ok, sesuai judulnya, bagaimana cara penggunaan returns table di suatu fungsi dbms postgresql, ceritanya kemarin ada salah satu mahasiswa yang bertanya , contohnya seperti berikut :

Ada 3 buah table :
1. mahasiswa
2. mata_kuliah
3. khs

          Table "public.mahasiswa"
 Column |         Type          | Modifiers
--------+-----------------------+-----------
 nim    | character(9)          | not null
 nama   | character varying(50) | not null

          Table "public.mata_kuliah"
  Column   |         Type          | Modifiers
-----------+-----------------------+-----------
 kode_mk   | character(5)          | not null
 nama_mk   | character varying(30) |
 sks       | integer               |
 kurikulum | character(9)          |


         Table "public.khs"
 Column  |     Type     | Modifiers
---------+--------------+-----------
 nim     | character(9) |
 kode_mk | character(5) |
 ta      | character(9) |
 smt     | integer      |
 nilai   | character(1) |
Foreign-key constraints:


Dan isi dari masing-masing table :

nama_kelompok=> select * from mahasiswa;
    nim    | nama
-----------+------
 091051080 | abby
 091051081 | yoga
(2 rows)

nama_kelompok=> select * from mata_kuliah ;
 kode_mk |     nama_mk     | sks | kurikulum
---------+-----------------+-----+-----------
 tifs1   | Pemrograman SQL |   3 | 2007/2008
 tifs2   | Pemrograman Web |   3 | 2007/2008
 tifs3   | Jarkom          |   3 | 2007/2008
(3 rows)

nama_kelompok=> select * from khs;
    nim    | kode_mk |    ta     | smt | nilai
-----------+---------+-----------+-----+-------
 091051080 | tifs1   | 2012/2013 |   5 | A
 091051080 | tifs2   | 2012/2013 |   5 | A
 091051080 | tifs3   | 2012/2013 |   5 | A
(3 rows)

Nah, yang jadi pertanyaan adalah Buat fungsi yang jika di panggil :

nama_kelompok=> SELECT * from trans('091051080')

Hasilnya :

    nim    | kode_mk |     nama_mk     | nilai
-----------+---------+-----------------+-------
 091051080 | tifs1   | Pemrograman SQL | A
 091051080 | tifs2   | Pemrograman Web | A
 091051080 | tifs3   | Jarkom          | A

Jadi sederhannya adalah menampilkan query dari suatu table yang di joinkan :

Berikut fungsi yang sudah saya coba buat :

CREATE OR REPLACE FUNCTION trans(char) RETURNS table (nim char, kode_mk char, nama_mk varchar,nilai char) AS
$$
BEGIN
 return query select khs.nim, khs.kode_mk, mata_kuliah.nama_mk, khs.nilai from khs join mata_kuliah using (kode_mk) where khs.kode_mk=mata_kuliah.kode_mk and khs.nim=$1 ;

    RETURN;
END;
$$
LANGUAGE 'plpgsql' ;

semoga membantu :)






Merubah Type Column di PostgreSQL

Tak jarang banyak yang akan merubah type column di suatu table postgreSQL, lalu bagaimana caranya ?.. Ok, diumpamakan sebagai berikut :

1. Table yang berisi (id_user,nama_user) ternyata terlanjur melakukan kesalahan dalam membuat type column nama_user yang seharusnya varchar menjadi int, Berikut perintahnya :
# CREATE TABLE pengguna (id_user char(5) primary key, nama_user int);

Merubah Type Column di PostgreSQL

2. Sekarang coba rubah type column nama_user dengan perintah berikut :
# ALTER TABLE pengguna alter column nama_user type varchar(30);



Semoga Membantu..

Membuat Type Enum di PostgreSQL

Mungkin ada yang bingung bagaimana membuat suatu type itu enum di postgreSQL, sebenarnya tidak ada yang sulit untuk membuatnya karena kita bisa membuat (create) type sendiri. Ok, berikut contohnya :

1. Buat Type Enum dengan perintah berikut :
# CREATE TYPE jk AS enum ('L','P');
jk = nama type

Membuat Type Enum di PostgreSQL

2. Kemudian Buat Tabelnya :
# CREATE TABLE jeniskelamin (nama varchar(30), jenis jk);


3. Sekarang coba insert data dengan data yang benar :
# insert into jeniskelamin values ('abby','L');


4. Tetapi jika insert data dengan data yang salah :
# insert into jeniskelamin values ('abby','X');
maka akan muncul peringatan :
ERROR:  invalid input value for enum jk: "X"
LINE 1: insert into jeniskelamin values ('abby','X');



Semoga Membantu..

Membuat Auto_Increment di PostgreSQL

Membuat Auto_Increment di PostgreSQL
Sebelumnya sempat bingung dengan yang namanya auto_increment di PostgreSQL, Berbeda dengan Mysql yang cukup sangat mudah, Ok, berikut saya contohkan :

Perintah di Mysql :

CREATE TABLE data (id_data int auto_increment primary key);
Query OK, 0 rows affected (0.13 sec)


Tetapi Jika perintah diatas dilakukan di PostgreSQL maka akan muncul :
CREATE TABLE data (id_data int auto_increment primary key);
ERROR:  syntax error at or near "auto_increment"
LINE 1: CREATE TABLE data (id_data int auto_increment primary key);


Berikut caranya :

Contoh untuk table yang belum dibuat :

1. Buat Sequence :
# CREATE SEQUENCE data_sequence;


2. Buat Table :
# CREATE TABLE data (id_data int default nextval('data_sequence'));



3. Lihat type table nya :
# \d data;



Contoh untuk table yang sudah dibuat :

1. Buat Sequence :
# CREATE SEQUENCE data_sequence;


 2. Rubah dengan perintah Alter :
# ALTER TABLE data alter id_data set default nextval('data_sequence');



Semoga Membantu..