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;
如果我们不使用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;
执行上述命令后,我们将得到以下输出:
热门文章
优秀文章