Учебники

HSQLDB – Alter Command

Всякий раз, когда необходимо изменить имя таблицы или поля, изменить порядок полей, изменить тип данных полей или любую структуру таблицы, вы можете добиться того же с помощью команды ALTER.

пример

Давайте рассмотрим пример, который объясняет команду ALTER с использованием различных сценариев.

Используйте следующий запрос для создания таблицы с именем testalter_tbl с идентификатором и именем поля.

//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';

После выполнения вышеуказанного запроса вы получите следующий вывод.

+------------+-------------+------------+-----------+-----------+------------+
|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     |
+------------+-------------+------------+-----------+-----------+------------+

Удаление или добавление столбца

Всякий раз, когда вы хотите удалить существующий столбец из таблицы HSQLDB, вы можете использовать предложение DROP вместе с командой ALTER.

Используйте следующий запрос, чтобы удалить столбец ( имя ) из таблицы testalter_tbl.

ALTER TABLE testalter_tbl DROP name;

После успешного выполнения вышеуказанного запроса вы можете узнать, было ли удалено поле имени из таблицы testalter_tbl, с помощью следующей команды.

Select * From INFORMATION_SCHEMA.SYSTEM_COLUMNS as C Where C.TABLE_SCHEM =
   'PUBLIC' AND C.TABLE_NAME = 'TESTALTER_TBL';

После выполнения вышеуказанной команды вы получите следующий вывод.

+------------+-------------+------------+-----------+-----------+------------+
|TABLE_SCHEM |  TABLE_NAME | COLUMN_NAME| DATA_TYPE | TYPE_NAME | COLUMN_SIZE|
+------------+-------------+------------+-----------+-----------+------------+
|  PUBLIC    |TESTALTER_TBL|      ID    |      4    |   INTEGER |     4      |
+------------+-------------+------------+-----------+-----------+------------+

Всякий раз, когда вы хотите добавить какой-либо столбец в таблицу HSQLDB, вы можете использовать предложение ADD вместе с командой ALTER.

Используйте следующий запрос, чтобы добавить столбец с именем NAME в таблицу testalter_tbl .

ALTER TABLE testalter_tbl ADD name VARCHAR(10);

После успешного выполнения вышеуказанного запроса вы можете узнать, добавлено ли поле имени в таблицу testalter_tbl, с помощью следующей команды.

Select * From INFORMATION_SCHEMA.SYSTEM_COLUMNS as C Where C.TABLE_SCHEM =
   'PUBLIC' AND C.TABLE_NAME = 'TESTALTER_TBL';

После выполнения вышеуказанного запроса вы получите следующий вывод.

+------------+-------------+------------+-----------+-----------+------------+
|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     |
+------------+-------------+------------+-----------+-----------+------------+

Изменение определения столбца или имени

Всякий раз, когда требуется изменить определение столбца, используйте предложение MODIFY или CHANGE вместе с командой ALTER .

Давайте рассмотрим пример, который объяснит, как использовать предложение CHANGE. Таблица testalter_tbl содержит два поля – id и name – с типами данных int и varchar соответственно. Теперь давайте попробуем изменить тип данных id с INT на BIGINT. Ниже приведен запрос на внесение изменений.

ALTER TABLE testalter_tbl CHANGE id id BIGINT;

После успешного выполнения вышеуказанного запроса структуру таблицы можно проверить с помощью следующей команды.

Select * From INFORMATION_SCHEMA.SYSTEM_COLUMNS as C Where C.TABLE_SCHEM =
   'PUBLIC' AND C.TABLE_NAME = 'TESTALTER_TBL';

После выполнения вышеуказанной команды вы получите следующий вывод.

+------------+-------------+------------+-----------+-----------+------------+
|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     |
+------------+-------------+------------+-----------+-----------+------------+

Теперь давайте попробуем увеличить размер столбца NAME с 10 до 20 в таблице testalter_tbl . Ниже приведен запрос для достижения этого с использованием предложения MODIFY вместе с командой ALTER.

ALTER TABLE testalter_tbl MODIFY name VARCHAR(20);

После успешного выполнения вышеуказанного запроса структуру таблицы можно проверить с помощью следующей команды.

Select * From INFORMATION_SCHEMA.SYSTEM_COLUMNS as C Where C.TABLE_SCHEM =
   'PUBLIC' AND C.TABLE_NAME = 'TESTALTER_TBL';

После выполнения вышеуказанной команды вы получите следующий вывод.