openGauss每日一练第15天 |openGauss逻辑结构:表管理3

一、学习目标

学习查看表的相关信息

二、课程作业

1.创建表和约束

su - omm
gsql -r
--创建t1表,按表级上建主键约束primary key(id),列级别建not null非空约束、默认值约束default 18等
create table t1(id int not null,ename varchar(50) not null,age int default 18,primary key(id));

root@modb:~# su - omm
omm@modb:~$ gsql -r
gsql ((openGauss 3.0.0 build 02c14696) compiled at 2022-04-01 18:12:00 commit 0 last mr  )
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type "help" for help.

omm=# create table t1(id int not null,ename varchar(50) not null,age int default 18,primary key(id));
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index "t1_pkey" for table "t1"
CREATE TABLE
omm=# 

2.使用\d tableNmae命令查看表的定义、模式和所有者

--查看表结构
\d t1
--查看表t1的owner是omm用户,模式默认是public    
\dt+ t1
omm=# \d t1
              Table "public.t1"
 Column |         Type          | Modifiers  
--------+-----------------------+------------
 id     | integer               | not null
 ename  | character varying(50) | not null
 age    | integer               | default 18
Indexes:
    "t1_pkey" PRIMARY KEY, btree (id) TABLESPACE pg_default

omm=# \dt+ t1
                                    List of relations
 Schema | Name | Type  | Owner |  Size   |             Storage              | Description 
--------+------+-------+-------+---------+----------------------------------+-------------
 public | t1   | table | omm   | 0 bytes | {
    
    orientation=row,compression=no} | 
(1 row)

omm=# 

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

--查看public模式下的所有表名:
SELECT table_name FROM information_schema.tables WHERE table_schema='public';

omm=# SELECT table_name FROM information_schema.tables WHERE table_schema='public';
     table_name     
--------------------
 test1
 test001
 test002
 test
 invoice
 newtestwithdata
 testnewwithoutdata
 t1
(8 rows)

omm=# 

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

--通过gsql的元命令查看
--查看表结构,通过查看表结构,可以知道表t1有not null约束、default值约束、主键约束等
\d t1   
--通过查看数据字典方式
--查看约束名称、约束类型
select conname, connamespace, contype, conkey  from pg_constraint 
where conrelid in (select oid from pg_class where relname='t1');
omm=# \d t1
              Table "public.t1"
 Column |         Type          | Modifiers  
--------+-----------------------+------------
 id     | integer               | not null
 ename  | character varying(50) | not null
 age    | integer               | default 18
Indexes:
    "t1_pkey" PRIMARY KEY, btree (id) TABLESPACE pg_default

omm=# select conname, connamespace, contype, conkey  from pg_constraint 
omm-# where conrelid in (select oid from pg_class where relname='t1');
 conname | connamespace | contype | conkey 
---------+--------------+---------+--------
 t1_pkey |         2200 | p       | {
    
    1}
(1 row)

omm=# 

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

--先使用\x元命令设置单列模式查看
\x 
--查看到t1表的owner是omm、模式是public
SELECT * FROM information_schema.tables WHERE table_name='t1';
omm=# \x 
Expanded display is on.
omm=# SELECT * FROM information_schema.tables WHERE table_name='t1';
-[ RECORD 1 ]----------------+-----------
table_catalog                | omm
table_schema                 | public
table_name                   | t1
table_type                   | BASE TABLE
self_referencing_column_name | 
reference_generation         | 
user_defined_type_catalog    | 
user_defined_type_schema     | 
user_defined_type_name       | 
is_insertable_into           | YES
is_typed                     | NO
commit_action                | 

omm=# 

猜你喜欢

转载自blog.csdn.net/qq_40220309/article/details/128323878
今日推荐