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

openGauss每日一练第16天|学习表管理4

原创 Heming 2022-12-11
606

openGauss每日一练第16天

学习表管理4

学习对现有表的修改,完成课后作业

创建表t1并定义列级约束

在omm用户下通过gsql -r连接数据库后创建表并设置列级约束,使用元命令\d <tablename>查看列约束信息

omm=# create table t1(id bigint primary key,name char(100) not null,age int default 20); NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "t1_pkey" for table "t1" CREATE TABLE omm=# \d t1 Table "testsm.t1" Column | Type | Modifiers --------+----------------+------------ id | bigint | not null name | character(100) | not null age | integer | default 20 Indexes: "t1_pkey" PRIMARY KEY, btree (id) TABLESPACE pg_default
复制

删除t1表字段age

omm=# alter table t1 drop column age; ALTER TABLE omm=# \d t1 Table "testsm.t1" Column | Type | Modifiers --------+----------------+----------- id | bigint | not null name | character(100) | not null Indexes: "t1_pkey" PRIMARY KEY, btree (id) TABLESPACE pg_default
复制

为t1表的name字段添加唯一约束并删除PRIMARY KEY约束

可以使用以下语法为表字段添加唯一键约束:

ALTER TABLE table_name ADD CONSTRAINT constraint_name UNIQUE (column1, column2, ...);
复制

其中,table_name 是要添加唯一键约束的表名,constraint_name 是约束名,column1、column2 等是要添加唯一键约束的字段。

omm=# ALTER TABLE t1 ADD CONSTRAINT name_un_key UNIQUE (name); NOTICE: ALTER TABLE / ADD UNIQUE will create implicit index "name_un_key" for table "t1" ALTER TABLE omm=# alter table t1 drop constraint t1_pkey; ALTER TABLE omm=# \d t1 Table "testsm.t1" Column | Type | Modifiers --------+----------------+----------- id | bigint | not null name | character(100) | not null Indexes: "name_un_key" UNIQUE CONSTRAINT, btree (name) TABLESPACE pg_default
复制

修改t1的name字段的默认值

将t1表的name字段默认值修改为’未定义’

omm=# alter table t1 alter column name set default '未定义'; ALTER TABLE omm=# \d t1 Table "testsm.t1" Column | Type | Modifiers --------+----------------+----------------------------------- id | bigint | not null name | character(100) | not null default '未定义'::bpchar Indexes: "name_un_key" UNIQUE CONSTRAINT, btree (name) TABLESPACE pg_default
复制

修改t1的name字段的数据类型为text

omm=# alter table t1 ALTER COLUMN name TYPE text; ALTER TABLE omm=# \d t1 Table "testsm.t1" Column | Type | Modifiers --------+--------+----------------------------------- id | bigint | not null name | text | not null default '未定义'::bpchar Indexes: "name_un_key" UNIQUE CONSTRAINT, btree (name) TABLESPACE pg_default
复制

修改t1表名字为test

omm=# ALTER TABLE t1 RENAME TO test; ALTER TABLE omm=# \d test Table "testsm.test" Column | Type | Modifiers --------+--------+----------------------------------- id | bigint | not null name | text | not null default '未定义'::bpchar Indexes: "name_un_key" UNIQUE CONSTRAINT, btree (name) TABLESPACE pg_default
复制

删除test表

omm=# drop table test; DROP TABLE omm=# select * from test; ERROR: relation "test" does not exist on gaussdb LINE 1: select * from test;
复制

总结

对数据库表的修改是很常用的功能,因为在表的建设初期,需要进行大量的修改,所以要掌握对表字段和约束的管理。这可以通过使用 SQL 中的 ALTER TABLE 语句来实现,例如可以使用该语句来添加、删除或修改表中的字段,以及添加或删除约束条件。

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

评论

墨天轮-雪宝君
暂无图片
2年前
评论
暂无图片 0
作业审核合格,一起参与21天openGauss学习打卡活动! 活动详情:https://www.modb.pro/db/551619
2年前
暂无图片 点赞
评论