Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Cara Mengubah Tabel di Oracle

Kita sering perlu Mengubah Tabel di Oracle tergantung pada perubahan Persyaratan dan peningkatan. Berikut adalah beberapa poin penting tentang pernyataan Alter table

  • Anda mengubah atau memodifikasi  tabel menggunakan ALTER TABLE  pernyataan.
  • Tabel harus ada dalam skema Anda Untuk mengubah tabel, atau Anda harus memiliki hak istimewa  ALTER objek untuk tabel atau hak istimewa sistem ALTER ANY TABLE.
  • Jika tampilan, tampilan terwujud, pemicu,  indeks berbasis fungsi, batasan pemeriksaan, fungsi, prosedur paket bergantung pada tabel dasar, perubahan tabel dasar atau kolomnya dapat memengaruhi objek dependen Misalnya objek plsql menjadi tidak valid  jika objek tabel dependen diubah dan Anda harus membuatnya valid kembali

Ubah karakteristik fisik (INITRANS atau parameter penyimpanan)

Kita dapat memodifikasi parameter penyimpanan tabel menggunakan pernyataan Alter tabel. Kita bisa memodifikasi inittrans seperti ini

ALTER TABLE TABLE_NAME INITRANS 10;

Memindahkan tabel ke segmen atau tablespace baru

Kita dapat memindahkan tabel non-partisi atau partisi  dari  tabel ke segmen baru atau tablespace baru jika diperlukan

Alter table table_name move tablespace <tablespace name>

Kita bahkan dapat menggunakan perintah pindah untuk mengubah parameter penyimpanan tabel yang tidak dimodifikasi menggunakan perintah ubah tabel

Ubah Tabel di Oracle untuk Mengubah Tipe Data

Kita dapat mengubah tipe data  dari kolom apa pun menggunakan perintah ubah tabel  ubah

ALTER TABLE <table_name>
MODIFY (<column_name>  <new_data_type>);
Before
SQL> desc emp
 Name                                      Null?    Type
 ----------------------------------------- -------- -----------------------
 EMPNO                                     NOT NULL NUMBER(4)
 ENAME                                              VARCHAR2(10)
 JOB                                                VARCHAR2(9)
 MGR                                                NUMBER(4)
 HIREDATE                                           DATE
 SAL                                                NUMBER(7,2)
 COMM                                               NUMBER(7,2)
 DEPTNO                                             NUMBER(2)


After
SQL> desc emp
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 EMPNO                                     NOT NULL NUMBER(4)
 ENAME                                              VARCHAR2(20)
 JOB                                                VARCHAR2(9)
 MGR                                                NUMBER(4)
 HIREDATE                                           DATE
 SAL                                                NUMBER(7,2)
 COMM                                               NUMBER(7,2)
 DEPTNO                                             NUMBER(2)

ubah tipe data kolom di Oracle

Tambahkan kolom baru/Lepaskan kolom/ganti nama kolom

Kita dapat menambahkan kolom baru ke definisi tabel

Menggunakan perintah ubah tabel add

ALTER TABLE <table_name>
ADD (<New column_name>  <new_data_type>);

Oracle memungkinkan Anda untuk mengganti nama kolom yang ada dalam sebuah tabel. Gunakan klausa RENAME COLUMN dari pernyataan ALTER TABLE untuk mengganti nama kolom

Oracle memungkinkan Anda untuk menjatuhkan kolom di tabel menggunakan perintah

Ubah kolom drop table ;
Silakan periksa artikel di bawah ini untuk mempelajarinya secara detail

ubah tabel tambahkan oracle kolom

Tetapkan Kolom yang Tidak Digunakan  dan Lepaskan kolom yang tidak digunakan

jika Anda khawatir tentang sumber daya yang dikonsumsi dalam menjatuhkan kolom, Anda dapat menggunakan pernyataan ALTER TABLE…SET UNUSED.

Pernyataan ini menandai satu atau lebih kolom sebagai tidak digunakan tetapi tidak benar-benar menghapus data kolom target atau memulihkan ruang disk yang ditempati oleh kolom ini.

  • Kolom yang ditandai sebagai tidak digunakan tidak ditampilkan dalam kueri atau tampilan kamus data, dan namanya dihapus sehingga kolom baru dapat menggunakan kembali nama tersebut. Semua batasan, indeks, dan statistik yang ditentukan pada kolom juga dihapus.
Example
ALTER TABLE <table_name>
SET UNUSED COLUMN <column_name>;

Kita dapat membuang kolom yang tidak digunakan nanti ketika sumber daya lebih rendah menggunakan perintah

ALTER TABLE <table_name>
Drop  UNUSED COLUMN ;

Tambahkan, ubah, atau hapus batasan integritas yang terkait dengan tabel  atau Anda juga dapat mengaktifkan/menonaktifkan batasan

Tambahkan batasan  dilakukan menggunakan ubah tabel tambahkan batasan

ALTER TABLE EMP ADD CONSTRAINT EMP_FK FOREIGN KEY (DEPT_NO) REFERENCES 
DEPT(DEPT_NO);

Menjatuhkan Batasan – dilakukan dengan menggunakan

perintah
ALTER TABLE DROP CONSTRAINT <constraint_name> command;

Mengaktifkan/Menonaktifkan Batasan – Batasan dapat dibuat dalam mode DISABLE/ENABLE atau dapat dinonaktifkan atau diaktifkan menggunakan perintah

ALTER TABLE ENABLE/DISABLE CONSTRAINT <constraint_name>

Ganti nama tabel

Oracle memungkinkan Anda untuk mengganti nama nama tabel juga

Rename <table name>  to <new table name>;

Perubahan tabel cache/no-cache,  Kompresi, paralelisme

Oracle mengizinkan Perubahan tabel cache/no-cache,  Kompresi, paralelisme

Artikel Terkait

Daftar Semua Tabel di Oracle
buat tabel Oracle
ora-20005:statistik objek dikunci
ubah pemindahan tabel
cara memeriksa semua batasan pada tabel di Oracle
https ://docs.Oracle.com/cd/B28359_01/server.111/b28286/statements_3001.htm


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Terjemahan Microsoft T-SQL ke Oracle SQL

  2. Hash bergabung di Oracle dengan contoh

  3. Integrator Data Oracle (ODI)

  4. Bagaimana cara membagi kolom varchar sebagai beberapa nilai dalam SQL?

  5. ORACLE - ORA-01843:bukan bulan yang valid