Well well,,, kali ini aku mau share lanjutan dari post sebelumnya yaitu Praktikum Basis Data Oracle Part 1 dimana sebelumnya membahas mengenai pembuatan user, tablespace dan syart-syarat awal yang diperlukan untuk memulai pembahasan/pembelajaran pada umumnya mengenai Oracle Database.
Di Part 2 ini aku ingin share mengenai beberapa hal, diantaranya adalah :
- Membuat sebuah tabel dilengkapi dengan constraint
- Mengubah nama tabel (rename table)
- Merubah nama field/kolom dari sebuah tabel
- Menghapus tabel
- Menambahkan index, menambah constraint pada tabel
- Membuat tabel dengan meng-copy / berdasarkan struktur dari tabel lain
- Melihat constraint yang ada pada suatu tabel
Yah,,, lumayan poin yang akan dibahas kali ini, semoga bisa bermanfaat bagi semua 🙂
Pertama (Membuat Tabel Dilengkapi Constraint)
Berikut ini contoh untuk membuat suatu tabel dengan nama TaMod2 dengan 5 field/kolom, lihat script query berikut :
CREATE TABLE TaMod2 ( kode_user INT, nama_user VARCHAR(30) NOT_NULL, telepon VARCHAR(12), email VARCHAR(25), alamat VARCHAR(100), CONSTRAINT pk_user PRIMARY KEY(kode_user));
Kedua (Merubah Nama Tabel)
Misalkan dari tabel diatas, kita akan merubah namanya dari TaMod2 menjadi TabMod2, maka bisa menggunakan query seperti berikut ini :
RENAME TaMod2 TO TabMod2;
Ketiga (Merubah Nama Kolom & Merubah Tipe Data Field/Kolom)
-- Query untuk merubah nama field / kolom -- Contohnya untuk merubah kolom nama_user menjadi nama_pengguna ALTER TABLE TabMod2 RENAME COLUMN nama_user TO nama_pengguna; -- Query untuk merubah tipe data dari field tertentu pada tabel -- Contoh berikut adalah merubah tipe data dari field kode_user -- yang mana awalnya bertipe data INT, dirubah menjadi VARCHAR ALTER TABLE TabMod2 MODIFY (kode_user VARCHAR(10));
Keempat (Menghapus Tabel)
Untuk menghapus tabel di Oracle, ada 2 metode yang perlu diketahui, yaitu dihapus secara biasa tapi masih tersisa di Recycle Bin-nya Oracle, atau benar-benar dihapus tanpa bekas. Berikut ini adalah query yang bisa kalian pakai, pertama adalah menghapus secara biasa dan query yang kedua untuk benar-benar menghapus tabel tanpa sisa di BIN (Recycle Bin Oracle).
DROP TABLE TabMod2;
Dengan query diatas (Drop), kita masih bisa mengembalikan atau meng-undo agar tabel bisa kembali lagi, gag jadi terhapus, bisa pakai query ini :
FLASHBACK TABLE TabMod2 TO BEFORE DROP;
Dan berikut ini query untuk melihat isi RECYCLE BIN-nya Oracle, jika ada tabel yang dihapus dengan query DROP pasti masuk disini.
SELECT * FROM RECYCLEBIN;
Dan ini adalah query untuk menghapus Tabel tanpa masuk di RECYCLE BIN, hampir sama dengan fungsi Shift+Del, querynya adalah :
PURGE TABLE TabMod2; -- Contoh untuk menghapus tabel di RECYCLE BIN PURGE TABLE "BIN$KIkRl/BNTzmEdg9BW4Z3Pg==$0"; -- Dan beberapa pengetahuan lain yang hampir sama dengan PURGE ALL PURGE RECYCLEBIN; PURGE DBA_RECYCLEBIN; PURGE USER_RECYCLEBIN;
Kelima (Menambahkan Index / Constraint di Suatu Tabel)
CREATE INDEX FK_EMAIL ON TabMod2 (email ASC); ALTER TABLE TabMod2 ADD CONSTRAINT FK_EMAIL FOREIGN KEY (KD_EMAIL) REFERENCES TB_EMAIL (ID_EMAIL);
Keenam (Membuat Tabel Dengan Copy Struktur Tabel Lain)
Sebelumnya, misalkan kita buat tabel baru dengan nama Tab_Nama_01 dengan query berikut ini :
CREATE TABLE Tab_Nama_01 ( nomor_peserta varchar(12) PRIMARY KEY NOT NULL, CONSTRAINT nopes CHECK(LENGTH(nomor_peserta)=12), nama_siswa varchar(50) NOT NULL, t_lahir varchar(20) NOT NULL, ttl DATE NOT NULL, gender char(1) NOT NULL, nama_ayah varchar(50) NOT NULL, nama_ibu varchar(50) NOT NULL, nama_wali varchar(50) NOT NULL, telepon varchar(15) NOT NULL, almt_sis varchar(150) NOT NULL, kota varchar(50) NOT NULL, kab varchar(50) NOT NULL, n_b_indo NUMBER NOT NULL, n_b_ingg NUMBER NOT NULL, n_mat NUMBER NOT NULL, n_ipa NUMBER NOT NULL, asal_sek varchar(70) NOT NULL, tahun NUMBER(4) NOT NULL, CONSTRAINT th CHECK(LENGTH(tahun)=4));
Kemudian, kita akan membuat tabel baru dengan nama Tab_Nama_02 dengan beberapa field yang meniru struktur dari tabel pertama yaitu Tab_Nama_01, berikut ini contoh querynya :
CREATE TABLE Tab_Nama_02 AS SELECT a.*, ((a.n_b_indo + a.n_b_ingg + a.n_mat + a.n_ipa)/4) danem, TO_DATE(a.TTL, 'MONTH') bulan, TO_DATE(a.TTL, 'DD') tanggal, TO_DATE(a.TTL, 'YYYY') tahun_lahir, SUBSTR(nama_siswa,1, INSTR(nama_siswa,',')-1) nama_depan, SUBSTR(nama_siswa,(INSTR(nama_siswa,',')+1),LENGTH(nama_siswa)) nama_belakang FROM TAB_NAMA_01 a;
Ketujuh (Melihat Constraint Dari Tabel)
Beriku ini adalah contoh query untuk melihat atau menampilkan constarint apa aja pada table yang udah pernah kita buat sebelumnya. Ada beberapa cara :
-- 1 SELECT * FROM USER_CONSTRAINTS WHERE TABLE_NAME = 'Tab_Nama_02'; -- 2 SELECT * FROM ALL_CONSTRAINTS WHERE TABLE_NAME = 'Tab_Nama_02'; -- 3 SELECT CONSTRAINT_NAME, COLUMN_NAME FROM USER_CONS_COLOM WHERE TABLE_NAME = 'Tab_Nama_01';
Yap… akhirnya sampai ujung juga. Capek juga ya, haha.. oke deh semoga bermanfaat bagi teman-teman. Sampai jumpa lagi ya di PART 3.