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年前

评论
相关阅读
2025年3月国产数据库大事记
墨天轮编辑部
737次阅读
2025-04-03 15:21:16
内蒙古公司成功完成新一代BOSS云原生系统割接上线
openGauss
212次阅读
2025-03-24 09:40:40
openGauss 7.0.0-RC1 版本正式发布!
Gauss松鼠会
167次阅读
2025-04-01 12:27:03
MogDB 发布更新,解决 openGauss 数据库在长事务情况下Ustore表膨胀问题
云和恩墨
151次阅读
2025-04-16 09:52:02
openGauss 7.0.0-RC1 版本体验:一主一备快速安装指南
孙莹
149次阅读
2025-04-01 10:30:07
从数据库源码比较 PostgreSql和OpenGauss的启动过程
maozicb
95次阅读
2025-03-24 15:55:04
一文快速上手openGauss
进击的CJR
89次阅读
2025-03-26 16:12:54
MogDB 发布更新,解决 openGauss 数据库在长事务情况下Ustore表膨胀问题
MogDB
75次阅读
2025-04-17 10:41:41
openGauss 学习之路:集群部署实战探索
openGauss
65次阅读
2025-03-21 10:34:13
opengauss使用gs_probackup进行增量备份恢复
进击的CJR
54次阅读
2025-04-09 16:11:58