达梦(DM)数据库管理表

embedded/2024/9/24 4:54:52/

达梦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/embedded/12715.html

相关文章

Rust常用特型之TryFrom和TryInto特型

在Rust标准库中,存在很多常用的工具类特型,它们能帮助我们写出更具有Rust风格的代码。 我们前面学习了了From和Into特型,今天我们来学们一下两个相似的特型TryFrom和TryInto。看名字就知道他们是试图转换的意思,那为什么有试图转换…

材质系统(1):起源与概念

目录 前言 1. 材质系统的源头 2. 材质系统与光照模型的关系 前言 材质系统是计算机图形学的一部分。在图形学中,材质(Material)是一种描述表面外观的属性。在三维计算机图形中,通常需要为每个物体指定材质,以便在渲染时准确地呈现物体的外…

Android RecycleView DiffUtil内部move导致item移动到屏幕可见范围之外原因及处理方案

DiffUtil.calculateDiff (Callback cb, boolean detectMoves) 方法中的 detectMoves 参数用于指示是否需要检测列表中的数据项是否有移动操作。 如果 detectMoves 设置为 true(默认),DiffUtil 将会尝试找出数据项的移动操作,即数…

pycharm远程连接server

1.工具–部署–配置 2.部署完成后,将现有的项目的解释器设置为ssh 解释器。实现在远端开发 解释器可以使用/usr/bin/python3

ISP比普通的静态代理相比有什么优势?

ISP(Internet Service Provider),即互联网服务提供商,是向广大用户综合提供互联网接入业务、信息业务、增值业务的电信运营商。而静态代理则是一个固定不变的代理IP地址,具有稳定性强、兼容性好和管理方便等特点。当我…

MySQL简解

文章目录 1. MySQL框架2. 执行流程2.1. 连接池:2.2. SQL 前端(SEVER)2.2.0. 查询缓存2.2.1. SQL 接口2.2.2. SQL 解析器2.2.3. SQL 执行器2.2.4. INNODB 中读写操作 2.3. 数据的保存形式 3.其他重要概念3.1. 索引3.1.1. 简单概念3.1.2. 索引优化:1. Usin…

C++11统一列表初始化,initializer_list

目录 1.C11统一了列表的初始化 2.initializer_list 3.initializer_list是如何支持的 1.C11统一了列表的初始化 现在无论内置类型和自定义类型都可以用列表初始化。 class Date {public:Date(int year, int month, int day):_year(year),_month(month),_day(day) {}private:…

Java | Leetcode Java题解之第45题跳跃游戏II

题目&#xff1a; 题解&#xff1a; class Solution {public int jump(int[] nums) {int length nums.length;int end 0;int maxPosition 0; int steps 0;for (int i 0; i < length - 1; i) {maxPosition Math.max(maxPosition, i nums[i]); if (i end) {end maxP…