Chúng tôi có thể thay đổi kiểu dữ liệu của cột trong bảng bằng cách sử dụng thay đổi cột sửa đổi bảng trong oracle
ALTER TABLE table_nameMODIFY column_name;
Có thể thực hiện nhiều hành động như
(a) thay đổi kiểu dữ liệu
(b) Rút ngắn hoặc mở rộng kiểu dữ liệu
(c) Thay đổi giá trị mặc định
(d) Thay đổi thành cho phép null hoặc không nulls
(e) Hiển thị cột
(d) Sửa đổi cột ảo
Hãy bắt đầu từng cái một
Kiểu dữ liệu thay đổi cột Oracle MODIFY
Bạn chỉ có thể sửa đổi kiểu dữ liệu thay đổi cột nếu cột đó trống
SQL> CREATE TABLE Books_master (Book_Id NUMBER (6,0), Title VARCHAR2 (50), Author VARCHAR2 (50), ISBN VARCHAR2 (25), BCost NUMBER (6,0), Publish_Year NUMBER (4,0) , CONSTRAINT Books_master_PK PRIMARY KEY (Book_Id), CONSTRAINT Books_master_UK1 UNIQUE (Title, Author), CONSTRAINT Books_master_UK2 UNIQUE (ISBN)); Bảng đã tạo
Vì bảng trống, chúng tôi có thể sửa đổi kiểu dữ liệu thay đổi cột
SQL> bảng thay đổi Books_master sửa đổi ISBN NUMBER (6,0); Bảng đã thay đổi.SQL> bảng thay đổi Books_master sửa đổi ISBN VARCHAR2 (25); Bảng đã được thay đổi.
Hãy chèn một số dữ liệu
SQL> INSERT INTO Books_master (Book_Id, Title, Author, ISBN, BCost, Publish_Year) VALUES (10, 'Hoàn thành / Thuận tiện', 'Ketan Bhagat', 'ISBN 978-93-80349-92-3', 195 , 2013); 1 hàng đã tạo.commit;
Bây giờ một lần nữa, hãy thử sửa đổi cột để thay đổi kiểu dữ liệu
SQL> bảng thay đổi Books_master sửa đổi số ISBN (6,0); bảng thay đổi Books_master sửa đổi số ISBN (6,0) * LỖI ở dòng 1:ORA-01439:cột được sửa đổi phải để trống để thay đổi kiểu dữ liệuBây giờ chúng ta có thể vô hiệu cột đó và chạy câu lệnh này thành công
SQL> cập nhật Books_master set ISBN =null; 1 hàng được cập nhật.SQL> cam kết; Hoàn thành cam kết.SQL> bảng thay đổi Books_master sửa đổi ISBN NUMBER (6,0); Bảng đã thay đổi.Bây giờ phải làm gì nếu chúng ta muốn giữ lại dữ liệu, có nhiều lựa chọn
(a) Thêm cột mới làm kiểu dữ liệu mới, sao chép dữ liệu vào cột này, xóa cột cũ, đổi tên cột mới thành tên cột thực:thay đổi bảng books_master thêm số ISBN1; cập nhật books_master set ISBN1 =to_number (ISBN); thay đổi bảng thả cột ISBN; thay đổi bảng đổi tên cột ISBN1 thành ISBN;(b) Sử dụng DBMS_REDEFINITION và xây dựng lại bảng của bạn với các cột mới
Oracle MODIFY cột Rút ngắn hoặc mở rộng kiểu dữ liệu (thay đổi bảng sửa đổi kích thước cột oracle)
Điều này được sử dụng khi chúng ta muốn thay đổi các byte hoặc ký tự VARCHAR.
Ví dụỞ đây, chúng tôi đang tăng độ dài VARCHAR từ 50 lên 100
SQL> bảng thay đổi Books_master sửa đổi tiêu đề VARCHAR2 (100); Bảng đã được thay đổi.Bây giờ nếu chúng ta đang cố gắng rút ngắn độ dài từ 100 xuống 10
SQL> bảng thay đổi Books_master sửa đổi tiêu đề VARCHAR2 (10); bảng thay đổi Books_master sửa đổi tiêu đề VARCHAR2 (10) * LỖI ở dòng 1:ORA-01441:không thể giảm độ dài cột vì một số giá trị quá lớnĐiều này xảy ra vì dữ liệu hiện có không phù hợp với kích thước đó. Vì vậy, có thể tăng độ dài hoặc cập nhật cột đó
SQL> bảng thay đổi Books_master sửa đổi tiêu đề VARCHAR2 (20); Bảng đã thay đổi.Giá trị mặc định của cột Oracle MODIFY
nếu chúng ta phải sửa đổi giá trị mặc định của cột
SQL> thay đổi bảng BOOKS_MASTER sửa đổi BCOST mặc định 1000; Bảng đã thay đổi.Bây giờ, lần sau nếu bất kỳ lần chèn nào xảy ra và BCOST là null, nó sẽ có giá trị mặc định là 1000
thay đổi bảng BOOKS_MASTER sửa đổi BCOST mặc định 1000; Đã thay đổi bảng.SQL> CHÈN VÀO Books_master (Book_Id, Title, Author, ISBN, Publish_Year) VALUES (21, 'Deception', 'Dan', 123,2001); 1 hàng đã được tạo .SQL> commit; commit complete.SQL> chọn BCOST từ Books_master trong đó book_id =21; BCOST -----1000
Cột SỬA ĐỔI Oracle NULL hoặc NOT NULL
Chúng tôi có thể sửa đổi cột để cho phép null hoặc không nulls
SQL> desc books_masterName Null? Nhập ---- --- ---- BOOK_ID NOT NULL NUMBER (6) TITLE VARCHAR2 (20) AUTHOR VARCHAR2 (50) ISBN NUMBER (6) BCOST NOT NULL NUMBER (6) PUBLISH_YEAR NUMBER (4) SQL> bảng thay đổi BOOKS_MASTER sửa đổi PUBLISH_YEAR not null; Table đã thay đổi.SQL> desc books_masterName Null? Nhập ---- ---- ----- BOOK_ID NOT NULL NUMBER (6) TITLE VARCHAR2 (20) AUTHOR VARCHAR2 (50) ISBN NUMBER (6) BOOK_ID NOT NULL NUMBER (6) PUBLISH_YEAR NOT NULL NUMBER (4)Nếu bạn đang thay đổi thành không null, chúng tôi phải có giá trị hiện có, nếu không điều này sẽ không thành công
Khả năng hiển thị cột Oracle MODIFY
Chúng tôi có thể thay đổi mức độ hiển thị của cột bằng Sửa đổi cột
SQL> desc books_masterName Null? Nhập ---- ---- ----- BOOK_ID NOT NULL NUMBER (6) TITLE VARCHAR2 (20) AUTHOR VARCHAR2 (50) ISBN NUMBER (6) BOOK_ID NOT NULL NUMBER (6) PUBLISH_YEAR NOT NULL NUMBER (4) SQL> thay đổi bảng BOOKS_MASTER sửa đổi PUBLISH_YEAR ẩn; Bảng đã thay đổi. Bây giờ cột trở nên vô hìnhSQL> desc books_masterName Null? Nhập ---- ---- ---- BOOK_ID NOT NULL NUMBER (6) TITLE VARCHAR2 (20) AUTHOR VARCHAR2 (50) ISBN NUMBER (6) BCOST NOT NULL NUMBER (6) SQL> bảng thay đổi BOOKS_MASTER sửa đổi PUBLISH_YEAR hiển thị; Bảng đã thay đổi. Bây giờ cột trở nên hiển thị .SQL> desc books_masterName Null? Nhập --- ----- ----- BOOK_ID NOT NULL NUMBER (6) TITLE VARCHAR2 (20) AUTHOR VARCHAR2 (50) ISBN NUMBER (6) BOOK_ID NOT NULL NUMBER (6) PUBLISH_YEAR NOT NULL NUMBER (4)Tôi hy vọng bạn thích bài đăng này trên bảng thay đổi oracle sửa đổi cột. Vui lòng cung cấp phản hồi
Cũng đã đọc
thay đổi bảng thêm cột oracle
thay đổi bảng đổi tên cột oracle
thả cột trong oracle
https://docs.oracle.com/cd/B28359_01/server.111/b28286/ statement_3001.htm