TUGAS 6
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
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
“ 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
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
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, |
2. |
SMALLINT |
Ukuran 2 byte. Bilangan bulat dengan |
3. |
MEDIUMINT |
Ukuran 3 byte. Bilangan bulat dengan |
4. |
INT |
Ukuran 4 byte. Bilangan bulat dengan |
5. |
INTEGER |
Sama dengan INT. |
6. |
BIGINT |
Ukuran 8 byte. Bilangan bulat dengan |
7. |
FLOAT |
Ukuran 4 byte. Biilangan pecahan. |
8. |
DOUBLE |
Ukuran 8 byte. Bilangan pecahan. |
9. |
DOUBLE PRECISION |
Ukuran 8 byte. Bilangan pecahan berpresisi |
10. |
REAL |
Ukuran 8 byte. Sinonim dari DOUBLE. |
11. |
DECIMAL(M,D) |
Ukuran M byte. Bilangan pecahan. Misalnya |
12. |
NUMERIC(M,D) |
Ukuran M byte. Sama dengan Decimal. |
2. Tipe data untuk tanggal dan jam
No |
Tipe |
Keterangan |
1. |
DATETIME |
Ukuran 8 byte. Kombinasi tanggal dan jam |
2. |
DATE |
Ukuran 8 byte. Kombinasi tanggal dan jam |
3. |
TIMESTAMP |
Ukuran 4 byte. Kombinasi tanggal dan jam |
4. |
TIME |
Ukuran 3 byte.waktu dengan jangkauan dari |
5. |
YEAR |
Ukuran 1 byte. Data tahun antara 1901 sampai |
3. Tipe data untuk karakter dan lain-lain
No |
Tipe |
Keterangan |
1. |
CHAR(M) |
Ukuran M byte, 1<=M<=255. Data string |
2. |
VARCHAR(M) |
Ukuran L+1 byte dengan L<=M dan |
3. |
TINYBLOB, TINYTEXT |
L+1 byte, dengan L<28 . Tipe |
4. |
BLOB, TEXT |
L+2 byte, dengan L<216 . Tipe |
5. |
MEDIUMBLOB, MEDIUMTEXT |
L+3 byte, dengan L<224. Tipe |
6. |
LONGBLOB, LONGTEXT |
L+4 byte, dengan L<232. Tipe |
7. |
ENUM(’nilai1’,’nilai2’,..) |
Ukuran 1 atau 2 byte tergantungnilai |
8. |
SET(’nilai1’,’nilai2’,..) |
Ukuran 1,2,3,4 atau 8 byte tergantung jumlah |
2.TIPE DATA PADA ORCLE:
- 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.
- 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.
- 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.
- Long : data karakter dengan ukuran panjang bervariasi, hingga mencapai 2 GB.(tipe data seperti ini tidak dapat digunakan sebagai primary key).
- Raw(size) : tipe data berupa binary data dengan ukuran maksimal 255 bytes
- Long Raw : Tipe data berupa binary data dengan ukuran maksimal 2 GigaBytes tidak dikonversi oleh oracle (data mentah apa adanya, spasi dihitung 1 karakter).
- 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.
- 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.
- 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.
- 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) |