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

openGauss每日一练第15天 | 表管理3-定义表

原创 pysql 2022-12-08
374

本章主要学习表的定义、模式等,包括:

1.创建表和约束

2.命令查看表的定义、模式和所有者

3.查看某个模式下有哪些表

4.查看一个表下有哪些约束

5.查看一个表属于数据库的哪个模式


创建表:基本语法:create table 表名(字段名 字段类型 字段约束,…)

//默认创建的是行存表,如果不指定模式,会在search_path中的第一个模式下创建

create table student(id int, name varchar(20));

//通过like子句快速创建表,并指定模式

create table test.student1 (like student);

//gsql客户端查看表结构

\d+ student

//查看表的定义

select pg_get_tabledef('student2');

//查看表信息

select * from pg_tables where tablename='student2';

实验操作:

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

drop table if exists table15;

create table table15(

id bigint,

name varchar(50) not null,

age int default 20,

primary key(id)

);


2.在gsql中查看表的定义、模式和所有者

--在gsql中,使用\d tableNmae命令查看表的定义。

\d+ table15;

--在gsql中,使用\d tableNmae命令查看表的模式和所有者。

\dt+ table15;

展示的信息更多:

Schema | Name | Type | Owner | Size | Storage | Description

3.查看某个模式下有哪些表

--查看public模式下的所有表名:

SELECT table_name FROM information_schema.tables WHERE table_schema='public';


4.查看一个表下有哪些约束

--查看约束名称、约束类型

select conname, connamespace, contype, conkey

from pg_constraint

where conrelid in ( select oid

from pg_class

where relname='table15');


--或者使用gsql的元命令\d tableName很方便地查看一个表上有哪些约束

\d table15

查看一个表属于数据库的哪个模式

\x

SELECT * FROM information_schema.tables WHERE table_name='table15';


附:通过无括号like创建表。

CREATE [ [ GLOBAL | LOCAL ] [ TEMPORARY | TEMP ] | UNLOGGED ] TABLE [ IF NOT EXISTS ] table_name LIKE source_table [ like_option [...] ]

like后不能添加普通建表的额外可选语句。

table前不能添加foreign选项,包括外表、mot表的创建。

默认复制源表的索引,若不希望复制索引,需要手动指定EXCLUDING INDEXES。

默认复制源分区表的分区,若不希望复制分区,需要手动指定EXCLUDING PARTITION。

只支持复制range分区表的分区,对于hash、list分区表,由于默认复制分区,会直接报错,需要手动指定EXCLUING PARTITION。二级分区只支持复制range-range分区,处理方法同上。


创建表。

CREATE [ [ GLOBAL | LOCAL ] [ TEMPORARY | TEMP ] | UNLOGGED ] TABLE [ IF NOT EXISTS ] table_name

({ column_name data_type [ compress_mode ] [ COLLATE collation ] [ column_constraint [ ... ] ]

| table_constraint

| table_indexclause

| LIKE source_table [ like_option [...] ] }

[, ... ])

[ AUTO_INCREMENT [ = ] value ]

[ WITH ( {storage_parameter = value} [, ... ] ) ]

[ ON COMMIT { PRESERVE ROWS | DELETE ROWS | DROP } ]

[ COMPRESS | NOCOMPRESS ]

[ TABLESPACE tablespace_name ]

[ COMMENT {=| } 'text' ];

[ create_option ]

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

评论