暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片

openGauss每日一练第16天 | 表修改

原创 pysql 2022-12-09
1480

学习目标:学习openGuass数据库中如何对表进行修改

1.创建表,为表添加字段

2.删除表中的已有字段

3.删除表的已有约束、添加约束

4.修改表字段的默认值

5.修改表字段的数据类型

6.修改表字段的名字

7.修改表的名字

8.删除表


修改表的相关语法

ALTER TABLE修改表,包括修改表的定义、重命名表、重命名表中指定的列、重命名表的约束、设置表的所属模式、添加/更新多个列、打开/关闭行访问控制开关。

当一条语句下有多条子命令时,drop index和rename index会优先其他子命令执行,这两种命令的优先级一致。

修改表的定义。

ALTER TABLE [ IF EXISTS ] { table_name [*] | ONLY table_name | ONLY ( table_name ) }

action [, ... ];


删除表的相关语法

DROP TABLE删除指定的表。

DROP TABLE会强制删除指定的表,删除表后,依赖该表的索引会被删除,而使用到该表的函数和存储过程将无法执行。删除分区表,会同时删除分区表中的所有分区。

表的所有者、被授予了表的DROP权限的用户或被授予DROP ANY TABLE权限的用户,有权删除指定表 ,系统管理员默认拥有该权限。

DROP TABLE [ IF EXISTS ]

{ [schema.]table_name } [, ...] [ CASCADE | RESTRICT ] [ PURGE ];


参数说明

IF EXISTS如果指定的表不存在,则发出一个notice而不是抛出一个错误。

schema模式名称。

table_name表名称。

CASCADE | RESTRICT

CASCADE:级联删除依赖于表的对象(比如视图)。

RESTRICT(缺省项):如果存在依赖对象,则拒绝删除该表。这个是缺省。

PURGE该参数表示即使开启回收站功能,DROP表时,也会直接物理删除表,而不是将其放入回收站中。


--首先创建一张测试表。

drop table if exists table16;

create table table16(

id bigint,

name varchar(50) not null,

age int default 20,

primary key(id)

);


2.为表添加字段

--查看表table16的信息

\d table16

--为表table16新增一列,列名为sex,数据类型为Boolean:

alter table table16 add column sex Boolean;

--执行下面gsql命令,查看表table16的信息

\d table16


3.删除表中的已有字段

--执行下面的SQL语句,删除刚刚添加的列sex:

alter table table16 drop column sex ;

--执行下面gsql命令,再次查看表table16的信息

\d table16


删除表的已有约束

--表table16上有一个名叫table16_pkey的PRIMARY KEY约束。执行下面的SQL语句,删除这个约束:

alter table table16 drop constraint table16_pkey;

--执行下面的gsql命令,再次查看表table16的信息:

\d table16


--或直接查看约束是否被删除

select * from pg_constraint where conname like 'table16_pkey';


5.为表添加约束

--执行下面的SQL命令,为表table16添加刚刚删除的主键约束:

alter table table16 add constraint table16_pkey primary key(id);

--再次查看表table16的信息:

select * from pg_constraint where conname like 'table16_pkey';

\d table16


6.修改表字段的默认值

--执行下面的SQL语句,将age的默认值变更为25

alter table table16 alter column age set default 25;

\d table16


7.修改表字段的数据类型

alter table table16 ALTER COLUMN age TYPE bigint;

\d table16


8.修改表字段的名字

ALTER TABLE table16 RENAME COLUMN age TO stuage;

\d table16



9.修改表的名字

--修改表的名字。执行下面的SQL语句,将表table16的名字变更为mytable16:

ALTER TABLE table16 RENAME TO mytable16;

\d mytable16


10.删除表

DROP TABLE mytable16;

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论