Tabel
Pada pengenalan Oracle RDMS ini pembuatan database
tidak dijelaskan dengan detail , namun database yang ada telah dibuat berikut
user untuk membuat tabel-tabel yang dibutuhkan. Tiap-tiap user memiliki tablespace
tersendiri , jadi antara user satu dengan lainnya tidak mungkin tabel yang
dibuat bercampur.
Dari kasus Kepegawaian yang telah ditampilkan ER
Diagramnya pada bab I , berikutnya kita buat tabel yang dibutuhkan.
2.1 Membuat table, menghapus tabel dan merelasikan
ke table lain.
Tabel dalam Oracle database
dilakukan setelah melakukan tahap membuat model data dan membuat desain data.
Elemen – elemen yang harus ada dalam pembuatan suatu table yaitu : nama table,
nama kolom, dan tipe data kolom.
Tabel
merupakan komponen utama yang membentuk database itu sendiri. Baris (row), dan
kolom (column) pada table mengindikasikan “data” atau “record”. Instruksi
unutuk membuat, mengubah dan menghapus tabel dilakukan melalui DDL ( Data
Definition Language ) yaitu dengan cara :
- CREATE TABLE
- ALTER TABLE
- DROP TABLE
BAB I 2.1.1 Membuat Tabel
Dalam memberikan nama tabel dan
kolom terdapat beberapa aturan yang harus diikuti, yaitu :
- Nama tabel dan kolom mempunyai panjang karakter 1 – 30 karakter dan karakter pertama harus berupa huruf abjad
- Nama harus berisi karakter apa saja seperti A – Z, a – z, 0 – 9 underscore/garisbawah.
- Nama tabel tidak boleh memakai kata – kata yang sudah sipakai dalam perintah SQL, seperti select, where, from dan lain-lain).
- Nama table tidak boleh menggunakan nama objek yang dimiliki oleh user yang sama
- Nama table dengan huruf besar atau huruf kecil tidak mempunyai pembedaan ( not case sensitive ).
Kolom
dalam table mempunyai nilai yaitu sesuai dengan tipe data yang diinginkan.
Pemberian nama kolom pada sebuah table juga mempunyai persamaan dengan
pemberian nama pada table. Dalam dua buah tabel yang berbeda boleh diberikan nama kolom
yang sama. Namun pada sebuah tabel tidak boleh mempunyai 2 buah kolom yang memiliki nama yang sama.
Setiap kolom mempunyai nilai yang terkait dengan tipe data tertentu yaitu :
Domain dan Constraint.
Domain : Merupakan himpunan yang merupakan nilai
kolom yang valid atau dapat diterima
( acceptable ). Nilai kolom diluar
Domain tersebut dianggap sebagai sebuah pelanggaran dalam integritas data.
Constraint : Usaha unutk mengelompokkan nilai
dalam himpunan yang “berlaku” disebut sebagai “Constraint” atau batasan nilai.
Ada beberapa macam macam tipe data yang
dikenal oleh Oracle dalam pembuatan sebuah table, yaitu :
Tipe Data
|
Keterangan
|
Char(n)
|
Mendefinisikan string sepanjang n
karakter. Bila n tidak disertakan, maka panjang karakter adalah 1.
|
Varchar(n)
|
Mendefinisikan karakter string
dengan panjang variable, namun maksimum dibatasi sebanyak n karakter.
|
Varchar2(n)
|
Mendefinisikan karakter string
dengan panjang variable, namun maksimum dibatasi sebanyak n karakter.
Maksimum sebanyak 2000 karakter.
|
Date
|
Mendefinisikan tanggal, menyimpan
tahun, bulan, hari, jam, menit dan detik.
|
Number(n,p)
|
Mendifinisikan data berupa
bilangan positif, negatif, dan desimal. Baik merupkan fixed decimal, maupun
floating point
|
Long
|
Mendefinisikan binary data,
maksimum 2GB, disimpan dalam bentuk internal Oracle. Biasanya digunakan
unutuk menyimpan data berupa teks.
|
Long Raw
|
Sama dengan Long, mendefinisikan
binary data, maksimum 2GB, hanya tidak dikonversi oleh Oracle ( data mentah
apa adanya ). Biasanya digunakan untuk menyimpan data berupa gambar, video,
maupun suara.
|
Raw
|
Data biner (255 byte)
|
Rowid
|
Data berbentuk bilangan
heksadesimal yang digunakan unutuk memberika alamat yang unik pada setiap
baris dalam table.
|
Selain itu masih ada beberapa tipe data bartu yang ada
pada Oracle yaitu Varray, Refs, Lobs.
Sintaks untuk membuat sebuah table :
Membuat table dalam Oracle adalah menggunakan CREATE
TABLE, dengan sintaks sebagai berikut :
CREATE TABLE nama_table
( nama_kolom tipe_field batasan
… … …
);
Nama table : Karakter dengan huruf besar maupun
kecil dan dapat dipisahkan dengan menggunakan underscore.
Tipe Field : Tipe data yang berlaku pada
Oracle
Batasan
(Constraint ) : Yang mengikat atribut
apakah sebagai primary key, foreign key, not null, unique dan sebagainya.
Dalam
contoh kasus perintah sql untuk membuat table DEPT adalah:
SQL >
create table DEPT (
2
DNUMBER CHAR(3) not null,
3
MGRSSN CHAR(5),
4
DNAME CHAR(15),
5
MGRSTARTDATE DATE,
);
Setelah
menjalankan perintah tersebut maka akan muncul pesan “Table Created” yang
berarti bahwa table telah berhasil dibuat. Dengan begitu table DEPT yang kita
buat diatas terdiri dari 4 kolom yaitu :
1. DNUMBER dengan tipe data Char dan lebar 3 digit serta harus berisi data
karena memiliki batasan yang didefinisikan not null.
2. DNAME dengan tipe data karakter
(char) sepanjang 5 digit.
3. MGRSSN dengan tipe data karakter
(char) sepanjang 15 digit
4. MGRSTARTDATE dengan tipe data Date /
Tanggal
Seperti
terlihat pada contoh diatas, pada sebuah table dapat mendefinisikan batasan
pada sebuah kolom, misal not null, berarti pada kolom tersebut harus diisi
dengan sebuah nilai apapun (tidak boleh kosong). Database juga menyediakan
pilihan unutk membuat sebuah table yaitu dengan menggunakan sebuah format dan data dari
table yang telah ada. Sintaksnya adalah sebagai berikut :
CREATE TABLE table_baru
(kolom1,kolom2,kolom3)
AS ( kolom1,kolom2,kolom3 from table_lama
<where…>);
Nama kolom pada table baru dapat sama dengan nama
ataupun berbeda dengan table lama. Kita dapat melihat contohnya sebagai berikut
:
Dari
contoh diatas dibuat sebuah table baru dari table employee yang gajinya lebih besar dari 2000000
Untuk
memeriksa struktur sebuah table dapat ditampilkan dengan menggunakan DESCRIBE,
atau cukup dengan DESC. Sintaksnya :
DESC
nama_table
Contoh
perintah SQLnya :
SQL > DESC DEPT;
2.2.2 Menghapus Tabel
Untuk menghapus sebuah tabel dapat
digunakan instruksi DROP secara sederhana sebagai berikut :
DROP
nama_tabel
Contoh
:
SQL > DROP TABLE DEPT;
Untuk menampilkan semua tabel yang dimiliki oleh user
adalah :
SQL > SELECT * FROM TAB ;
2.2.3 Menghubungkan atau merelasikan antar table.
Merelasikan
sebuah table dengan table lainya kita harus mengetahui Integritas Data itu
sendiri.
Untuk
menjaga integritas data tersebut dibutuhkan Constraint. Beberapa constraint
seperti Primary Key, Not Null, Unique, Check, dan Foreign Key
Primary Key
Primary
Key (PK) disebut juga sebagai “Constraint” unutk menjaga integritas data, yaitu
sebuah PK
tidak boleh mempunyai duplikat dan otomatis tidak null (not null).
Membuat
Primary Key dapat dilakukan setelah tabel terbentuk atau saat mendisain tabel.
Sintaks
pembuatan PK adalah sebagi berikut
CREATE TABLE nama_table
( nama_kolom1 tipe_field batasan,
nama_kolom2 tipe_field batasan,
… … …
constraint PK_NamaTable
Primary Key (nama_kolom1)
);
pada sintaks diatas
nama_kolom1 akan menjadi Primary Key, dan akan diberikan nama
PK_NamaTabel
atau
CREATE TABLE nama_table
( nama_kolom1 tipe_field primary
key,
nama_kolom2 tipe_field batasan,
… … …
);
atau
CREATE TABLE nama_table
( nama_kolom1 tipe_field batasan,
nama_kolom2 tipe_field batasan,
… … …
Primary Key
(nama_kolom1)
);
Pada
sintaks diatas sama dengan yang pertama yaitu nama_kolom1 sebagai Primary Key,
hanya nama dari Primary Key akan ditentukan sendiri oleh Oracle.
Jika sebuah tabel memiliki Primary Key yang lebih dari
satu dapat dilakukan dengan sintaks sebagai berikut :
CREATE TABLE nama_table
( nama_kolom1 tipe_field batasan,
nama_kolom2 tipe_field batasan,
nama_kolom3 tipe_field batasan,
nama_kolom4 tipe_field batasan,
… … …
Primary Key
(nama_kolom1, nama_kolom2, nama_kolom4)
);
Not Null, Unique, Check, Default
Jika sebuah kolom pada table harus diisi, maka
constraint not null harus diberikan. Dengan demikian pada saat table diisi
dengan data, maka kolom tersebut harus terisi, jika tidak sistem akan
menolaknya .
Unique digunakan unutk menjamin bahwa
nilai kolom adalah tunggal. Primary Key vs Unique, keduanya adalah kunci kata
yang mempunyai arti sama, Oracle membedakan Unique sebagai sebuah field yang dapat
mempunyai nilai null, namun bila mempunyai nilai, maka nilai tersebut harus
tunggal.
Sebaliknya sebuah primary key tidak boleh kosong (secara implisit PK adalah not
null).
Untuk Check
digunakan untuk menjamin bahwa nilai kolom berada dalam ruang nilai
tertentu.
Dengan default,
ketika mendefinisikan sebuah kolom dapat memberikan sebuah nilai default. Dengan
default pada saat mengisi record data, apabila tidak diberikan sebuah nilai maka akan diberi nilai
default tersebut. Untuk lebih jelasnya dapat dilihat dibagian
Insert.
Dapat dilihat pada contoh berikut :
SQL > CREATE TABLE EMPLOYEE
2 ( SSN CHAR(5) primary key,
3 DNUMBER CHAR(3),
4 SUPER_SSN CHAR(5),
5 FNAME VARCHAR(15),
6 LNAME VARCHAR(20),
7 SEX CHAR(1) default ‘P’ ,
8 ADDRESS VARCHAR(25),
9 SALARY NUMBER check (SALARY<=9999999999)
,
10
BDATE DATE );
atau
SQL > CREATE TABLE EMPLOYEE
2 (SSN CHAR(5) not null,
3 DNUMBER CHAR(3),
4 SUPER_SSN CHAR(5),
5 FNAME VARCHAR(15),
6 LNAME VARCHAR(20),
7 SEX CHAR(1) default ‘P’ ,
8 ADDRESS VARCHAR(25),
9 SALARY NUMBER ,
10
BDATE DATE ),
11
Primary Key (SSN),
12
Check (SALARY<=9999999999) );
I.1.1.1 Foreign Key
Foreign Key adalah kolom sebuah
table yang menunjukkan bahwa kolom tersebut adalah primary key pada Table yang
lain. Contoh dapat dilihat pada gambar berikut :
Tabel_A
F1
|
F2
|
F3
|
F4
|
1
|
asd
|
10000
|
102
|
|
|
|
|
![]() |
|||||
![]() |
Tabel_B
K1
|
K2
|
K3
|
101
|
X
|
xxx
|
102
|
|
|
Primary Key
Pada contoh gambar diatas terlihat
bahwa kolom F4 pada Tabel_A mereferenesi pada kolom K1 pada Tabel_B. Hal diatas
menyebabkan adanya hubungan relasi antara sebuah table dengan table yang lain.
Karena adanya hubungan tersebut maka berdasarkan contoh diatas
record(101,X,xxx) pada Tabel_B tidak dapat dihapus langsung pada Tabel_B,
karena adanya refrensi dari field F5, Tabel_A masih ada, untuk menghapusnya
hapus dulu record pada kolom F5.
Membuat
Foreign Key dapat dilakukan setelah tabel terbentuk atau saat mendisain tabel.
Untuk membuat Foreign Key dapat
dibuat dengan syntax berikut :
Foreign Key (nama_kolom)
References tabel_tempat_referensi (nama_kolom)
Untuk jelasnya dapat dilihat pada
contoh berikut berdasarkan skenario diatas:
CREATE TABLE Tabel_A
( F1 char(10) not null,
F2 varchar(20),
F3 varchar(20),
F4 number(3) ,
… … …
Primary Key
(F1),
Foreign Key
(F4) References Tabel_B (K1)
);
Untuk dapat secara otomatis
menghapus kolom K1 pada Tabel_B pada saat menghapus kolom F4 dapat dengan
menambahkan sintaks On Delete Cascade. Untuk jelasnya akan dibahas pada
pertemuan selanjutnya.
Dengan adanya Primary Key, Foreign
Key maka akan terbentuk sebuah relasi antara sebuah table dengan table yang
lainnya.
BAB II 2.3 Mengisikan dan Menambah Record Data
Setelah
mempelajari bagaimana membuat table dan merelasikan antar table dalam sebuah
database sekarang kita akan mempelajari bagaimana mengisikan atau menambahkan
record (baris/row) baru kedalam sebuah table.
Untuk
memasukkan record data, dengan menggunakan INSERT. Untuk lebih jelasnya dapat
kita perhatikan dibawah ini.
Insert
Sebelum
memasukkan record data harus ada table yang terbentuk lebih dahulu. Perintah
insert digunakan unutuk memasukkan satu baris data kedalam table. Perlu diperhatikan,
bahwa constraint not null dan
constraint lainnya harus diperhatikan pada saat insert dilakukan.
Kolom yang mempunyai atribut not null, harus terisi ( atau terisi dengan nilai
defaultnya ).
II.1.1.3 INSERT … VALUES
Perintah ini digunakan unutuk
memasukkan satu buah record secara satu persatu. Sangat berguna bila data yang
dimasukkan sedikit. Sintaks lengkapnya yaitu sebagai berikut :
INSERT INTO nama_table
VALUES (nilai1, nilai2, … )
Untuk sintaks diatas nilai yang
dimasukkan harus sesuai dengan struktur kolom yang ada pada tabel.
Tapi jika menggunakan sintaks
berikut :
INSERT INTO nama_table (kolom1, kolom2,…)
VALUES (nilai1, nilai2,…)
Maka nilai yang dimasukkan tidak
harus berurutan seperti pada tabel tapi seperti urutan kolom didalam kurung.
Beberapa hal yang harus diperhatikan pada saat melakukan perintah
INSERT
1. Tipe Data untuk nilai yang
dimasukkan harus sama dengan tipe data yang terdapat didalam tabel. Bila kolom1
mempunyai tipe data number maka nilai1 harus juga bertipe number.(tipe data harus
sama)
2. Ukuran data
yang dimasukkan harus sesuai dengan ukuran karakter dan ukuran
kolom 20, maka nilai1 harus memiliki ukuran maksimal 20.
3. Lokasi data dalam nilai yang akan dimasukkan harus berhubungan / sama dengan lokasi kolom dalam
tabel yang akan ditambahkan. Jadi nilai1 dimasukkan dalam kolom1, begitu
seterusnya.
4. Bila tabel anda memiliki kolom unique,
maka data
yang sama tidak akan dimasukkan.
Contoh perintah SQL :
SQL >
INSERT INTO EMPLOYEE
2
(SSN,FNAME,LNAME,ADDRESS,SALARY,BDATE)
3 VALUES
(‘21010’,’AGUS’,’BUDIONO’,’Jl. KETAPANG 12’,
4
‘700000’,’12-DEC-78’);
Dapat dilihat hasilnya
dengan
SQL> SELECT * FROM EMPLOYEE ;
Perlu diperhatikan bahwa nilai
Constraint yang telah ada harus dipatuhi, misalnya jika kolom itu not null,
maka pada saat insert harus memiliki values, atau suatu kolom jika
didefinisikan dalam keadaan default maka ketika insert dapat tidak diberikan
sebuah nilai (dalam values dikosongkan) maka akan diisi dengan nilai
defaultnya.
No comments:
Post a Comment
silahkan membaca dan berkomentar