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

Heidi ·
更新时间:2024-11-14
· 639 次阅读

达梦支持哪些类型的表?
和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;

在这里插入图片描述


作者:foucus、



数据 对象 数据库对象 数据库

需要 登录 后方可回复, 如果你还没有账号请 注册新账号