Cách thay đổi bảng thêm cột trong Cơ sở dữ liệu oracle
- Bạn Thêm một cột mới bằng cách sử dụng ALTER TABLE ADD COLUMN tuyên bố trong Oracle
- Bảng phải được chứa trong lược đồ của bạn Để thay đổi một bảng hoặc bạn phải có đặc quyền đối tượng ALTER cho bảng hoặc đặc quyền hệ thống ALTER BẤT KỲ BẢNG.
- Nếu một dạng xem, dạng xem cụ thể hóa, bộ kích hoạt, chỉ mục dựa trên hàm, kiểm tra ràng buộc, hàm, thủ tục của gói phụ thuộc vào bảng cơ sở, thì việc thay đổi bảng cơ sở hoặc các cột của nó có thể ảnh hưởng đến đối tượng phụ thuộc. Ví dụ:các đối tượng PLSQL trở thành không hợp lệ nếu đối tượng bảng phụ thuộc bị thay đổi và bạn phải làm cho chúng hợp lệ trở lại
Chúng ta có thể thêm cột mới vào định nghĩa bảng Sử dụng lệnh thêm bảng thay đổi
ALTER TABLE tech_master ADD (name varchar2(9)); Table Altered
- Trước 11g, nếu một cột mới được thêm vào bảng, thì ban đầu cột đó là NULL trừ khi bạn chỉ định mệnh đề DEFAULT. . Khi bạn chỉ định một giá trị mặc định, cơ sở dữ liệu ngay lập tức cập nhật từng hàng với giá trị mặc định. Lưu ý rằng điều này có thể mất một chút thời gian và trong quá trình cập nhật, có một khóa DML độc quyền trên bảng.
- Đối với một số loại bảng (ví dụ:bảng không có cột LOB), nếu bạn chỉ định cả ràng buộc NOT NULL và giá trị mặc định, thì cơ sở dữ liệu có thể tối ưu hóa thao tác thêm cột và giảm đáng kể lượng thời gian của bảng bị khóa đối với DML. Tương tự là trường hợp bổ sung cột không rỗng với giá trị mặc định
- Oracle đã giới thiệu tính năng thêm cột nhanh trong 11g, Vì vậy, khi chúng tôi thêm cột không null với giá trị mặc định hoặc cột null với giá trị mặc định, oracle thêm cột ngay lập tức và không cập nhật từng hàng với giá trị mặc định. S
- o không phải chịu bất kỳ hình phạt nào đối với việc tạo lại và hoàn tác. Khi người dùng chọn cột cho bản ghi hiện có, Oracle sẽ lấy thông tin về giá trị mặc định từ từ điển dữ liệu và trả lại cho người dùng.
Bạn không thể chỉ định vị trí cột sẽ xuất hiện. Cột mới được thêm vào trở thành cột cuối cùng
Tương tự, chúng tôi có thể thêm nhiều cột vào bảng
ALTER TABLE table_name ADD (col1 column datatype [default expr], col2 column datatype [default expr], ... coln column datatype [default expr]); Example ALTER TABLE customer_master ADD (location_name varchar2(100), last_login date);
Quy ước đặt tên cột giống như trong trường hợp câu lệnh Tạo bảng
- Tên bạn chọn cho một cột phải tuân theo các quy tắc tiêu chuẩn sau:
- Tên phải bắt đầu bằng chữ cái A-Z hoặc a-z
- nó có thể chứa số và dấu gạch dưới
- Có thể là UPPER hoặc viết thường
- Có thể dài tối đa 30 ký tự
- Không thể sử dụng cùng tên của một đối tượng hiện có khác trong giản đồ của bạn
- Không được là máy chủ Oracle và từ dành riêng cho SQL
Các kiểu dữ liệu lại giống như câu lệnh tạo bảng
Character | -CHAR, NCHAR, VARCHAR2 &NVARCHAR2. - Kiểu dữ liệu CHAR là một chuỗi chữ và số có độ dài cố định có độ dài tối đa tính bằng byte. -Khi tạo kiểu dữ liệu CHAR, cơ sở dữ liệu sẽ bảo toàn không gian cho dữ liệu đến và nếu dữ liệu ngắn hơn kích thước tối đa, nó sẽ được đệm khoảng trắng ở bên phải -Kiểu dữ liệu VARCHAR2 là một biến -độ dài chuỗi chữ và số, có độ dài tối đa tính bằng byte. Nó có thể lưu trữ lên đến 4000 byte. |
Số | -NUMBER -Kiểu dữ liệu NUMBER lưu trữ số với độ chính xác và tỷ lệ. -Kiểu dữ liệu số lưu trữ số nguyên âm và số nguyên dương, số dấu phẩy động và số dấu phẩy động - Khi một cột được xác định là NUMBER (6, 2), phạm vi giá trị có thể được lưu trữ từ –9999,99 đến 9999,99. Oracle làm tròn các số dấu phẩy động. |
Ngày và giờ | –DATE, TIMESTAMP (với múi giờ hoặc múi giờ địa phương), INTERVAL NĂM ĐẾN THÁNG &INTERVAL DAY ĐẾN THỨ HAI. -Kiểu dữ liệu DATE được sử dụng để lưu trữ thông tin ngày và giờ. -Kiểu dữ liệu này có một số chức năng cụ thể để thao tác, định dạng và xem dữ liệu của nó. - Loại dữ liệu DATE có dung lượng lưu trữ 7 byte và có thông tin về thế kỷ, năm, tháng, ngày, giờ, phút và giây. - Tham số NLS_DATE_FORMAT có thể được thay đổi để kiểm soát việc xem dữ liệu. Hàm SYSDATE trả về ngày hiện tại |
Đối tượng lớn | -BLOB (đối tượng lớn nhị phân) , CLOB (đối tượng lớn ký tự) , NCLOB &BFILE -Các cột của các kiểu dữ liệu này có thể lưu trữ dữ liệu phi cấu trúc bao gồm văn bản, hình ảnh, video và dữ liệu không gian. -Kiểu dữ liệu CLOB có thể lưu trữ lên đến tám terabyte dữ liệu ký tự bằng cách sử dụng bộ ký tự cơ sở dữ liệu CHAR. -Kiểu dữ liệu BLOB được sử dụng để lưu trữ các đối tượng lớn nhị phân không có cấu trúc, chẳng hạn như các đối tượng được liên kết với dữ liệu hình ảnh và video trong đó dữ liệu chỉ đơn giản là một dòng giá trị “bit”. -Giá trị kiểu dữ liệu BFILE hoạt động như một bộ định vị tệp hoặc con trỏ đến tệp trên hệ thống tệp của máy chủ. Kích thước tệp tối đa được hỗ trợ là 8TB đến 128TB. |
Long | Dữ liệu ký tự có độ dài thay đổi lên đến 2 G |
rowid | Hệ thống số cơ sở 64 đại diện cho địa chỉ duy nhất của hàng trong bảng |
Ví dụ
Trước khi thêm cột
Desc emp
Thêm cột thay thế bảng
alter table emp add(ext varchar2(10));
Sau khi thêm cột
Desc emp
Hiện đang thả cột đó xuống
alter table emp drop column ext;
Hy vọng bạn thích bài viết về Cách thay đổi cột thêm bảng trong oracle
Các bài viết có liên quancú pháp tạo bảng của oracle
Alter Table trong Oracle
thay đổi bảng di chuyển
Câu lệnh ORACLE DROP TABLE
kiểm tra kích thước bảng oracle
hoặc-20005:thống kê đối tượng là bị khóa