达梦数据库注意事项及基本命令

注意事项

  1. 达梦数据库默认大小写敏感,如果需要大小写不敏感只能在初始化数据库的时候设置,并且一旦设置成功就无法再修改,若要修改,只能重新初始化实例。
  2. 执行表操作,必须带上数据库的前缀。
  3. 创建表和设置备注不能同时进行,必须先执行创建表的命令,成功后再执行设置备注的命令。
  4. 创建数据库、表时,数据库名、表名、列名都是用双引号,而非单引号。
  5. 创建数据表同时可以同时指定表的初始存储空间。
  6. 创建数据库同时不能直接设置编码格式。

基本命令

查看大小写是否敏感

若结果显示为1,则表示大小写敏感;若结果显示为0,则表示大小写不敏感。

SELECT CASE_SENSITIVE()

创建数据库
CREATE SCHEMA "数据库名称"

创建表
  1. 在大小写敏感情况下,若表名不加双引号,系统会自动将表名转化为全大写;若表名加双引号,则创建成功后的表名和引号内的表名完全一致。
CREATE TABLE "数据库名称"."表名称"
( 
  "id" int not null,
  "name" CHAR(10),
  PRIMARY KEY ("id")
)

表名不加双引号创建:

表名加双引号创建:

表名或表字段添加备注

注意事项

  1. 注释名称左右是用单引号,而不是双引号,否则会报错。
  2. 添加备注命令不能和表创建命令一起执行。
COMMENT ON TABLE "数据库名称"."表名称" is '注释内容';
COMMENT ON COLUMN "数据库名称"."表名称"."列名称" is '注释内容';

表指定初始存储空间

创建数据表的时候指定初始存储空间。

  • initial 1:指定为对象分配的初始区(extent)的数量,区是数据库存储的基本单位,一个区可以包含多个数据块。
  • next 1:当前区已满时,为对象分配的下一个区的数量。即每次分配新区时分配新区的数量。
  • minextents 1:指定对象的最小区数量,此参数确保了对象在创建时会有一定的空间预留,即使当前不需要那么多空间。
  • fillfactor 0:指定填充因子,用于控制数据块内的填充程度。填充因子是一个百分比,范围从1到100。然而,在这个例子中,填充因子被设置为0,这在大多数数据库系统中通常不是一个有效的值。在达梦数据库中,填充因子的具体行为可能依赖于版本和配置,但通常它用于控制数据块在达到多少百分比满时应该进行分裂或重新组织。设置为0可能意味着使用默认的填充因子或特殊的行为,这需要根据达梦数据库的具体文档来确定。
storage(initial 1,next 1,minextents 1,fillfactor 0)

表插入数据

大小写敏感情况,

  • 表名称若为大写,则插入时tb_name可以加双引号也可以不加双引号,若加了双引号,则必须保证双引号里面的内容和表名完全一样是大写。不加双引号大小写无所谓,混合也没关系。
  • 表名称若为小写,则插入时tb_name必须加双引号,且内容和表名完全一样是小写。
  • 表名称若为混合大小写,则插入时tb_name必须加双引号,且内容和表名完全一样。
//表名称大写双引号可加可不加
INSERT INTO "数据库名称".表名称 values (value1, 'value2');

//表名称小写、混合大小写都必须加双引号
INSERT INTO "数据库名称"."表名称" values (value1, 'value2');

//插入指定列名
INSERT INTO "数据库名称"."表名称"("列名1","列名2") values (value1, 'value2');

//插入多条数据
INSERT INTO "数据库名称"."表名称"("列名1","列名2") values (value1, 'value2');

查询表中的数据
  1. 大小写敏感情况下,
  • 若表名是小写,则查询时tb_name前后必须有双引号且必须要和表名一样保持全小写。
  • 若表名是大写,则查询时tb_name对是否加双引号不做限制,若加上双引号,则tb_name必须要和表名一样保持全大写,否则报错。若不加上双引号,大小写不敏感都可以。
  • 若表名是混合大小写,则查询时tb_name前后必须有双引号且必须要和表名完全一样。
//表名全小写情况
SELECT * FROM "数据库名称"."表名称" //必须加双引号且表名称要全小写

//表名全大写情况
SELECT * FROM "数据库名称".表名称;//不加双引号,则表名称不区分大小写
SELECT * FROM "数据库名称"."表名称";//若带上双引号,则表名称必须和表名一样全大写

//表名混合大小写
SELECT * FROM "数据库名称"."表名称";//若带上双引号,则表名称必须和表名一样

删除表中的数据
  1. 大小写敏感情况下,where后面的查询列名必须加双引号。
  • 若表名是小写,则删除时tb_name前后必须有双引号且必须要和表名一样保持全小写。
  • 若表名是大写,则删除时tb_name对是否加双引号不做限制,若加上双引号,则tb_name必须要和表名一样保持全大写,否则报错。若不加上双引号,大小写不敏感都可以。
  • 若表名是混合大小写,则删除时tb_name前后必须有双引号且必须要和表名完全一样。

更新表中的数据
  1. 大小写敏感情况下,where后面的查询列名和SET后面的列名必须加双引号。
  • 若表名是小写,则更新时tb_name前后必须有双引号且必须要和表名一样保持全小写。
  • 若表名是大写,则更新时tb_name对是否加双引号不做限制,若加上双引号,则tb_name必须要和表名一样保持全大写,否则报错。若不加上双引号,大小写不敏感都可以。
  • 若表名是混合大小写,则更新时tb_name前后必须有双引号且必须要和表名完全一样。

清空表数据
  1. 大小写敏感情况下
  • 若表名是小写,则清空时tb_name前后必须有双引号且必须要和表名一样保持全小写。
  • 若表名是大写,则清空时tb_name对是否加双引号不做限制,若加上双引号,则tb_name必须要和表名一样保持全大写,否则报错。若不加上双引号,大小写不敏感都可以。
  • 若表名是混合大小写,则清空时tb_name前后必须有双引号且必须要和表名完全一样。

表添加字段
  1. 大小写敏感情况下
  • 若表名是小写,则添加表字段时tb_name前后必须有双引号且必须要和表名一样保持全小写。
  • 若表名是大写,则添加表字段时tb_name对是否加双引号不做限制,若加上双引号,则tb_name必须要和表名一样保持全大写,否则报错。若不加上双引号,大小写不敏感都可以。
  • 若表名是混合大小写,则添加表字段时tb_name前后必须有双引号且必须要和表名完全一样。

修改表字段
alter table "数据库名称"."表名称" modify ("字段名" varchar(20) not null);
重命名表名
ALTER TABLE "数据库名称"."旧表名称" RENAME TO "新表名称";

删除表
#表不存在时会报错
DROP TABLE "数据库名称"."表名称";

#表存在则删除,不存在也不会报错
DROP TABLE  IF EXISTS "DMTestDb"."sys_config"
创建索引
--创建聚集索引,索引键为ID。
CREATE CLUSTER INDEX cluindex_name on "DMTestDb"."sys_user"("id");

--创建非聚集索引,name。
CREATE INDEX index_name on "DMTestDb"."sys_role"("name");
posted @ 2025-01-06 17:48  相遇就是有缘  阅读(1995)  评论(0)    收藏  举报