Rumah >pangkalan data >Oracle >Bagaimana untuk mengubah suai struktur jadual dalam oracle

Bagaimana untuk mengubah suai struktur jadual dalam oracle

青灯夜游
青灯夜游asal
2022-01-13 11:15:4510410semak imbas

Dalam Oracle, anda boleh menggunakan pernyataan "ALTER TABLE" untuk mengubah suai struktur jadual Penyataan ini boleh menukar jadual asal dengan menambah atau memadam lajur, menukar jenis lajur asal, menamakan semula lajur atau jadual, dsb. Struktur, sintaks "UBAH nama jadual JADUAL [ubah suai pilihan]". ALTER JADUAL nama jadual [Ubah suai pilihan]

Bagaimana untuk mengubah suai struktur jadual dalam oracle

Persekitaran pengendalian tutorial ini: sistem Windows 7, Oracle versi 11g, komputer Dell G3.

Dalam Oracle, anda boleh menggunakan pernyataan "ALTER TABLE" untuk mengubah suai struktur jadual. Pernyataan

ALTER TABLE boleh menukar struktur jadual asal, seperti menambah atau memadam lajur, menukar jenis lajur asal, menamakan semula lajur atau jadual, dsb.

Sintaks pernyataan ALTER TABLE:

ALTER TABLE 表名 [修改选项]

Dalam pernyataan di atas,

  • Pertama, nyatakan nama jadual yang akan diubah suai.

  • Kedua, nyatakan operasi pengubahsuaian yang ingin anda lakukan selepas nama jadual. Penyataan

ALTER TABLE boleh digunakan:

  • Tambah satu atau lebih lajur
  • Ubah suai takrifan lajur
  • Padamkan Satu atau lebih lajur
  • Namakan semula lajur
  • Namakan semula jadual

Mari kita lihat beberapa contoh untuk memahami cara setiap operasi berfungsi.

Oracle ALTER TABLE Contoh

Kami akan menunjukkan menggunakan jadual persons yang dibuat dalam tutorial sebelumnya.

-- 12c语法
CREATE TABLE persons(
    person_id NUMBER GENERATED BY DEFAULT AS IDENTITY,
    first_name VARCHAR2(50) NOT NULL,
    last_name VARCHAR2(50) NOT NULL,
    PRIMARY KEY(person_id)
);

1 Contoh penambahan lajur

Untuk menambah lajur baharu pada jadual, gunakan sintaks berikut:

ALTER TABLE table_name
ADD column_name type constraint;

Sebagai contoh, penyataan berikut menambah lajur baharu bernama birthdate pada jadual persons:

ALTER TABLE persons 
ADD birthdate DATE NOT NULL;

Jika anda melihat pada jadual persons, anda akan melihat bahawa tarikh birthdate lajur ditambahkan pada lajur Akhir senarai:

DESC persons; 

Name       Null     Type         
---------- -------- ------------ 
PERSON_ID  NOT NULL NUMBER       
FIRST_NAME NOT NULL VARCHAR2(50) 
LAST_NAME  NOT NULL VARCHAR2(50) 
BIRTHDATE  NOT NULL DATE

Untuk menambah berbilang lajur pada jadual pada masa yang sama, letakkan lajur baharu dalam kurungan seperti berikut:

ALTER TABLE table_name
ADD (
    column_name type constraint,
    column_name type constraint,
    ...
);

Lihat pada contoh di bawah:

ALTER TABLE persons 
ADD (
    phone VARCHAR(20),
    email VARCHAR(100)
);

Dalam contoh ini, penyata menambah dua lajur baharu bernama users dan phone dalam jadual email.

DESC persons

Name       Null     Type          
---------- -------- ------------- 
PERSON_ID  NOT NULL NUMBER        
FIRST_NAME NOT NULL VARCHAR2(50)  
LAST_NAME  NOT NULL VARCHAR2(50)  
BIRTHDATE  NOT NULL DATE          
PHONE               VARCHAR2(20)  
EMAIL               VARCHAR2(100)

2. Contoh mengubah suai sifat lajur

Untuk mengubah suai sifat lajur, gunakan sintaks berikut:

ALTER TABLE table_name
  MODIFY column_name type constraint;

Sebagai contoh, penyataan berikut menukar lajur birthdate kepada lajur kosong:

ALTER TABLE persons MODIFY birthdate DATE NULL;

Kami mengesahkan struktur jadual persons sekali lagi:

DESC persons

Name       Null     Type          
---------- -------- ------------- 
PERSON_ID  NOT NULL NUMBER        
FIRST_NAME NOT NULL VARCHAR2(50)  
LAST_NAME  NOT NULL VARCHAR2(50)  
BIRTHDATE           DATE          
PHONE               VARCHAR2(20)  
EMAIL               VARCHAR2(100)

Seperti yang ditunjukkan Lihat, birthdate tarikh menjadi tidak berkuasa.

Untuk mengubah suai berbilang lajur, gunakan sintaks berikut:

 ALTER TABLE table_name
  MODIFY ( column_1 type constraint,
          column_1 type constraint,
         ...);

Sebagai contoh, penyataan berikut menukar lajur phone dan email kepada lajur NOT NULL dan emailPanjang lajur dikembangkan kepada 255 aksara:

ALTER TABLE persons MODIFY(
    phone VARCHAR2(20) NOT NULL,
    email VARCHAR2(255) NOT NULL
);

Sahkan persons struktur jadual sekali lagi:

DESC persons;

Name       Null     Type          
---------- -------- ------------- 
PERSON_ID  NOT NULL NUMBER        
FIRST_NAME NOT NULL VARCHAR2(50)  
LAST_NAME  NOT NULL VARCHAR2(50)  
BIRTHDATE           DATE          
PHONE      NOT NULL VARCHAR2(20)  
EMAIL      NOT NULL VARCHAR2(255)

3. Contoh pemadaman lajur sedia ada

Untuk memadamkan lajur sedia ada daripada jadual, gunakan sintaks berikut:

ALTER TABLE table_name
DROP COLUMN column_name;

Pernyataan ini memadamkan lajur daripada struktur jadual dan memadamkan data. Contoh berikut memadamkan lajur jenis tarikh persons daripada jadual birthdate:

ALTER TABLE persons
DROP
  COLUMN birthdate;

Melihat struktur jadual persons sekali lagi, anda akan mendapati lajur birthdate telah dipadamkan:

DESC persons;

Name       Null     Type          
---------- -------- ------------- 
PERSON_ID  NOT NULL NUMBER        
FIRST_NAME NOT NULL VARCHAR2(50)  
LAST_NAME  NOT NULL VARCHAR2(50)  
PHONE      NOT NULL VARCHAR2(20)  
EMAIL      NOT NULL VARCHAR2(255)

Untuk memadamkan berbilang lajur pada masa yang sama, gunakan sintaks berikut:

ALTER TABLE table_name 
DROP (column_1,column_2,...);

Sebagai contoh, pernyataan berikut memadamkan lajur phone dan email daripada lajur jadual peribadi:

ALTER TABLE persons
DROP
  ( email, phone );

Mari kita lihat lagi jadual persons: lajur

DESC persons;

Name       Null     Type         
---------- -------- ------------ 
PERSON_ID  NOT NULL NUMBER       
FIRST_NAME NOT NULL VARCHAR2(50) 
LAST_NAME  NOT NULL VARCHAR2(50)

email dan phone telah dipadamkan seperti yang dijangkakan.

4. Contoh menamakan semula lajur

Bermula dengan versi 9i, Oracle telah menambah klausa untuk menamakan semula lajur seperti berikut:

ALTER TABLE table_name
RENAME COLUMN column_name TO new_name;

Contohnya, pernyataan berikut menamakan semula lajur first_name kepada lajur forename:

ALTER TABLE persons 
RENAME COLUMN first_name TO forename;

Pernyataan berikut menyemak keputusan:

DESC persons;

Name      Null     Type         
--------- -------- ------------ 
PERSON_ID NOT NULL NUMBER       
FORENAME  NOT NULL VARCHAR2(50) 
LAST_NAME NOT NULL VARCHAR2(50)

5. Contoh menamakan semula jadual

Untuk menamakan semula jadual kepada nama jadual baharu name, gunakan sintaks berikut:

ALTER TABLE table_name
RENAME TO new_table_name;

Sebagai contoh, pernyataan berikut akan menamakan semula jadual Nama semula kepada users jadual: people

ALTER TABLE persons RENAME TO people;
Tutorial yang disyorkan: "

Tutorial Oracle"

Atas ialah kandungan terperinci Bagaimana untuk mengubah suai struktur jadual dalam oracle. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn