PostgreSQL 更改列类型
在本节中,我们将讨论如何通过
来更改列数据类型。ALTER TABLE 命令。
更改列数据类型的命令
我们将使用 ALTER TABLE 命令修改列的数据类型。
更改列数据类型的基本语法如下:
ALTER TABLE table_name
ALTER COLUMN column_name [SET DATA] TYPE new_data_type;
在上面的语法中,我们将使用以下参数:
参数 |
说明 |
Table_name |
它用于定义表名,我们要在其中修改列数据类型。 |
column_name |
用于提供列名,在ALTER COLUMN条件下将在其中修改数据类型。 |
New_data_type |
在Type关键字之后和列引用中使用。可能会使用TYPE或SET DATA TYPE。 |
在单个命令中更改多列的语法
我们将使用以下语法在单个命令中修改多个列的数据类型
ALTER TABLE table_name
ALTER COLUMN column_name_1 [SET DATA] TYPE new_data_type,
ALTER COLUMN column_name_2 [SET DATA] TYPE new_data_type;
正如我们在上述语法中所看到的,我们可以借助逗号(,)使每个ALTER COLUMN条件离散化,以一次转换各种列的类型。
PostgreSQL 提供了将旧列值更改为新列值的功能,同时通过添加USING条件修改列的数据类型,如我们在下面的命令:
ALTER TABLE table_name
ALTER COLUMN column_name TYPE new_data_type USING expression;
注意: 在PostgreSQL中,我们可以使用USING子句从旧值中添加新的列值。
如果我们不使用
使用条件,则PostgreSQL将间接为新列创建旧的列值。如果创建失败,PostgreSQL将提出一个问题,要求我们为USING子句提供一个用于更改的表达式。
PostgreSQL的示例更改列类型
要显示列类型的更改,我们将创建一个名为
Student_information 的新表。
CREATE TABLE Student_information(
Stu_id serial PRIMARY KEY,
Stu_name TEXT NOT null,
Stu_agr int,
Stu_address char(30)
);
执行上述命令后,我们将获得以下消息窗口,该窗口显示
Student_information 表已创建。
此后,我们将在特定表中插入一些行。
INSERT INTO Student_information (
Stu_name, Stu_age,Stu_address)
VALUES('Mike','26','New york' ),
('Emily','23','Boston'),
('john','25','Chicago');
输出
执行上述命令后,我们将获得以下消息窗口: 三行已插入到
Student_information 表。
我们将使用以下命令将
Stu_name 列的数据类型修改为
Varchar
ALTER TABLE Student_information ALTER COLUMN Stu_name TYPE VARCHAR;
输出
执行上述命令后,我们将得到以下结果:
以下命令将帮助我们将
Stu_age和Stu_address 列的数据类型从
int更改为Varchar 和
char到Varchar 。
ALTER TABLE Student_information
ALTER COLUMN Stu_age TYPE VARCHAR,
ALTER COLUMN Stu_address TYPE VARCHAR;
输出
一旦执行上述命令,我们将获得以下消息窗口:
Student_information 表
如果我们要检查所有我们在上面执行的操作中,将使用Select命令:
Select * from Student_information;
输出
执行上述命令后,我们将获得以下输出: