Rumah >pangkalan data >Oracle >Bagaimana untuk mengubah suai struktur jadual dalam oracle
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]
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:
Mari kita lihat beberapa contoh untuk memahami cara setiap operasi berfungsi.
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) );
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)
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 email
Panjang 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)
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.
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)
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!