Kamis, 29 November 2012

Variabel dan Tipe Data pada SQL

Edit Posted by with 1 comment
Deklarasi Variabel dan Tipe Data
Bagian deklarasi variabel di antara kata kunci DECLARE dan BEGIN. Penamaan variabel tidal bersifat case sensitive. Tipe data variabel dapat berupa salah satu tipe data database Oracle atau tipe data built in PL/SQL.

Sintaks:
Identifier typedata [(presisi, skala)] [NOT NULL] [:=iekspresi];

Dimana ekspresi bisa merupakan literal, variabel yang lain atau sebuah ekspresi yang terdiri atas operator dan fungsi. Jika nilai inisial/awal tidak diberikan, maka suatu variabel akan diberikan nilai NULL untuk nilai inisialnya.

Contoh untuk data karakter:
alamat VARCHAR2(20);
kodepos CHAR(5) := ‘40257’;

Contoh untuk tipe data number:
gaji NUMBER(7,2);
jumlah NUMBER NOT NULL := 0;

Contoh untuk tipe data tanggal:
alamat VARCHAR2(20);
kodepos CHAR(5) := ‘40257’;

Tanda := dipakai untuk menugaskan (assign) nilai kepada suatu variabel. Nilai inisial/awal atau disebut juga nilai default adalah nilai yang diberikan pada saat awal variabel tersebut dideklarasikan.

Tipe Data pada PL/SQL
Selain tipe data yang ada di Oracle SQL, PL/SQL menyediakan beberapa tambahan tipe data yang dapat dideklarasikan sebagai berikut:




Tipe Data
Keterangan
BOOLEAN
Data lojikal dengan nilai TRUE atau FALSE.
DATE
Data tanggal waktu. Nilai yang valid adalah antara 1 Januari 4712 SM sampai dengan 31 Desember 9999.
NUMBER [(p [,s])]
Tipe data numerik dengan p angka penting dan sejumlah s angka penting di belakang koma. Nilai p adalah integer dengan nilai maksimal 38 dan nilai s berada pada rentang -84 sampai dengan 127. Nilai s negatif berarti pembulatan sampai dengan 10s terdekat.
FLOAT
Turunan dari NUMBER. Presisi sampai dengan 38 digit.
DOUBLE PRECISION
Sama dengan FLOAT.
REAL
Turunan dari number. Presisi sampai dengan 18 digit.
DEC [(p [,s])]
Sama dengan NUMBER  [(p [,s])].
DECIMAL [( p [,s])]
Sama dengan NUMBER  [(p [,s])].
NUMERIC [(p [,s])]
Sama dengan NUMBER  [(p [,s])].
INTEGER [(n)]
Sama dengan NUMBER  [(n,0)].
INT [(n)]
Sama dengan NUMBER  [(n,0)].
SMALLINT [(n)]
Sama dengan NUMBER  [(n,0)].
BINARY_INTEGER
Tipe variabel ini digunakan menyimpan nilai mulai dari
-2.147.483.647 s/d 2.147.483.647
NATURAL
Bagian dari binary integer, mampu menyimpan mulai dari 0 s/d 2.147.483.647.
NATURALN
Bagian dari binary integer, mampu menyimpan mulai dari 0 s/d 2.147.483.647. Tipe data ini tidak boleh bernilai NULL.
POSITIVE
Bagian dari binary integer, mampu menyimpan mulai dari 1 s/d 2.147.483.647
POSITIVEN
Bilangan integer dengan rentang nilai 1 sampai dengan 2147483647. Tipe data ini tidak boleh bernilai NULL.
SIGNTYPE
Tipe data bilangan yang bernilai -1, 0 atau 1.
PLS_INTEGER
Bilangan integer dengan rentang nilai -2147483647 sampai 2147483647.
VARCHAR2(n)
Data karakter dengan panjang tidak tetap. Nilai n minimum sama dengan 1 dan maksimum sama dengan 32767 byte.
VARCHAR(n)
Sama dengan VARCHAR2(n).
CHAR [(n)]
Data karakter dengan panjang tetap sebesar n byte. Nilai n maksimum adalah 32767. Nilai n minimum dan juga nilai default adalah 1.
STRING(n)
Sama dengan VARCHAR2(n).
CHARACTER [(n)]
Sama dengan CHAR(n).
LONG [(n)]
Data karakter dengan panjang tidak tetap. Nilai n maksimum sama dengan 32760 byte.
NCHAR [(n)]
Data karakter dengan panjang tetap. Panjang maksimum sama dengan 32767 byte. maksimum bergantung pada national character set yang dipakai. Nilai default adalah 1.
NVARCHAR2(n)
Data karakter dengan panjang tidak tetap. Panjang maksimum sama dengan 32767 byte. Nilai n maksimum bergantung pada national character set yang dipakai.
RAW(n)
Data binary dengan panjang tidak tetap. Nilai n maksimum sama dengan 32767 byte.
LONG RAW [(n)]
Data binary dengan panjang tidak tetap. Nilai n maksimum sama dengan 32760 byte.
ROWID
Identitas baris pada suatu tabel-index yang dinyatakan dengan string heksa desimal. Identitas tersebut menunjukkan posisi baris data. Tipe data ini merupakan balikan dari kolom palsu ROWID.
UROWID [(n)]
Identitas baris pada suatu tabel-index yang dinyatakan dengan string heksa desimal. Nilai n adalah ukuran kolom UROWID. Nilai nmaksimum adalah 4000 byte.

1 komentar: