达梦数据库表的管理方法

达梦数据库的表与其它数据库表的管理方式基本上一致

管理表管理表的准则表是数据库设计过程中的基本构件,基于来自应用开发者的有关应用如何运作和所期望 的数据类型,数据库管理员应与应用开发者一起工作,并认真规划每个表,具体需要做到以 下几点:

  1. 规范化表,估算并校正表结构,使数据冗余达到最小;
  2. 为每个列选择合适的数据类型,是否允许为空等,并根据实际情况判断是否需要对 列进行加密或压缩处理;
  3. 建立合适的完整性约束。
  4. 建立合适的聚集索引。每个表(列存储表,堆表除外)都含一个聚集索引,默认以 ROWID建立,而建立合适的聚集索引,可以有效加快表的检索效率;
  5. 根据实际需要,建立合适类型的表。DM支持的表类型包括普通表、临时表、水平分 区表、堆表和列存储表。本章只介绍普通表和临时表,其他类型表将在其他章节中 重点介绍。创建简单表
    CREATE TABLE EMPLOYEE (
    EMPNO INT PRIMARY KEY,
    ENAME VARCHAR(15) NOT NULL,
    JOB VARCHAR(10),
    MGR INT CONSTRAINT EMP_FKEY REFERENCES EMPLOYEE(EMPNO),
    HIREDATE DATE DEFAULT (CURDATE),
    SALARY FLOAT,
    DEPTNO TINYINT NOT NULL CONSTRAINT DEPT_FKEY REFERENCES DEPT(DEPTNO))
    STORAGE (
    INITIAL 50,
    NEXT 50,
    MINEXTENTS 10,
    FILLFACTOR 80,
    ON USERS);
    创建临时表CREATE GLOBAL TEMPORARY TABLE TMP_EMP(
    EMPNO INT PRIMARY KEY,
    ENAME VARCHAR(15) NOT NULL,
    JOB VARCHAR(10))
    ON COMMIT DELETE ROWS --事务级临时表ON COMMIT PRESERVE ROWS --会话级临时表
    修改表参数alter table tablename MODIFY <列定义>|
    ADD [COLUMN] <列定义>|
    ADD [COLUMN] (<列定义> {,<列定义>})|
    REBUILD COLUMNS|
    DROP [COLUMN] <列名> [RESTRICT | CASCADE] |
    ADD [CONSTRAINT [<约束名>] ] <表级约束子句> [<CHECK选项>] [<失效生效选项>] |
    DROP CONSTRAINT <约束名> [RESTRICT | CASCADE] | ALTER [COLUMN] <列名> SET DEFAULT <列缺省值表达式>|
    ALTER [COLUMN] <列名> DROP DEFAULT |
    ALTER [COLUMN] <列名> RENAME TO <列名> |
    ALTER [COLUMN] <列名> SET <NULL | NOT NULL>|
    ALTER [COLUMN] <列名> SET [NOT] VISIBLE|
    RENAME TO <表名> |
    ENABLE ALL TRIGGERS |
    DISABLE ALL TRIGGERS |
    MODIFY <空间限制子句>|
    MODIFY CONSTRAINT <约束名> TO <表级约束子句> [<CHECK选项>][RESTRICT | CASCADE]| MODIFY CONSTRAINT <约束名> ENABLE [<CHECK选项>]|
    MODIFY CONSTRAINT <约束名> DISABLE [RESTRICT | CASCADE] |
    WITH COUNTER |
    WITHOUT COUNTER |
    MODIFY PATH <外部表文件路径> |
    DROP IDENTITY|
    ADD [COLUMN] <列名>[<IDENTITY子句>]|
    ENABLE CONSTRAINT <约束名> [<CHECK选项>]| DISABLE CONSTRAINT <约束名> [RESTRICT | CASCADE] |
    DEFAULT DIRECTORY <目录名>|
    LOCATION (’<文件名>’)|
    ENABLE USING LONG ROW|
    ADD LOGIC LOG |
    DROP LOGIC LOG查看表结构sp_create_system_packages(1);
    call sp_tabledef(‘TEST’,‘EMP’)
ALTER TABLE PRODUCTION.PRODUCT_REVIEW MODIFY NAME VARCHAR(8) DEFAULT '刘青 ' NOT NULL; 

修改数据类型

ALTER TABLE RESOURCES.EMPLOYEE_ADDRESS ADD ID INT PRIMARY KEY CHECK (ID <10000);

添加列,同时增加主键,ID<10000


ALTER TABLE PRODUCTION.PRODUCT DROP PRODUCT_SUBCATEGORYID CASCADE;

删除列

ALTER TABLE PRODUCTION.PRODUCT ADD CONSTRAINT CONS_PRODUCTNAME UNIQUE(NAME)

添加唯一约束
alter table 表名 add constraint FK_ID foreign key(你的外键字段名) REFERENCES 外表表名(对应的表的主键字段名);
增加外键管理索引创建索引的准则:1. 如果需要经常地检索大表中的少量的行,就为查询键创建索引; 2. 为了改善多个表的连接的性能,可为连接列创建索引; 3. 主键和唯一键自动具有索引,在外键上很多情况下也创建索引; 4. 小表不需要索引。
选取表中的索引列时可以考虑以下几点: 1. 列中的值相对比较唯一 ; 2. 取值范围大,适合建立索引; 3. CLOB和TEXT只能建立全文索引、BLOB不能建立任何索引
create index index_name on table_name(加索引的列)create unique index 索引名 on 表名(列名)
CREATE INDEX IDX ON EXAMPLE_TAB(COLUMN_A + COLUMN_B);
函数索引CREATE BITMAP INDEX S1 ON PURCHASING.VENDOR (VENDORID);
位图索引
ALTER INDEX PURCHASING.S1 RENAME TO PURCHASING.S2; 修改索引名称

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值