Mengubah Table dan Constraint
Setelah kita menciptakan table, kita dapat memodifikasi struktur table dengan menggunakan perintah ALTER TABLE. Kita dapat menambah kolom, menghapus kolom, memodifikasi panjang kolom, menambah atau menghapus constraints, dan meng-enable-kan atau men-disable-kan constraints tersebut menggunakan perintah ini.
Jika kita ingin menghapus table, baik data maupun strukturnya, dapat dilakukan dengan perintah DROP TABLE. Perintah-perintah lain yang berpengaruh terhadap table dan akan kita bahas adalah:
- RENAME, untuk mengubah nama table
- TRUNCATE, untuk menghapus data dari table
- COMMENT, untuk menambahkan komentar tentang suatu objek database ke dalam data dictionary
Seluruh perintah-perintah tersebut termasuk ke dalam perintah-perintah Data Definition Languate (DDL). Ketika kita mengeksekusi statement-statement ini, akan terjadi proses commit otomatis. Kita tidak dapat me-rollback perintah-perintah DDL. Oleh sebab itu, berhati-hatilah ketika menggunakannya.
12.1. Menambahkan Kolom
Kita dapat menambahkan kolom ke dalam table dengan menggunakan perintah ALTER TABLE dengan klausa ADD.
Sintaks
ALTER TABLE table
ADD (column datatype [DEFAULT expr][NOT NULL]
[, column datatype] . . .);
dimana:
- table : nama table
- column: nama kolom baru
- datatype : tipe data dan panjangnya
- DEFAULT expr: menentukan nilai default dari kolom baru
- NOT NULL: menambahkan contraint NOT NULL untuk kolom baru
12.2. Memodifikasi Column
Kita dapat memodifikasi kolom dengan menggunakan perintah ALTER TABLE dengan klausa MODIFY. Modifikasi kolom dapat mengandung perubahan tipe data, panjang, nilai default, dan constraint NOT NULL.
Sintaks
ALTER TABLE table
MODIFY (column datatype [DEFAULT expr][NOT NULL]
[, column datatype] . . .);
dimana:
- table: nama table
- column: nama kolom
- datatype: tipe data dan panjangnya
- DEFAULT expr: menentukan nilai default dari kolom
- NOT NULL : menambahkan contraint NOT NULL untuk kolom
Aturan Penggunaan
- Memperbesar lebar kolom atau presisi untuk kolom bertipe numerik
- Memperkecil lebar kolom jika kolom hanya mengandung nilai null atau jika table tidak memiliki data
- Mengubah tipe data jika kolom mengandung nilai null
- Mengkonversi tipe data CHAR menjadi VARCHAR2 atau sebaliknya, jika kolom mengandung nilai null atau jika kita tidak mengubah panjang tipe datanya
- Perubahan ke nilai default akan berefek kepada proses insert berikutnya, tidak terhadap data yang sudah ada
- Menambahkan constraint NOT NULL hanya jika tidak terdapat nilai null pada kolom
Versi Oracle terbaru menyediakan kemampuan untuk mengubah nama kolom, dengan perintah:
ALTER TABLE table
RENAME COLUMN old_name TO new_name;
12.3. Menambahkan dan Menghapus Contraint
Kita dapat menambah dan menghapus contraint pada table yang telah ada dengan menggunakan perintah ALTER TABLE dengan klausa ADD atau DROP.
Sintaks
ALTER TABLE table
ADD [CONSTRAINT constraint] type (column);
dimana:
- table: nama table
- contraint: nama contraint
- type: tipe contraint
- column: nama kolom yang terpengaruh oleh constraint
Catatan:
Sintaks constraint name adalah opsional, meskipun direkomendasikan. Jika kita tidak memberi nama terhadap contraint, system akan menciptakan nama contraint tersebut secara otomatis.
Aturan penggunaan
- Kita dapat menambah, menghapus, mengaktifkan, dan menonaktifkan constraint, tetapi kita tidak dapat memodifikasi strukturnya
- Kita dapat menambahkan contraint NOT NULL terhadap kolom dengan menggunakan klausa MODIFY dari perintah ALTER TABLE
Untuk menghapus constraint, kita dapat mengidentifikasi nama constraint dari data dictionary views USER_CONSTRAINTS dan USER_CONS_COLUMNS. Kemudian, kita dapat menggunakan perintah ALTER TABLE dengan klausa DROP. Opsi CASCADE pada klausa DROP menyebabkan seluruh constraint yang bergantung terhadap constraint yang kita hapus akan ikut terhapus.
Sintaks
ALTER TABLE table
DROP PRIMARY KEY | UNIQUE (column) |
CONSTRAINT constraint [CASCADE];
dimana:
- table: nama table
- column: nama kolom dari constraint yang akan dihapus
- constraint: nama constraint
Catatan:
Ketika kita menghapus integrity constraint, constraint tersebut tidak lagi dijalankan oleh Oracle dan tidak lagi tersedia di dalam data dictionary.
Oracle Magazine contains technology strategy articles, sample code, tips, Oracle and partner news, how to articles for developers and DBAs, and more. Oracle (NASDAQ: ORCL) is the world’s largest enterprise software company.
For more information about Oracle, please visit their Web site at http://www.oracle.com. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners.
12.4. Menghidupkan dan Mematikan Constraint
Kita dapat menghidupkan dan mematikan constraint tanpa menghapus atau menciptakannya ulang dengan menggunakan perintah ALTER TABLE dengan klausa ENABLE atau DISABLE.
Sintaks
ALTER TABLE table
DISABLE | ENABLE CONSTRAINT constraint [CASCADE];
Aturan penggunaan
- Jika kita menghidupkan constraint, constraint tersebut terpakai pada seluruh data dalam table. Seluruh data dalam table harus memenuhi ketetapan dari contraint tersebut.
- Jika kita menghidupkan contraint UNIQUE atau PRIMARY KEY, maka UNIQUE dan PRIMARY KEY index otomatis diciptakan.
- Kita dapat menggunakan klausa ENABLE dan DISABLE baik pada perintah CREATE TABLE maupun perintah ALTER TABLE.
- Klausa CASCADE mematikan constraint yang bergantung dibawahnya
12.5. Menghapus Table
Perintah DROP TABLE menghapus definisi table. Ketika kita menghapus table, database akan kehilangan seluruh data dalam table dan seluruh index yang terasosiasi dengannya. Opsi CASCADE CONTRAINTS jika menghapus referential integrity constraint yang bergantung kepada table tersebut.
Sintaks
DROP TABLE table [CASCADE CONSTRAINTS];
dimana:
- table: nama table
Aturan penggunaan
- Seluruh data dihapus dari table
- Seluruh view, synonym, stored procedure, function, atau package tetap ada, tetapi statusnya menjadi invalid
- Seluruh transaksi akan di-commit
- Hanya pencipta table tersebut sajalah atau user dengan privilege DROP ANY TABLE yang dapat menghapus table tersebut
Catatan:
Perintah DROP TABLE, sekali dieksekusi, tidak dapat diputar balik. Oracle tidak memberikan pertanyaan ketika kita menjalankan perintah DROP TABLE. Jika kita memiliki table tersebut atau memiliki privilege dengan level tinggi, maka table segera terhapus. Seluruh perintah-perintah DDL mengeksekusi commit, sehingga menyebabkan transaksi menjadi permanen.
12.6. Mengubah Nama dan Menghapus Isi Table
Perintah-perintah DDL tambahan termasuk perintah RENAME, yang mana digunakan untuk mengubah nama table, view, sequence, atau synonym, dan perintah TRUNCATE TABLE, yang mana digunakan untuk menghapus seluruh data dari table dan untuk membebaskan tempat penyimpanan yang digunakan oleh table tersebut.
Sintaks – Perintah RENAME
RENAME old_name TO new_name;
Kita harus merupakan pemilik objek yang akan diubah namanya
Sintaks – Perintah TRUNCATE
TRUNCATE TABLE table;
Kita harus merupakan pemilik table atau memiliki system privilege DELETE TABLE untuk dapat melakukan TRUNCATE terhadap table.
Catatan:
Perintah DELETE dapat juga menghapus seluruh data dari table, tetapi ia tidak membebeaskan tempat penyimpanan yang digunakan oleh table tersebut.
12.7. Menambahkan Komentar Terhadap Table
Kita dapat menambahkan komentar hingga 2000 bytes, terhadap column, table, view, atau snapshot dengan menggunakan perintah COMMENT. Komentar tersimpan didalam data dictionary dan dapat dilihat didalam salah satu data dictionary views berikut didalam kolom COMMENTS:
- ALL_COL_COMMENTS
- USER_COL_COMMENTS
- ALL_TAB_COMMENTS
- USER_TAB_COMMENTS
Sintaks
COMMENT ON TABLE table | COLUMN table.column
IS ‘text’;
dimana:
- table: nama table
- column: nama column
- text: isi komentar
Contoh:
Menambahkan komentar pada table EMPLOYEE.
COMMENT ON TABLE employee IS ‘Employee Information’;
Menghapus komentar pada column.
COMMENT ON COLUMN employee.last_name IS ”;
Silahkan melanjutkan membaca pembahasan Menciptakan Sequence
Catatan:
Untuk mempraktekkan artikel-artikel mengenai Oracle SQL & PL/SQL Anda dapat mendownload script table disini, lalu jalankan sesuai live demo (browser Anda harus mendukung Flash Player).
| Buku ini membahas berbagai macam tip dan trik yang sangat berguna bagi Anda pembaca pengguna database Oracle. Pemula, mahasiswa, programmer, maupun database administrator yang mengharapkan solusi cepat dalam menangani permasalahan-permasalahan dalam penggunaan database Oracle dapat membaca buku ini. Anda tidak harus membaca buku ini secara urut karena buku ini di susun berdasarkan topik permasalahan, dan Anda dapat membaca topik-topik yang sesuai dengan permasalahan yang Anda hadapi. Dapat di beli di toko buku Gramedia, Gunung Agung, Uranus, Karisma dsb. Harga Rp. 24.800,- (157 halaman) |


[…] Silahkan melanjutkan membaca pembahasan Mengubah Table dan Constraint […]