TUGAS 6

17 December 2012 21:12:43 Dibaca : 242

PERINTAH-PERINTAH MERELASIKAN TABEL DALAM SQL

1. INNER JOIN

Dengan inner join, tabel akan digabungkan dua arah, sehingga tidak ada data yang NULL di satu sisi. Sebagai contoh, kita akan menggabungkan tabel pelanggan dan pesan dimana kita akan menampilkan daftar pelanggan yang pernah melakukan pemesanan (transaksi). Misalkan isi tabel pelanggan dan pesan adalah sebagai berikut :

Tabel pelanggan (hanya ditampilkan field id_pelanggan, nm_pelanggan dan email) :

Tabel pesanan :Pada hasil perintah query di atas terlihat bahwa terdapat 5 (lima) transaksi yang dilakukan oleh 3 (tiga) orang pelanggan. Jika kita lihat kembali isi tabel pelanggan di atas, maka terdapat satu pelanggan yang tidak ditampilkan yaitu yang memiliki id pelanggan P0003. Pelanggan tersebut tidak ditampilkan karena belum pernah melakukan transaksi.

2. LEFT JOIN

Bentuk umum :SELECT tabel1.*, tabel2.*FROM tabel1 LEFT JOIN tabel2ON tabel1.PK=tabel2.FK;Contoh perintah SQL:SELECT pelanggan.id_pelanggan, pelanggan.nm_pelanggan, pesan.id_pesan, pesan.tgl_pesanFROM pelanggan LEFT JOIN pesanON pelanggan.id_pelanggan=pesan.id_pelanggan;Hasilnya:

Berbeda dengan hasil sebelumnya (inner join), penggunaan left join akan menampilkan juga data pelanggan dengan id P0003, walaupun pelanggan tersebut belum pernah bertransaksi. Dan pada kolom id_pesan dan tgl_pesan untuk pelanggan P0003 isinya NULL, artinya di tabel kanan (pesan) pelanggan tersebut tidak ada.

3.RIGHT JOIN

Bentuk umum :SELECT tabel1.*, tabel2.*FROM tabel1 RIGHT JOIN tabel2ON tabel1.PK=tabel2.FK;Contoh perintah SQL:SELECT pelanggan.id_pelanggan, pelanggan.nm_pelanggan, pesan.id_pesan, pesan.tgl_pesanFROM pelanggan RIGHT JOIN pesanON pelanggan.id_pelanggan=pesan.id_pelanggan;Hasilnya:

Dengan right join, tabel yang menjadi acuan adalah tabel sebelah kanan (tabel pesan), jadi semua isi tabel pesan akan ditampilkan. Jika data pelanggan tidak ada di tabel pelanggan, maka isi tabel pesan tetap ditampilkan.

4. Cross join

CROSS JOIN returns the Cartesian product of rows from tables in the join. In other words, it will produce rows which combine each row from the first table with each row from the second table.[4]Example of an explicit cross join:SELECT *FROM employeeCROSS JOIN department;Example of an implicit cross join:SELECT *FROM employee, department;

5.Full outer join

Conceptually, a full outer join combines the effect of applying both left and right outer joins. Where records in the FULL OUTER JOINed tables do not match, the result set will have NULL values for every column of the table that lacks a matching row. For those records that do match, a single row will be produced in the result set (containing fields populated from both tables).For example, this allows us to see each employee who is in a department and each department that has an employee, but also see each employee who is not part of a department and each department which doesn't have an employee.Example full outer join:SELECT *FROM employeeFULL OUTER JOIN department ON employee.DepartmentID = department.DepartmentID;

sumberhttp://en.wikipedia.org/wiki/Join_(SQL)http://achmatim.net/2010/01/18/perintah-mysql-untuk-menampilkan-data-dari-beberapa-tabel/

tugas 5

13 December 2012 12:07:29 Dibaca : 171

ENTITY RELATIONSHIP

SEKOLAH MENENGAH KEJURUAN (SMK)

OLEH :

NURINDA NALOLE

ANDRIANTO KAHAR

ENTITAS :

- GURU

- SISWA

- PROGRAM KEAHLIAN

ATRIBUT :

- GURU : NIP, NAMA, ALAMAT

- SISWA : NIS, NAMA, ALAMAT

- PROGRAM KEAHLIAN : NAMA PROGRAM KEAHLIAN

RELASI :

- GURU MENGAJAR

- SISWA BEAJAR

- SISWA MENGAMBIL PORGRAM KEAHLIAN

tugas 4

13 December 2012 11:17:52 Dibaca : 145

“ NORMALISASI DATABASE RELASI “

Ketika kita merancang suatu basis data untuk suatu sistem relational, prioritas utama dalam mengembangkan model data logical adalah dengan merancang suatu representasi data yang tepat bagi relationship dan constrainnya (batasannya). Kita harus mengidentifikasi suatu set relasi yang cocok, demi mencapai tujuan di atas. Tehnik yang dapat kita gunakan untuk membantu mengidetifikasi relasi-relasi tersebut dianamakan Normalisasi.

Proses normalisasi pertama kali diperkenalkan oleh E.F.Codd pada tahun 1972. normalisasi sering dilakukan sebagai suatu uji coba pada suatu relasi secara berkelanjutan untuk menentukan apakah relasi tersebut sudah baik atau masih melanggar aturan-aturan standar yang diperlakukan pada suatu relasi yang normal (sudah dapat dilakukan proses insert, update, delete, dan modify pada satu atau beberapa atribut tanpa mempengaruhi integritas data dalam relasi tersebut).

Proses normalisasi merupakan metode yang formal/standar dalam mengidentifikasi dasar relasi bagi primary keynya (atau candidate key dalam kasus BCNF), dan dependensi fungsional diantara atribut-atribut dari relasi tersebut. Normalisasi akan membantu perancang basis data dengan menyediakan suatu uji coba yang berurut yang dapat diimplementasikan pada hubungnan individualshingga skema relasi dapat di normalisasi ke dalam bentuk yang lebih spesifik untuk menghindari terjadinya error atau inkonsistansi data, bila dilakuan update tehadap relasi tersebut dengan Anomaly.

BEBERAPA DEFINISI NORMALISASI

Normalisasi adalah suatu proses memperbaiki / membangun dengan model data relasional, dan secara umum lebih tepat dikoneksikan dengan model data logika

Normalisasi adalah proses pengelompokan data ke dalam bentuk tabel atau relasi atau file untuk menyatakan entitas dan hubungan mereka sehingga terwujud satu bentuk database yang mudah untuk dimodifikasi.

Normalisasi dapat berguna dalam menjawab 2 pertanyaan mendasar yaitu: “apa yang dimaksud dengan desain database logical?” dan “apa yang dimaksud dengan desain database fisikal yang baik? What is phisical good logical database design?”.

Normalisasi adalah suatu proses untuk mengidentifikasi “tabel” kelompok atribut yang memiliki ketergantungan yang sangat tinggi antara satu atribut dengan atrubut lainnya.

Normalisasi bisa disebut jga sebagai proses pengelompokan atribut-atribut dari suatu relasi sehingga membentuk WELL STRUCTURED RELATION.

WELL STRUCTURED RELATIONadalah sebuah relasi yang jumlah kerangkapan datanya sedikit (Minimum Amount Of Redundancy), serta memberikan kemungkinan bagi used untuk melakukan INSERT, DELETE, MODIFY, terhadap baris-baris data pada relasi tersebut, yang tidak berakibat terjadinya ERROR atau INKONSISTENSI DATA, yang disebabkan oleh operasi-operasi tersebut.

Contoh:

Terdapat sebuah relasi Mahasiswa, dengan ketentuan sebagai berikut.

Setiap Mahasiswa hanya boleh mengambil satu mata kuliah saja.Setiap matakuliah mempunyai uang kuliah yang standar (tidak tergantung pada mahasiswa yang mengambil matakuliah tersebut).

(berhubung pada blog ini tidak dapat ditampilkan tabel yang telah saya unduh dari internet, maka disini saya hanya mengilustrasikan tabel tersebut lewat kata-kata saja)

Misalnya, terdapat 3 kolom yang masing-masingnya terdiri atas kolom NIM, kolom KODE-MTK, dan kolom BIAYA. Pada kolom pertama atau pada kolom NIM kita bisa menuliskan NIM dari si mahasiswa (mis: 921411026), kemudian pada kolom kedua atau pada kolom KODE-MTK kita bisa menuliskan kode mata kuliah yang diambil si mahasiswa (mis: CS-200), dan selanjutnya pada kolom terakhir atau pada kolom BIAYA kita bisa menuliskan jumlah biaya yang harus dibayarkan untuk setiap kode matakuliah tersebut (mis: 75.000)

Relasi Kuliah di atas merupakan sebuah relasi yang sederhana dan terdiri dari 3 kolom / atribut. Bila diteliti secara seksama, maka akan ditemukan redundancy pada datanya, dimana biaya kuliah selalu berulang pada setiap mahasiswa. Akibatnya besar kemungkinan terjadi error atau inkonsistensi data, bila dilakukan update terhadap relasi tersebut dengan Anomaly.

Anomaly merupakan penyimpangan-penyimpangan atau error atau inkonsistensi data yang terjadi pada saat dilakukan proses delete, insert ataupun modify dalam suatu basis data.

Tugas 3

05 October 2012 12:16:49 Dibaca : 302

1. Data Definition Language (DDL)

adalah kumpulan perintah SQL yang dapat digunakan untuk membuat dan mengubah struktur dan definisi tipe data dari objek-objek database seperti tabel, index, trigger, view, dan lain-lain.

Contoh perintah DDL :

  • Membuat tabel

CREATE TABLE Digunakan untuk membuat tabel. Syntax umumnya sebagai berikut :

CREATE TABLE [schema, ] table

( column datatype [DEFAULT expr][,...]);

  • Menghapus tabel

DROP TABLE

Digunakan untuk melakukan penghapusan tabel. Melakukan penghapusan table dengan perintah DROP, berarti mengerjakan hal berikut :

Semua data dan struktur dari table akan dihapus Semua transaksi pending akan di-commit Semua indeks akan dihapus Perintah drop ini tidak bisa di-rollback Sebagai contoh, jika kita ingin menghapus tabel dept, maka yang harus dilakukan adalah :

DROP TABLE dept; 

  • Menambah /menghapus kolom
  • Statemen ALTER TABLE digunakan untuk : ~ Menambahkan kolom baru Untuk menambah kolom baru, syntax umumnya sebagai berikut :

ALTER TABLE table

ADD         (column datatype [DEFAULT expr]

 [, column datatype]...);

 ~ Memodifikasi kolom yang sudah ada

Kita dapat memodifikasi kolom dengan mengubah tipe datanya, ukuran dan nilai defaultnya. Sintaks dari perintah ALTER TABLE untuk memodifikasi kolom sebagai berikut :

 ALTER TABLE table

 MODIFY      (column datatype [DEFAULT expr]

[, column datatype] ... );

 Contoh :

 ALTER TABLE dept

 MODIFY       (dname VARCHAR2(30));

View adalah tabel bayangan. Tidak menyimpan data secara fisik. Biasanya berupa hasil query dari tabel-tabel dalam sebuah database. Syntax untuk melakuakn VIEW adalah :

 CREATE VIEW AS

Trigger adalah sebuah obyek dalam database yang berupa prosedur yang merespon setiap kali terdapat proses modifikasi pada tabel. Proses modifikasi berupa: Insert, Update dan delete. Syntax pembuatan Trigger:

CREATE TRIGGER ON TABLE

 FOR [DELETE] [,] [INSERT] [,] [UPDATE]

AS

 

2. DML atau Data Manipulation Language

adalah kumpulan perintah SQL yang berhubungan dengan pekerjaan mengolah data di dalam table.

 Contoh perintah DML :

  • Penambahan data pada sebuah tabel

Syntax:

INSERT INTO nama_tabel(field ke-1, ….. field ke-n) VALUES(nilai_field_ke-1, …. nilai_field_ke-n);

  • Pembaruan data  pada sebuah tabel

Syntax:

 

UPDATE nama_tabel SET nama_field = data_baru WHERE nama_field = data_lama; 

  • Penghapusan data pada sebuah tabel

Syntax:

DELETE FROM nama_tabel [ WHERE kondisi];

  • Pemilihan data dari satu atau beberapa tabel

Syntax :

SELECT [DISTINCT] select_list FROM table_source [WHERE search_condition] [GROUP BY group_by_expression] [HAVING search_condition] [ORDER BY order_expression [ASC | DESC] ]

 

 

3. DCL - Data Control Language

 

Data Control Language (DCL) merupakan sub bahasa SQL yang digunakan untuk

 

melakukan pengontrolan data dan server databasenya. Perintah DCL, di antaranya:

 

 GRAND : Perintah ini digunakan untuk memberikan hak/ijin akses oleh administrator (pemilik utama) server kepada user (pengguna biasa). Hak akses tersebut berupa hak membuat (CREATE), mengambil (SELECT), menghapus (DELETE), mengubah (UPDATE), dan hak khusus berkenaan dengan sistem databasenya.

 

 REVOKE : Perintah ini memiliki kegunaan terbalik dengan GRAND, yaitu untuk menghilangkan atau mencabut hak akses yang telah diberikan kepada user oleh administrator.

 

           

4. DQL (Data Query Language)

Berikuti ini saya akan berikan contoh Query dalam SQL untuk select sederhana,

$data_user = "SELECT * FROM  user";

artinya untuk mengambil semua field data pada table user. Dalam Query Doctrine kita bisa menuliskan seperti berikut ini,

$this->data_user = Doctrine::getTable('User')->findAll();

Perhatikan susunan penulisannya. Ada getTable dan element yang mau dicari adalah semua, findAll. Perubahan mendasar dalam penulisan script SQL adalah menggunakan method dengan penamaan yang lebih “manusiawi”. Kalau di SQL biasa dengan tanda bintang asterik “*“, kalau di Doctrine menggunakan method findAll(). Kalau di SQL memanggil nama table nya (misal. user), kalau di Doctrine memanggil nama Model nya (misal. User). Dalam Doctrine (symfony), penulisan nama Model selalu di awali huruf besar, jadi agak sedikit berbeda dengan nama table di database nya.

·         Perhatikan susunan penulisannya, karena kita akan sering menemui hal-hal seperti itu nantinya..

oks, gimana? gampang kan… :-)

Query Select untuk Primary Key tertentu

Percobaan selanjutnya kita akan menggunakan Query select sederhana untuk mengambil data dengan Primary Key tertentu. Misal Table user memiliki primary key pada field id, dan kita akan menampilkan data yang id nya ’1′. maka SQL nya adalah seperti berikut ini,

$data_user = "SELECT * FROM user WHERE (id = '1')";

Maka dalam Query Doctrine kita dapat menuliskan seperti ini,

$this->data_user = Doctrine::getTable('User')->find(1);

Method find() dalam Doctrine digunakan untuk menemukan record berdasarkan primary key nya. Dalam kasus ini, kita tidak perlu memberi tahu Doctrine “siapa yang menjadi primary key“. Pokok nya kalau kita gunakan method find(), maka pasti akan mencari untuk primary key nya saja, yaitu field id.

gimana? makin gampang kan… :-)

Query Select mencari field tertentu

Dan ini yang lebih menarik lagi. Yaitu jika kita ingin mencari data dengan syarat field tertentu. Misal, saya ingin mencari record yang field ‘name’ pada table tersebut berisi ‘sule’. Dalam SQL kita biasa menuliskan seperti ini,

$data_user = "SELECT * FROM user u WHERE (u.name = 'sule')";

pada contoh diatas kita menggunakan alias ‘u‘ untuk table user, dan kemudian menambahkan syarat bahwa field name harus terisi oleh ‘sule‘. Dalam Doctrine, penulisannya semakin mudah.

$this->data_user = Doctrine::getTable('User')->findByName('sule');

Gunakan method findBy… yg penulisannya ditambahkan dengan nama field yang akan kita cari. Dalam contoh diatas field yang akan dicari ada lah field ‘name‘, maka method yang digunakan findByName(). Perhatikan penulisan huruf besar kecil, sebagai penanda kata.

ampiuun pak, kok makin gampang..

Query Select dengan beragam Syarat

Tingkatan lebih lanjut, kita akan mencoba melakukan Query untuk beragam syarat. Seperti yang telah Anda ketahui, syarat dalam Query dapat kita gunakana dengan menambahkan “WHERE&ldqu

 

 

tugas 2

05 October 2012 10:58:07 Dibaca : 542

TIPE-TIPE DATA PADA DBMS:

 

1.TIPE DATA PADA MY SQL:

 

Tipe Data MySQL

 

 

Mengenal berbagai Tipe Data

 

 

 

Seringkali pada saat kita membuat sebuah database dan membuat fields yang ada didalamnya, kita kebingungan dalam memilih tipe data apa yang akan digunakan. Pada kesemapatan kali ini saya akan memberitahukan beberapa buah tipe data yang saya baca dari sebuah buku. Tipe data yang akan saya jelaskan berikut ini adalah tipe data yang terdapat pada MySQL.

 

 

1. Tipe data untuk bilangan

 

No

Tipe Data

Keterangan

1.

TINYINT

Ukuran 1 byte. Bilangan bulat terkecil,
dengan jangkauan untuk bilangan bertanda -128 sampai dengan 127 dan untuk
yang tidak bertanda 0 sampai dengan 255. Bilangan tak bertanda ditandai
dengan kata UNSIGNED

2.

SMALLINT

Ukuran 2 byte. Bilangan bulat dengan
jangkauan untuk bilangan bertanda -32768 sampai dengan 32767 dan untuk yang
tidak bertanda 0 sampai dengan 65535

3.

MEDIUMINT

Ukuran 3 byte. Bilangan bulat dengan
jangkauan untuk bilangan bertanda -8388608 sampai dengan 8388607 dan untuk
yang tidak bertanda 0 sampai dengan 16777215

4.

INT

Ukuran 4 byte. Bilangan bulat dengan
jangkauan untuk bilangan bertanda -2147483648 sampai dengan 2147483647 dan
untuk yang tidak bertanda 0 sampai dengan 4294967295

5.

INTEGER

Sama dengan INT.

6.

BIGINT

Ukuran 8 byte. Bilangan bulat dengan
jangkauan untuk bilangan bertanda -9223372036854775808 sampai dengan
9223372036854775807 dan untuk yang tidak bertanda 0 sampai dengan
184467440737079551615

7.

FLOAT

Ukuran 4 byte. Biilangan pecahan.

8.

DOUBLE

Ukuran 8 byte. Bilangan pecahan.

9.

DOUBLE PRECISION

Ukuran 8 byte. Bilangan pecahan berpresisi
ganda.

10.

REAL

Ukuran 8 byte. Sinonim dari DOUBLE.

11.

DECIMAL(M,D)

Ukuran M byte. Bilangan pecahan. Misalnya
DECIMAL(5,2) dapat digunakan untuk menyimpan bilangan -99,99 sampai dengan
99,99

12.

NUMERIC(M,D)

Ukuran M byte. Sama dengan Decimal.

 

 

 

2. Tipe data untuk tanggal dan jam

 

No

Tipe
Data

Keterangan

1.

DATETIME

Ukuran 8 byte. Kombinasi tanggal dan jam
dengan jangkauan dari ‘1000-01-01 00:00:00’ sampai dengan ‘9999-12-31
23:59:59’

2.

DATE

Ukuran 8 byte. Kombinasi tanggal dan jam
dengan jangkauan dari ‘1000-01-01’ sampai dengan ‘9999-12-31 ’

3.

TIMESTAMP

Ukuran 4 byte. Kombinasi tanggal dan jam
dengan jangkauan dari ‘1970-01-01’ sampai dengan ‘2037 ’

4.

TIME

Ukuran 3 byte.waktu dengan jangkauan dari
-838:59:59 sampai dengan 838:59:59

5.

YEAR

Ukuran 1 byte. Data tahun antara 1901 sampai
dengan 2155

 

 

 

3. Tipe data untuk karakter dan lain-lain

 

 

 

No

Tipe
Data

Keterangan

1.

CHAR(M)

Ukuran M byte, 1<=M<=255. Data string
dengan panjang yang tetap. CHAR(1) cukup ditulis dengan CHAR.

2.

VARCHAR(M)

Ukuran L+1 byte dengan L<=M dan
1<=M<=255. Data string dengan panjang bervariasi tergantung datanya.

3.

TINYBLOB,

TINYTEXT

L+1 byte, dengan L<28 . Tipe
TEXT atau BLOB dengan panjang maksimum 255 karakter.

4.

BLOB, TEXT

L+2 byte, dengan L<216 . Tipe
TEXT atau BLOB dengan panjang maksimum 65535 karakter.

5.

MEDIUMBLOB, MEDIUMTEXT

L+3 byte, dengan L<224. Tipe
TEXT atau BLOB dengan panjang maksimum 1677215 karakter.

6.

LONGBLOB, LONGTEXT

L+4 byte, dengan L<232. Tipe
TEXT atau BLOB dengan panjang maksimum 4294967295 karakter.

7.

ENUM(’nilai1’,’nilai2’,..)

Ukuran 1 atau 2 byte tergantungnilai
enumerasinya maks 65535 nilai

8.

SET(’nilai1’,’nilai2’,..)

Ukuran 1,2,3,4 atau 8 byte tergantung jumlah
anggota himpunan maks 64 anggota.

 

 

2.TIPE DATA PADA ORCLE:

 

  1. Varchar2(size) : string yang memiliki panjang karakter vaiable dengan panjang maxial sebesar size. Tipe data ini memperbolehkan penyimpanan semua karakter yang dapat dimasukkan melalui keyboad. Maksimum size yang dapat disimpan sebesar 4000 bytes (karakter). Tipe data ini juga memungkinkan untuk mneyimpan data numerik. Biasanya space akan langsung dieliminasi jika menggunakan tipe ini.
  2. Char(size): string dengan panjan gkarakter tetap sebesar ukuran size. Tipe data ini mempunyai kemampuan yang hampir sama yakni menyimpan karakter, hanya saja maksimum size yang disimpan hanya sebesar 2000 bytes.
  3. Number(p,s) : tipe data number memiliki presisi p dan s digit dibelakan koma jika kita abaikan p dan s berarti dianggap sebagai tipe number floating point. Tipe data ini menyimpan bilangan interger sampai maksimum dari digit integer tersebut. misal untuk spesifikasi (5,2) berarti 3 digit sebelum koma dan 2 digit dibelakang koma.
  4. Long : data karakter dengan ukuran panjang bervariasi, hingga mencapai 2 GB.(tipe data seperti ini tidak dapat digunakan sebagai primary key).
  5. Raw(size) : tipe data berupa binary data dengan ukuran maksimal 255 bytes
  6. Long Raw : Tipe data berupa binary data dengan ukuran maksimal 2 GigaBytes tidak dikonversi oleh oracle (data mentah apa adanya, spasi dihitung 1 karakter).
  7. Date : Tipe data ini menyimpan waktu dan tanggal dari sebuah informasi, dengan komponen waktu yang dibulatkan ke detik terdekat. Untuk menampilkannya dalam teks harus menggunakan fungsi to_char.
  8. Timestamp : tipe ini mirip dengan date. Di dalam tipe ini terdapat komponen waktu yang dapat langsung ditampilkan tanpa harus mengubahnya terlebih dahulu dengan fungsi to_char.
  9. Clob : Tipe data ini memperbolehkan penyimpanan objek dengan ukuran yang sangat besar sekitar 4 GB. Clob mirip sekali dengan varchar2 hanya saja tipe data ini mempunyai kapasitas maksimum yang lebih besar.
  10. Blob : tipe ini memperbolehkan penyimpanan objek bbinary yang besar dan tidak terstruktur. Contoh dari tipe data blob adalah suara dan video.

 

 

3.TIPE DATA PADA POSTGRESQL:

 

Untuk melihat tipe data yang didikung PostgreSQL, maka dapat menulis perintah berikut ini pada console PostgreSQL.

postgres=# \dT

List of data types
————————————————————————-
Schema        | Name | Description
————+——————+—————————————–
pg_catalog | “any” |
pg_catalog | “char” | single character
pg_catalog | “trigger” |
pg_catalog | “unknown” |
pg_catalog | abstime | absolute, limited-range date and time
pg_catalog | aclitem | access control list
pg_catalog | anyarray |
pg_catalog | anyelement |
pg_catalog | bigint | ~18 digit integer, 8-byte storage
pg_catalog | bit | fixed-length bit string
pg_catalog | bit varying | variable-length bit string
pg_catalog | boolean | boolean, ‘true’/'false’
pg_catalog | box | geometric box ‘(lower left,upper right)’
pg_catalog | bytea | variable-length string, binary values

pg_catalog | character | char(length), blank-padded string, fixed storage length
pg_catalog | character varying| varchar(length), non-blank-padded string, variable storage length
pg_catalog | cid | command identifier type, sequence intransaction id
pg_catalog | cidr | networkIP address/netmask,networkaddress
pg_catalog | circle | geometric circle ‘(center,radius)’
pg_catalog | cstring |
pg_catalog | date | ANSI SQL date
pg_catalog | double precision | double-precision floating pointnumber, 8-byte storage
pg_catalog | inet | IP address/netmask, host address,netmask optional
pg_catalog | int2vector | array of int2, used in system tables
pg_catalog | integer | -2 billion to 2 billion integer, 4-byte
pg_catalog | internal |
pg_catalog | interval | @ , time interval
pg_catalog | language_handler |
pg_catalog | line | geometric line (not implemented)’
pg_catalog | lseg | geometric line segment ‘(pt1,pt2)’
pg_catalog | macaddr | XX:XX:XX:XX:XX:XX, MAC address
pg_catalog | money | monetary amounts, $d,ddd.cc
pg_catalog | name | 63-character type for storing system id
pg_catalog | numeric | numeric(precision, decimal), arbitrary
pg_catalog | oid | object identifier(oid), maximum 4billion
pg_catalog | oidvector | array of oids, used in system tables
pg_catalog | opaque |
pg_catalog | path | geometric path ‘(pt1,…)’
pg_catalog | point | geometric point ‘(x, y)’
pg_catalog | polygon | geometric polygon ‘(pt1,…)’
pg_catalog | real | single-precision floating point number, 4-byte storage

pg_catalog | record |
pg_catalog | refcursor | reference cursor (portal name)
pg_catalog | regclass | registered class
pg_catalog | regoper | registered operator
pg_catalog | regoperator | registered operator (with args)
pg_catalog | regproc | registered procedure
pg_catalog | regprocedure | registered procedure (with args)
pg_catalog | regtype | registered type
pg_catalog | reltime | relative, limited-range time interval
pg_catalog | smallint | -32 thousand to 32 thousand, 2-byte
pg_catalog | smgr | storage manager
pg_catalog | text | variable-length string, nolimitspecified
pg_catalog | tid | (Block,offset),physical location oftuple
pg_catalog | time with time zone | hh:mm:ss, ANSI SQL time
pg_catalog | time without time zone | hh:mm:ss, ANSI SQL time
pg_catalog | timestamp with time zone | date and time with time zone
pg_catalog | timestamp without time zone | date and time
pg_catalog | tinterval | (abstime,abstime), time interval
pg_catalog | void |
pg_catalog | xid | transaction id
(61 rows)
Terlihat tipe data yang didukung jumlahnya ada 61 buah. Tipe data di atas merupakan tipe data tambahan dari tipe data default yang didukung PostgreSQL berdasarkan Standar ANSI 92. Jadi tidak terlihat tipe data seperti VARCHAR,
VARCHAR(2) atau INT. Karena secara default PostgreSQL sudah mendukung hampir semua tipe data yang digunakan pada DBMS modern pada umumnya.

 

TIPE DATA PADA DB2:

DB2 Data Types

The following table contains the available data types for DB2 databases supported by CONNX.

 

CONNX Data Type

SQL Data Type

Length

ODBC Data Type

Description

DB2 Binary

Binary

1-254

SQL_BINARY

1- to 254-byte fixed-length binary (defined as CHAR FOR BIT DATA)

DB2 IEEE 4-byte float

Real

4

SQL_REAL

4-byte byte-reversed (little endian) IEEE float

DB2 IEEE 8-byte float

Double

8

SQL_DOUBLE

8-byte byte-reversed (little endian) IEEE float

DB2 IEEE Big E 4-byte float

Real

4

SQL_REAL

4-byte big endian IEEE float

DB2 IEEE Big E 8-byte float

Double

8

SQL_DOUBLE

8-byte big endian IEEE float

DB2 ISO Date (YYYY-MM-DD)

Date

10

SQL_DATE

ISO DATE column

DB2 ISO Time (hh.mm.ss)

Time

8

SQL_TIME

ISO TIME column

DB2 Longword Integer

Integer

4

SQL_INTEGER

4-byte signed long integer (-2147483648 thru +2147483647)

DB2 Mainframe 4-byte float

Real

4

SQL_REAL

Mainframe DB2 (MVS or OS/390) 4-byte float

DB2 Mainframe 8-byte float

Double

8

SQL_DOUBLE

Mainframe DB2 (MVS or OS/390) 8-byte float

DB2 Numeric

Numeric

1-31

SQL_NUMERIC

Zoned numeric columns defined as NUMERIC (precision, scale), where precision >= scale; 0 <= precision <=31; 0 <= scale <=31

DB2 Numeric Integer

Numeric

9

SQL_NUMERIC

Describes an SQL NUMERIC display column with a scale = 0 and precision < = 9, e.g., NUMERIC (9,0). The default conversion from host column to ODBC data type is from SQL_NUMERIC to signed long integer = SQL_C_SLONG.

DB2 Packed Decimal

Decimal

1-16

SQL_DECIMAL

Packed decimal columns defined as DECIMAL (precision, scale), where precision >= scale; 0 <= precision <=31; 0 <= scale <=31

DB2 Packed Decimal Integer

Decimal

9

SQL_DECIMAL

This data type corresponds to an SQL_DECIMAL column with a scale of 0 and a precision < = 9, e.g., DECIMAL(9,0). The default conversion from host column to ODBC data type is from SQL_DECIMAL to signed long integer = SQL_C_SLONG.

DB2 Small Integer

Smallint

2

SQL_SMALLINT

2-byte signed small integer (-32768 thru +32767)

DB2 Timestamp

Timestamp

26

SQL_TIMESTAMP

ISO Timestamp column (YYYY-MM-DD –HH.MM.SS.123456)

DB2 Text (Null Terminated)

Varchar

255-32767

SQL_VARCHAR

255+ byte variable-length binary (defined as VARCHAR/LONG VARCHAR)

DB2 Text (Right Space Padded)

Char

1-254

SQL_CHAR

1- to 254-byte fixed-length character

DB2 Varbinary

Varbinary

255-32767

SQL_VARBINARY

255+ byte variable-length binary (defined as VARCHAR/LONG VARCHAR FOR BIT DATA)