DM达梦数据库对象管理——表

达梦支持哪些类型的表?
和oracle和相似,在oracle中支持的表类型几乎在dm中都存在,但不同的是,oracle中默认是堆表,而在dm中默认是索引组织表,当然这个可以在初始化实例的时候修改。此外,dm中还支持临时表,分区表,外部表等。

如何去规划表?
命名:字母开头 a-z,0-9,$#_
数据类型:int char varchar date clob blob number等等
存储位置:自已的规划表空间
约束(5大约束)
非空,唯一,主键,检查,外键
注释:comment
遵循3范式

案例1:规划一张学员信息表
表名:STU
列:学号(id char(10)),姓名(sname varchar(20) not null),性别(sex char(1)),年龄(age int),电话(tel varchar(15) not null),
家庭住址(address varchar(50))
表空间:STU
约束:主键列----学号, 非空----姓名,电话
备注:学员信息表
建表命令方式:

create table "TEST"."STU"
(
	"ID" CHAR(10) not null ,
	"NAME" VARCHAR(20) not null ,
	"SEX" CHAR(1),
	"AGE" INT,
	"TEL" VARCHAR(15) not null ,
	"ADDRESS" VARCHAR(50),
	primary key("ID")
)
storage(initial 1, next 1, minextents 1, fillfactor 0, on "TBS_TEST");
comment on table "TEST"."STU" is '学员信息表';
comment on column "TEST"."STU"."ID" is '学员编号';
comment on column "TEST"."STU"."NAME" is '姓名';
comment on column "TEST"."STU"."SEX" is '性别';
comment on column "TEST"."STU"."AGE" is '年龄';
comment on column "TEST"."STU"."TEL" is '电话';
comment on column "TEST"."STU"."ADDRESS" is '家庭住址';

查看表结构:
SP_TABLEDEF(模式名,表名) 表名区分大小写。

SQL> SP_tabledef('TEST','STU');
行号     COLUMN_VALUE                                                             
---------- -------------------------------------------------------------------------
1          CREATE TABLE "TEST"."STU"  (  "ID" CHAR(10) NOT NULL,  "NAME" VARCHAR(20) NOT NULL,  "SEX" CHAR(1),  "AGE" INT,  "TEL" VARCHAR(15) NOT NULL,  "ADDRESS" VARCHAR(50),  CLUSTER PRIMARY KEY("ID")) STORAGE(ON "STU", CLUSTERBTR) ;
已用时间: 26.196(毫秒). 执行号:66.

或者:

SQL> Dbms_metadata.get_ddl(‘TABLE,’STU’,’TEST’)

在这里插入图片描述
如何查看表在哪个空间?

SQL> select table_name,tablespace_name from dba_tables where table_name='STU';

在这里插入图片描述
如何查看表有哪些约束?

SQL> select table_name,constraint_name,constraint_type from dba_constraints where table_name='STU';

在这里插入图片描述
案例2:创建表的时候指定约束
在这里插入图片描述
唯一约束:
在这里插入图片描述
主键约束:
在这里插入图片描述在这里插入图片描述
检查约束:
在这里插入图片描述
在这里插入图片描述
外键约束:

SQL> create table test.t9(sid int primary key,pid int);
SQL> create table test.t10(id int primary key, sid int foreign key references t9(sid));

在这里插入图片描述
案例3:加备注
在这里插入图片描述

SQL> select table_name,column_name,comments from dba_col_comments where table_name='T2';

在这里插入图片描述
案例4:如何导入数据到表中
cat a.sql
在这里插入图片描述

SQL> start /home/dmdba/a.sql

在这里插入图片描述
和oracle中的命令相似,但是不支持oracle中的@语法。

如何维护表?
重命名:
在这里插入图片描述
增加、删除列

SQL> alter table test.tt add name varchar(10) default 'aaaa';

在这里插入图片描述
在这里插入图片描述
启用和禁用约束
(迁移数据的时候,最好把约束禁用,迁移完成再启用)

SQL> alter table test.t9 disable constraint CONS134218782;
SQL> alter table test.t9 enable constraint CONS134218782;

在这里插入图片描述

发布了155 篇原创文章 · 获赞 88 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/weixin_39540651/article/details/105074436