HSQLDB - Lệnh thay thế
Bất cứ khi nào cần thay đổi tên của bảng hoặc một trường, thay đổi thứ tự các trường, thay đổi kiểu dữ liệu của các trường hoặc bất kỳ cấu trúc bảng nào, bạn có thể đạt được điều tương tự bằng cách sử dụng lệnh ALTER.
Thí dụ
Chúng ta hãy xem xét một ví dụ giải thích lệnh ALTER sử dụng các tình huống khác nhau.
Sử dụng truy vấn sau để tạo một bảng có tên testalter_tbl với các lĩnh vực ' id và name.
//below given query is to create a table testalter_tbl table.
create table testalter_tbl(id INT, name VARCHAR(10));
//below given query is to verify the table structure testalter_tbl.
Select * From INFORMATION_SCHEMA.SYSTEM_COLUMNS as C Where C.TABLE_SCHEM =
'PUBLIC' AND C.TABLE_NAME = 'TESTALTER_TBL';
Sau khi thực hiện truy vấn trên, bạn sẽ nhận được kết quả sau.
+------------+-------------+------------+-----------+-----------+------------+
|TABLE_SCHEM | TABLE_NAME | COLUMN_NAME| DATA_TYPE | TYPE_NAME | COLUMN_SIZE|
+------------+-------------+------------+-----------+-----------+------------+
| PUBLIC |TESTALTER_TBL| ID | 4 | INTEGER | 4 |
| PUBLIC |TESTALTER_TBL| NAME | 12 | VARCHAR | 10 |
+------------+-------------+------------+-----------+-----------+------------+
Bỏ hoặc thêm cột
Bất cứ khi nào bạn muốn DROP một cột hiện có khỏi bảng HSQLDB, thì bạn có thể sử dụng mệnh đề DROP cùng với lệnh ALTER.
Sử dụng truy vấn sau để thả một cột (name) từ bảng testalter_tbl.
ALTER TABLE testalter_tbl DROP name;
Sau khi thực hiện thành công truy vấn trên, bạn có thể biết liệu trường tên có bị xóa khỏi bảng testalter_tbl hay không bằng cách sử dụng lệnh sau.
Select * From INFORMATION_SCHEMA.SYSTEM_COLUMNS as C Where C.TABLE_SCHEM =
'PUBLIC' AND C.TABLE_NAME = 'TESTALTER_TBL';
Sau khi thực hiện lệnh trên, bạn sẽ nhận được kết quả sau.
+------------+-------------+------------+-----------+-----------+------------+
|TABLE_SCHEM | TABLE_NAME | COLUMN_NAME| DATA_TYPE | TYPE_NAME | COLUMN_SIZE|
+------------+-------------+------------+-----------+-----------+------------+
| PUBLIC |TESTALTER_TBL| ID | 4 | INTEGER | 4 |
+------------+-------------+------------+-----------+-----------+------------+
Bất cứ khi nào bạn muốn thêm bất kỳ cột nào vào bảng HSQLDB, bạn có thể sử dụng mệnh đề ADD cùng với lệnh ALTER.
Sử dụng truy vấn sau để thêm một cột có tên NAME đến bàn testalter_tbl.
ALTER TABLE testalter_tbl ADD name VARCHAR(10);
Sau khi thực hiện thành công truy vấn trên, bạn có thể biết liệu trường tên có được thêm vào bảng hay không testalter_tbl bằng cách sử dụng lệnh sau.
Select * From INFORMATION_SCHEMA.SYSTEM_COLUMNS as C Where C.TABLE_SCHEM =
'PUBLIC' AND C.TABLE_NAME = 'TESTALTER_TBL';
Sau khi thực hiện truy vấn trên, bạn sẽ nhận được kết quả sau.
+------------+-------------+------------+-----------+-----------+------------+
|TABLE_SCHEM | TABLE_NAME | COLUMN_NAME| DATA_TYPE | TYPE_NAME | COLUMN_SIZE|
+------------+-------------+------------+-----------+-----------+------------+
| PUBLIC |TESTALTER_TBL| ID | 4 | INTEGER | 4 |
| PUBLIC |TESTALTER_TBL| NAME | 12 | VARCHAR | 10 |
+------------+-------------+------------+-----------+-----------+------------+
Thay đổi định nghĩa hoặc tên cột
Bất cứ khi nào có yêu cầu thay đổi định nghĩa cột, hãy sử dụng MODIFY hoặc là CHANGE mệnh đề cùng với ALTER chỉ huy.
Chúng ta hãy xem xét một ví dụ sẽ giải thích cách sử dụng mệnh đề CHANGE. Cái bàntestalter_tblchứa hai trường - id và tên - có kiểu dữ liệu int và varchar tương ứng. Bây giờ chúng ta hãy thử thay đổi kiểu dữ liệu của id từ INT thành BIGINT. Sau đây là truy vấn để thực hiện thay đổi.
ALTER TABLE testalter_tbl CHANGE id id BIGINT;
Sau khi thực hiện thành công truy vấn trên, cấu trúc bảng có thể được xác minh bằng lệnh sau.
Select * From INFORMATION_SCHEMA.SYSTEM_COLUMNS as C Where C.TABLE_SCHEM =
'PUBLIC' AND C.TABLE_NAME = 'TESTALTER_TBL';
Sau khi thực hiện lệnh trên, bạn sẽ nhận được kết quả sau.
+------------+-------------+------------+-----------+-----------+------------+
|TABLE_SCHEM | TABLE_NAME | COLUMN_NAME| DATA_TYPE | TYPE_NAME | COLUMN_SIZE|
+------------+-------------+------------+-----------+-----------+------------+
| PUBLIC |TESTALTER_TBL| ID | 4 | BIGINT | 4 |
| PUBLIC |TESTALTER_TBL| NAME | 12 | VARCHAR | 10 |
+------------+-------------+------------+-----------+-----------+------------+
Bây giờ, chúng ta hãy thử tăng kích thước của cột NAME từ 10 lên 20 trong testalter_tblbàn. Sau đây là truy vấn để đạt được điều này bằng cách sử dụng mệnh đề MODIFY cùng với lệnh ALTER.
ALTER TABLE testalter_tbl MODIFY name VARCHAR(20);
Sau khi thực hiện thành công truy vấn trên, cấu trúc bảng có thể được xác minh bằng lệnh sau.
Select * From INFORMATION_SCHEMA.SYSTEM_COLUMNS as C Where C.TABLE_SCHEM =
'PUBLIC' AND C.TABLE_NAME = 'TESTALTER_TBL';
Sau khi thực hiện lệnh trên, bạn sẽ nhận được kết quả sau.
+------------+-------------+------------+-----------+-----------+------------+
|TABLE_SCHEM | TABLE_NAME | COLUMN_NAME| DATA_TYPE | TYPE_NAME | COLUMN_SIZE|
+------------+-------------+------------+-----------+-----------+------------+
| PUBLIC |TESTALTER_TBL| ID | 4 | BIGINT | 4 |
| PUBLIC |TESTALTER_TBL| NAME | 12 | VARCHAR | 20 |
+------------+-------------+------------+-----------+-----------+------------+