达梦(DM)数据库管理表

server/2024/10/11 7:32:40/

达梦DM数据库管理表

  • 管理表
    • 管理表的准则
      • 表的存储空间上限
      • 表的存储位置
    • 创建表
      • 创建普通表
      • 指定表的聚集索引
      • 查询建表
      • 更改表
      • 删除表
      • 清空表
      • 查看表定义
      • 查看表空间使用

表是数据库中数据存储的基本单元,是对用户数据进行读和操纵的逻辑实体,表由列和行组成,每一行代表一个单独的记录。

管理表

管理表的准则

表的存储空间上限

DM数据库支持 在创建表时指定 SPACE LIMIT 子句,可以对表的存储空间指定上限。DM 支持对表的存储空间指定大小,单位是 MB,即表的大小可由管理员指定,便于表的规模管理。

表的存储位置

创建表时,在 STORAGE 子句中,可对表指定存储的表空间。如果没有指定,则该表将创建在用户的默认表空间中。

创建表

创建普通表

在所属模式中创建新表,需要有 CREATE TABLE 数据库权限;而要在其他用户的模式中创建新表,则需要有 CREATE ANY TABLE 数据库权限。创建表时,应当为表指定一个表空间,否则,表将在 MAIN 创建。

指定表的聚集索引

DM 提供三种方式供用户指定聚集索引键:

  1. CLUSTER PRIMARY KEY:指定列为聚集索引键,并同时指定为主键,称为聚集主键;
  2. CLUSTER KEY:指定列为聚集索引键,但是是非唯一的;
  3. CLUSTER UNIQUE KEY:指定列为聚集索引键,并且是唯一的。
CREATE  TABLE  STUDENT( STUNO     INT         CLUSTER PRIMARY KEY, STUNAME   VARCHAR(15)   NOT NULL, TEANO     INT, CLASSID   INT
);

查询建表

创建一个与已有表相同的新表,可以使用 CREATE TABLE AS SELECT(CTAS)命令

CREATE TABLE NEW_EMP
AS
SELECT * FROM EMPLOYEE;

更改表

想更改的表如果在所属的模式中,用户必须具有 ALTER TABLE 数据库权限;若在其他模式中,用户必须有 ALTER ANY TABLE 的数据库权限。
用户可以对数据库中的表作如下修改:

  1. 添加或删除列,或修改现有的列的定义(列名、数据类型、长度、默认值)。
  2. 添加、修改或删除与表相关的完整性约束;
  3. 重命名一个表;
  4. 启动或停用与表相关的完整性约束;
  5. 启动或停用与表相关的触发器;
  6. 修改表的 SPACE LIMIT;
  7. 增删自增列。

删除表

当一个表不再使用时,可以将其删除.一般情况下,普通用户只能删除自己模式下的表。若要删除其他模式下的表,则必须具有 DROP ANY TABLE 数据库权限。
删除表

DROP TABLE employee;

删除不存在的表会报错,若指定 IF EXISTS 关键字,删除不存在的表,不会报错

DROP TABLE IF EXISTS employee;

如果要删除的表被其他表引用,即其他表的外键引用了表的任何主键或唯一键,则需要在 DROP TABLE 语句中包含 CASCADE 选项

DROP TABLE employee CASCADE;

清空表

当表的数据不再使用时,需要删除表的所有行,即清空该表
使用 DELETE 语句能删除表中的行

DELETE FROM employee;

使用 DELETE 清空表,当表有很多行时,会消耗很多系统资源。因为,DELETE 操作需要 CPU 时间,并且会产生大量的 REDO 日志和 UNDO 记录。另外,如果表上关联了元组级触发器,每删除一行,就会启动一次触发器。这都需要大量的系统资源。
使用 DROP 和 CREATE
使用 DROP 删除一个表,然后创建一个同名的表,也可以达到清空表的效果

DROP TABLE employee;
CREATE TABLE employee();

使用 TRUNCATE 语句能删除表中的所有行

TRUNCATE TABLE employee;

TRUNCATE 是一个 DDL 语句,不会产生任何回滚信息。执行 TRUNCATE 会立即提交,而且不能回滚。

查看表定义

创建表后,可以通过 SP_TABLEDEF 系统过程查看表的定义

CALL SP_TABLEDEF('SYSDBA', 'employee');

查看表空间使用

DM 支持查看表的空间使用情况

  1. TABLE_USED_SPACE:已分配给表的页面数;
  2. TABLE_USED_PAGES:表已使用的页面数。
SELECT TABLE_USED_SPACE('SYSDBA','EMPLOYEE');
SELECT TABLE_USED_PAGES('SYSDBA','EMPLOYEE');

http://www.ppmy.cn/server/13560.html

相关文章

【leetcode面试经典150题】63. 删除链表的倒数第 N 个结点(C++)

【leetcode面试经典150题】专栏系列将为准备暑期实习生以及秋招的同学们提高在面试时的经典面试算法题的思路和想法。本专栏将以一题多解和精简算法思路为主,题解使用C语言。(若有使用其他语言的同学也可了解题解思路,本质上语法内容一致&…

Amazon云计算AWS之[2]弹性计算云EC2

文章目录 说明EC2基本架构Amazon机器映象(AMI)实例(Instance)弹性块存储(EBS) EC2关键技术地理区域和可用区域EC2通信机制弹性负载均衡监控服务自动缩放服务管理控制台 EC2安全及容错机制EC2弹性IP地址 说明…

如何爬出 Kotlin 协程死锁的坑?

作者:悬衡 一、前言 在 Java 中有一个非常经典的死锁问题, 就是明明自己已经占用了线程池, 却还继续去申请它, 自己等自己, 就死锁了, 如下图和代码: // 这段代码将死锁到天荒地老final ExecutorService executorService Executors.newSingleThreadExecutor();exe…

黑客零基础入门教程:从零开始学习黑客技术

黑客技术往往被误解,但实际上,学习黑客技术可以帮助我们更好地理解网络安全,保护个人信息免受攻击。本文为零基础的朋友提供了一个黑客技术的学习入门指南,帮助你从基础到实践逐步深入了解和掌握相关技能。 了解基本概念 在开始…

小程序AI智能名片S2B2C商城的UGC系统概念探秘

想象一下,你漫步在一个充满奇幻与创意的星空中,每颗星星都闪耀着独特的光芒,它们都是普通人用智慧与热情点亮的——这就是小程序AI智能名片S2B2C商城的UGC系统世界! 在这个星空中,UGC系统不再是遥不可及的概念&#xf…

.netcore+vue新生分班系统的设计与实现

.netcore vue新生分班系统的设计与实现说明文档 运行前附加数据库.mdf(或sql生成数据库) 主要技术: 基于.net core架构和mysql数据库vue 东北石油大学新生分班系统的设计与实现 功能模块: 登录 注册学生 忘记密码 系统首顶 个…

SpringCloud系列(7)--Eureka服务端的安装与配置

前言:上一章节我们介绍了Eureka的基础,本章节则介绍Eureka服务端的安装与配置 Eureka架构原理图 1、创建Eureka Server端服务注册中心模块 (1)在父工程下新建模块 (2)选择模块的项目类型为Maven并选择模块要使用的JDK版本 (3)填写子模块的名称&#xf…

【记录一个问题】ubuntu如何显示图形界面

在Ubuntu中,图形界面(也称为图形用户界面,GUI)是默认启用的。但是,如果你正在使用Ubuntu服务器版或因为某种原因图形界面没有启动,你可以按照以下步骤来启用或恢复图形界面: 检查当前的运行级别…