精华内容
下载资源
问答
  • 数据库字段设计
    千次阅读
    2020-09-30 16:46:28

    A.字段类型介绍

    不同的关系型数据库在字段类型的具体化上差异较多,这里无法一一详述,但具体化的字段类型再多,无外乎几种:字符、数字、日期、二进制。

    在这里插入图片描述

    B.不为空设默认值

    表中应该尽可能避免可为NULL的列,且尽可能显示设置默认值,尤其是被索引的列。

    为什么?

    在MySQL数据库中,空值是不占用空间的,而NULL其实是占用空间的。再者,MySQL表的列中包含NULL的话,该列就不会包含在索引中,也就是说使用索引是无效的,现在不确定其它数据库是否也是如此。所以考虑今后可能会使用索引的字段,就要设置字段属性是NOT NULL。比如,如果某个字段后面可能会作为查询关键字使用LIKE的形式进行搜索,就要将该字段定义成索引以提高查询速度,那这个字段属性就是NOT NULL的。

    除以下数据类型的字段外:timestamp、image、datetime、smalldatetime、uniqueidentifier、binary、sql_variant、binary、varbinary,表字段应尽可能显示设置默认值。建议数值型的默认值为数值0,布尔型的默认值为数值1(通常情况下,系统中所有逻辑型中数值0表示为“真”、“正常的”;数值1表示为“假”、“异常的”,这种编码后面还会有介绍),datetime、smalldatetime类型的字段没有默认值,必须为NULL。

    如果数据库中某个字段有默认值,那么觉得在程序开发过程中,对应实体类的属性应该设置同样的初始化值才合理,记得动软代码生成工具中的框架就是这样设置。之前自己的程序设计中没有注意到这点,自动生成的所有实体类的属性都没有默认值。

    注意区分NULL和空字符串是不同的,数值型字段中NULL和0更是两码事。如果在数据库设计过程中不允许出现NULL字段还好,但如果有允许NULL而没有设置默认值的字符型字段,程序对记录执行了写空字符串动作和压根未执行写动作是两码事;如果有允许NULL且设置默认值为空字符串的字段,则无法做这种区分。当然,通常情况下,我们认为文本框中空字符串的提交动作等同于未执行写入。有些类似的情况是,在程序开发中,一个空的List对象,或者一个new出来的空对象,和NULL也是不同的,要注意。

    像订单(会诊单)这种表,取消、退回、安排这些字段的信息都不是必须有的,可以分流到子表中存储,放在一张表中会导致出现很多可为NULL或空值的列。之前并不赞成这种过分分流的方法,因为这会另信息的维护变得麻烦,如再有类似情况,应该根据实际综合判断取舍。也要在设计时尽可能遵守第二、三范式,非主属性完全依赖于码(主键)、消除传递依赖,不要让某张表过分臃肿。

    C.类型长度设置

    当字段定义为字符串类型时建议使用varchar而不用nvarchar以节省空间,通常情况下,都要用尽量少的存储空间来存储一个字段的数据,能用int类型的就不用char类型,能用char类型就不用varchar类型,能用varchar(20)的就不用varchar(25)。char和varchar长度设计需要根据业务实际需要进行长度控制,禁止预留过长空间。比如主键要求用UUID,那就统一为char(32),可以固定的部分就都固定下来。varchar类型虽然根据实际长度进行存储,但内存分配则是根据指定长度,不合理的长度设计会导致内存的不合理占用。

    varchar是变长存储,字段长度是数据库一种约束,定义合理的长度也可以让人容易理解字段的用途。MySQL中定义的长度如果小于255,字段长度用1个字节表示,如果超过255,字段的长度将固定用2个字节表示。Oracle没有这样的问题。字段定义的长度对索引也有较大影响,MySQL数据库索引存储的长度都是定义的长度,不是实际字符的长度,这是一个非常大的问题,估计主要原因是为了实现简单,所以MySQL在索引上会浪费大量的空间保存字符串。

    前台、程序以及数据库各部分之间对字段大小的限制务必处理恰当,为了节省存储空间,选取的数据库字段容量在一定范围内应该尽可能小,而为了对程序提供更好的扩展支持,又应该尽可能的设置大些,具体字段类型、字段长度如何设置,根据实际情况取得均衡。而后台程序部分,对数值大小长度应该做好校验处理,确保插入数据库的值大小长度不要超过限制。同时前端也应该给出明确的校验提醒,让用户按提示输入,决不允许不提醒用户而擅自把数据处理后插入数据库中(这种错误真有人犯过)。这样,前端、程序、数据库全方位校验处理,自然可以保证数值的准备性、存取的合理性。

    除非要保存文章内容,text字段尽量少用,如果要用能拆到冗余表中最好。禁止使用blob类型保存大文本、附件、图片等,对于图片、文档等附件数据库中只保留原始文件名和存储路径。网上也有建议使用其他存储方式的,比如TFS、SFS等,可以参考。

    禁止使用float、double类型,建议使用decimal替代。decimal(a,b),a指定指定小数点左边和右边可以存储的十进制数字的最大个数,最大精度38。b指定小数点右边可以存储的十进制数字的最大个数。小数位数必须是从0到a之间的值。默认小数位数是0。比如decimal(5,2)规定了存储的值将不会超过5位数字,并且小数点后面有2位数字。

    D.Oracle的CLOB

    在Oracle中,CHAR为定长字符串,最长2000字节。VARCHAR2为变长字符串,最长4000字节。NCHAR和NVARCHAR2分别与CHAR和VARCHAR2相对应,但存储的数据为NLS字符。

    目前VARCHAR是VARCHAR2的同义词。工业标准的VARCHAR类型可以存储空字符串,但是Oracle不这样做,尽管它保留以后这样做的权利。Oracle自己开发了一个数据类型VARCHAR2,这个类型不是一个标准的VARCHAR,它将数据库中VARCHAR类型的列可以存储空字符串的特性改为存储NULL值。如果你想有向后兼容的能力,Oracle建议使用VARCHAR2而不是VARCHAR。

    在Oracle中没有TEXT类型,但有用于大文本存储的CLOB类型。Clob是指大字符对象,也就是英文Character Large Object的缩写;Blob是指二进制大对象,也就是英文Binary Large Object的缩写;由此可见这两个类型都是用来存储大量数据而设计的。

    LONG最大存储2G字符数据,但现在已不推荐使用(改用CLOB);CLOB在Oracle 9i及以前,最大可存储4G字符数据,在Oracle10g及以后,最大可存储4G*数据库块大小的字符数据;NCLOB基本同CLOB,就是存储的数据为NLS。

    在Oracle数据库表中使用CLOB类型字段,最大的问题是备份数据时不好处理。在有些情况下,给政府、企业做项目,只给你Oracle的访问权限,而不给你Oracle所在服务器的操作权限,也就是说自己无法操作Oracle服务端工具。但Oracle的客户端中又没有exp、expdp命令,这样备份导出数据库就不好弄了(此处不提沟通协调甲方处理)。SQL Developer是Oracle的官方工具,用其导出数据库,如果导出的是SQL格式,那CLOB类型字段的数据将直接被忽略——这绝对是无法接受的。官网上有文章说可以将数据库导出为loader或pdf格式,自己尝试导出这两种格式,发现不能导出成单个文件,会导出很多的文件。而且导入时也需要用到额外的工具——Oracle服务端的sqlldr.exe,这样只借助客户端也是不行的。

    在SQL Developer“工具”菜单下,还有两个选项:“数据库Diff”及“数据库复制”,如果所处网络可同时访问源数据库和目标数据库,可用这种方法互相拷贝数据,但是同样的问题,这种数据库复制方法,仍然是不能处理COLB、BLOB的字段。而且我发现,凡是带有这两种字段的表,在复制时都没有数据,不是相应字段没有数据、是整个表的数据都没有复制,其它没有BLOB、CLOB字段的表,数据拷贝都正常。

    也曾想使用的PL/SQL Developer工具进行备份,导出了PL/SQL Developer自己的格式(pde)。可是却提示stream read error,到网上一查,原来PL/SQL Developer自己的格式也是不支持COLB、BLOB类型字段的导出的。

    之前同事介绍过Navicat for Oralce工具,但其在导出CLOB、BLOB类型的字段时,如果字段中的数据过长,也是无法再正常导入的。这个小工具看似简单轻巧,在执行一些操作时问题却很多,不宜作为一款常用的Oracle管理工具。

    这样看来,只有expdp命令才能有效导出clob、blob格式的字段了。

    不过,如果你虽然没有源数据库服务端的访问权限,却有目标数据库服务端的访问权限,且两个库可在一个网络中访问,也是有办法用EXP命令备份源数据库的。就是让目标数据库服务端的TNS监听源数据库的实例,再利用目标数据库Oracle服务端的exp.exe工具远程导出源数据库,导出导入命令和上面类似:

    此外,用PL/SQL Developer工具备份数据时,Export User Objects菜单命令导出的是SQL文件,在这里你可以将建表、序列、触发器、存储过程等的SQL语句全部导出成一个文件,但是这里面并不包括数据。要想导出数据,必须用Export Tables……菜单命令,导出DMP文件。当然也可以导出其它格式的文件(SQL、PDE),但建议用DMP格式,因为前面已经说过,如果表中有CLOB类型字段的话,用其它格式的导出方式恐怕有问题。

    如果一个表不存在,而这个表中没有CLOB、BLOB这种特殊数据类型的字段,用DMP导入数据时PL/SQL会自动建立这个表。但如果一个表不存在,而这个表中又有CLOB、BLOB这种特殊字段,直接导入DMP格式的文件会报错IMP-00003:遇到ORACLE错误959。所以在Oracle中导入数据库时应该先执行用Export User Objects导出的SQL文件,这样相关的序列、触发器、表结构都已经建好了,再导入用Export Tables……导出的DMP文件,也就是导入其中的数据,就万全了。

    E.数值类型选择

    float:浮点型,含字节数为4,32bit,数值范围为-3.4E38~3.4E38(7个有效位)

    double:双精度实型,含字节数为8,64bit数值范围-1.7E308~1.7E308(15个有效位)

    decimal:数字型,128bit,不存在精度损失,常用于银行帐目计算。(28个有效位)

    float和double的相乘操作,数字溢出不会报错,会有精度的损失。当对decimal类型进行操作时,数值会因溢出而且报错。

    Oracle中的数值类型,Oracle只是在语法上支持decimal类型,但是在底层实际上它就是NUMBER类型,支持decimal类型是为了能把数据从Oracle数据库移到其他数据库中(如MySQL、DB2等)。Oracle的NUMBER数据类型的精度:NUMBER(P,S),P:1—38,S:-84—127。S代表的是小数位数,P代表的是总位数(整数位数和小数位数)。所以,平时如果在Oracle中用自增主键,长度设为NUMBER(10)的话,相当于NUMBER(10,0),表示最高可记录到十亿级的数据量。

    下图是MySQL中的整数型数值类型详述:

    F.通用字段处理

    日期时间类型字段,网上有建议,采用int来记录unix_timestamp,自己还是习惯用datetime。不过设计原则是粒度越小越好,所以这里要求日期时间类型的字段,尽可能精确到时分秒,用datetime类型。即便是像生日(birth_date)这种字段,一般只存储到年月日,但在选择字段类型时建议还是用datetime而非date,以防万一。如有部分时间字段着实无须记录到时分秒,则用date类型。严禁使用varchar等字符串类型记录日期时间,更不要把时间猜分,年在单独的字段、月在单独的字段、日又是单独字段,老实讲TM想不明白这种人的设计思路是什么样的。

    网络IP字段,网上有建议,除特殊情况一律用bigint来记录inet_aton值,但这种存储方式貌似只在MySQL中适用,这里要求还是用varchar存储。关于inet_aton想了解的话可以看下参考文献中的“MySQL的IP处理函数inet_aton()和inet_ntoa()”。

    字典编码字段,之前在SQLServer中设计数据库时统一使用char(2)类型,Oracle数据库中统一使用number(2),在MySQL中统一使用tinyint(2)。现在想来最合理的还是设置为tinyint(2),以后数据库字典编码字段统一按此设置。就是Oracle中没有tinyint类型,不知道如果在PD中设置此种类型,导入到Oracle时会自动转换处理还是直接报错。

    备注字段,尽可能在所有表中都保留这个字段,也是给前端信息录入预留一个可扩展部分。统一命名为remark,字段类型为varchar(200),最多100个中文字符。再多的话说明有额外信息,就不适合放在备注字段中了,要再加新字段存储。

    排序字段,不是每个表中都需要额外的排序字段,但有些表这必须有,比如记录菜单信息的表、门户网站中存放文章内容的表等。这里推荐统一使用int(10)做为所有表中的排序字段类型。

    字段设置部分撰述内容较多,相对详细,这是比较重要的一部分。以后的数据库设计,字段类型选择、字段长度设置部分都要以此为依据。

    更多相关内容
  • 今天给大家推荐一款好用的SQLite数据库管理工具sqlitestudio,比起其它SQLite管理工具,我喜欢用这个。很方便易用,不用安装的单个可执行文件,支持中文。 能完善的sqlite2和sqlite3工具,视图编码支持utf8。 支持...
  • 主要用于做MS SQL Server数据库软件项目,该字典工具,包含现在网上所有“数据库文档生成器”、“数据库浏览器”之类的所有功能,可以轻松的对数据库里的所有表、视图、存储过程、触发器的字段和脚本信息进行管理,...
  • 内容索引:VB源码,数据库应用,管理工具 一个简易的VB版ACCESS数据库管理工具,功能上类似于SQLSERVER的企业管理器一样,你看一下上边的截图就知道了,它可以修改ACCESS的表结构、字段、添加、删除数据,还可以执行...
  • 为您提供Valentina Studio 数据库管理工具下载,Valentina Studio是一款可视化数据库管理工具,支持多种数据库,支持数据库的创建、管理、查询以及检索功能,用户可以使用架构编辑器、数据编辑器、SQL编辑器、查询...
  • 为您提供Valentina Studio 数据库管理工具下载,Valentina Studio是一款可视化数据库管理工具,支持多种数据库,支持数据库的创建、管理、查询以及检索功能,用户可以使用架构编辑器、数据编辑器、SQL编辑器、查询...
  • asp在线数据库管理工具 sql、access在线数据库管理工具 您的电脑无须安装access查看器就能轻松在线管理数据库。 可对数据库进行追加、修改、删除等sql数据库操作,简单方便,数据实时操作。 由于微软默认提供的企业...
  • 数据库脚本管理工具Flyway

    千次阅读 2020-12-25 10:08:43
    写在前面  最近由于项目变更比较大,需要经常修改表...鉴于这种情况,于是决定寻找数据库版本控制工具。 在Java这部分,对数据库版本控制的主要有两个工具: Flyway Liquibase 两个工具各有千秋,但是核心功能都是

    写在前面

      最近由于项目变更比较大,需要经常修改表结构,然后对应的测试,开发,生产环境数据库均要修改,有时候一不小心就忘记修改某个环境下的数据库了,

    等出问题才发现表结构没有更新,如果项目还没上线,还可以把表删除了重新创建,但是如果项目已经上线了,就不能这样简单粗暴了,我们需要通过 SQL 脚本

    在已有数据表的基础上进行升级。鉴于这种情况,于是决定寻找数据库版本控制工具。

    在Java这部分,对数据库版本控制的主要有两个工具:

    • Flyway
    • Liquibase

    两个工具各有千秋,但是核心功能都是数据库的版本管理,这里主要来看 Flyway。就像我们使用 Git 来管理代码版本一样,Flyway 可以用来管理数据库版本。

    Flyway官网地址:https://flywaydb.org

    1、Flyway是如何工作的

    关于FlyWay工作原理,官网给出了具体的工作原理图。官网原理图地址:https://flywaydb.org/getstarted/how

    这里简单记录一下,仅做备忘。

    1.1 场景一:使用Flyway从无到有创建数据库

     Flyway用'schema_version_history'数据表存放数据库schema的历史记录,跟踪数据库结构的变更;

    由于刚开始数据库为空,Flyway找不到schema_version_history数据表,所以Flyway找不到它,就在数据库中创建了此表,

    之后我们则需要在项目中定义Migration,通常用SQL或Java定义。

    如下图所示,Flyway在运行时会顺序执行上图中的Migration1和Migration 2来实现对数据库的更新;同时'schema_version_history'表也会记录下这两次修改。

     'schema_version_history'表记录修改历史。如下图所示:

     说明:

    复制代码

    脚本文件名(对应flyway_schema_history表的script字段)定义规则:
        常用格式如下:
        $PREFIX$VERSION__$REMARK.$SUBFIX
    说明:
    $prefix  表示 前缀,可在配置中指定,默认为 V;
    $version 表示 版本号,版本号中也可以使用 . 或 _分隔,在解析时会将 _ 转换为 . 再保存到flyway_schema_history表的version字段中;
    $remark  表示 备注,解析后会将这部分写入到描述字段中;
    $subfix  表示 后缀,可在配置中指定,默认为 .sql ;
    版本号与备注之前使用__分隔;
    例如: V20200307_01__initial.sql

    复制代码

    1.2 场景二:基于已有数据库更新

    在此场景下,Flyway仍然会遍历项目中定义的各个Migration,并参照schema_version_history数据表,忽略版本号低于或等于当前版本的Migration,

    剩下的就是Pending Migration(待处理迁移版本),然后按照版本号顺序执行Pending Migration,如下图所示:

      'schema_version_history'表记录修改历史。如下图所示:

     因此,每当我们要对数据库的DDL或者DML进行迁移时,就只需要定义一个更高版本的Migration。

    2、Spring Boot整合 Flyway

    这部分也可以参考官网使用指导,官网整合地址:https://flywaydb.org/documentation/plugins/springboot

     2.1 整合步骤

    2.1.1 在项目的pom文件中导入Flyway依赖,目前官网最新版本如下:

    <dependency>
        <groupId>org.flywaydb</groupId>
        <artifactId>flyway-core</artifactId>
        <version>6.3.0</version>
    </dependency>

     2.1.2 在application.properties或者application.yml文件添加配置

    复制代码

    # 说明,在spring boot 1.x中,属性前缀为flyway,在spring boot 2.x中为spring.flyway,这里需要区分不同版本
    Spring.flyway:
      # 到新的环境中数据库中有数据,且没有flyway_schema_history表时,是否执行迁移操作。
        如果设置为false,在启动时会报错,并停止迁移;
        如果设置为true,则生成history表并完成所有的迁移,要根据实际情况设置;
      baseline-on-migrate: false
      # 执行时标记的tag 默认为<<Flyway Baseline>>
      baseline-description: <<Flyway Baseline>>
      # 是否启用flyway
      enabled: true
      # 检测迁移脚本的路径是否存在,如不存在,则抛出异常
      check-location: true
      # 脚本位置
      locations: classpath:db/migration
      # 在迁移时,是否校验脚本,假设V1.0__初始.sql已经迁移过了,在下次启动时会校验该脚本是否有变更过,则抛出异常
      validate-on-migrate: true
    特别说明:
       如果非空数据库迁移,在目标数据库中手动建flyway_schema_history表并手动写入初始化的脚本记录,
       使flyway跳过最初的校验即可,后续可以保证版本的统一;

    复制代码

    2.1.3 创建迁移数据库脚本文件

    可以在项目模块下的 resources 目录下,手动创建 db/migration 目录,然后在该目录下创建数据库脚本,数据库脚本的命名方式可以参考上面的说明:

    “脚本文件名(对应flyway_schema_history表的script字段)定义规则”,当然也可以看下面:
    

     

    脚本文件名(对应flyway_schema_history表的script字段)定义规则:
        常用格式如下:
        $PREFIX$VERSION__$REMARK.$SUBFIX
    说明:
    $prefix  表示 前缀,可在配置中指定,默认为 V;
    $version 表示 版本号,版本号中也可以使用 . 或 _分隔,在解析时会将 _ 转换为 . 再保存到flyway_schema_history表的version字段中;
    $remark  表示 备注,解析后会将这部分写入到描述字段中;
    $subfix  表示 后缀,可在配置中指定,默认为 .sql ;
    版本号与备注之前使用__分隔;
    例如: V20200307_01__initial.sql

    复制代码

    完成这些之后,在数据库中创建一个空的目标数据库,然后启动项目进行验证。

    2.1.4 验证

    项目启动有如下日志信息,表明校验成功:

    补充:

    如果是在一个全新的项目中使用 Flyway,那么在新建一个 Spring Boot 项目时,就有 Flyway 的选项,只需要勾选即可,如下图所示:

    项目创建成功后,resources 目录下也会多出来一个 db/migration 目录,这个目录用来存放数据库脚本,如下图所示:

             

                       Flyway与Liquibase对比

    Spring Boot为两款流行的数据库迁移库提供了自动配置支持。
        Flyway(http://flywaydb.org)
        Liquibase(http://www.liquibase.org)

    1. 用Flyway定义数据库迁移过程

        1)原理:Flyway是一个非常简单的开源数据库迁移库,使用SQL来定义迁移脚本。它的理念是,每个脚本都有一个版本号,Flyway会顺序执行这些脚本,让数据库达到期望的状态。它也会记录已执行的脚本状态,不会重复执行。Flyway脚本就是SQL。让其发挥作用的是其在Classpath里的位置和文件名。Flyway脚本都遵循一个命名规范,含有版本号。例如:V2_test.sql。所有Flyway脚本的名字都以大写字母V开头,随后是脚本的版本号。后面跟着两个下划线和对脚本的描述。Flyway脚本需要放在相对于应用程序Classpath根路径,在src/main/resources/db/migration路径下。在应用程序部署并运行起来后,Spring Boot会检测到Classpath里的Flyway,自动配置所需的Bean。Flyway会依次查看/db/migration里的脚本,如果没有执行过就运行这些脚本。每个脚本都执行过后,向schema_version表里写一条记录。应用程序下次启动时,Flyway会先看schema_version里的记录,跳过那些脚本。

        2)优点:SQL用起来便捷顺手。

        3)缺点:无法跨平台使用。

    2. 用Liquibase定义数据库迁移过程

        1)原理:支持XML、YAML和JSON格式的迁移脚本。默认情况下,Bean会在/db/changelog(相对于Classpath根目录)里查找db.changelog-master.yaml文件。Liquibase变更集都集中在一个文件里。changeset命令后的那行有一个id属性,要对数据库进行后续变更。可以添加一个新的changeset,只要id不一样就行。此外,id属性也不一定是数字,可以包含任意内容。应用程序启动时,Liquibase会读取db.changelog-master.yaml里的变更集指令集,与之前写入databaseChangeLog表里的内容做对比,随后执行未运行过的变更集。

        2)优点:可以跨平台使用

        3)缺点:迁移脚本需要花费精力去维护

     

    参考文档: 

    https://blog.csdn.net/u013454855/article/details/104882523/

    https://www.cnblogs.com/wusha/p/8601954.html

    https://www.cnblogs.com/cndarren/p/12435787.html

     

    展开全文
  • MySQL-Front 小巧实用的数据库管理工具,可以直接复制字段和表名。开发清闲很多。。
  • DBDocumentGenerator 2.0 可以快捷的将数据库表及字段说明生成多种电子文档的工具 连接数据库后可选择具体数据表快速导出生成文档,实测绝对可用,具体包括: (1)完美支持的数据库 :MySQL、Oracle 、SQL Server ...
  • DbGate:一款免费的智能数据库管理工具

    千次阅读 多人点赞 2021-04-23 21:49:21
    DbGate 是一个免费开源的数据库管理工具,提供了多种数据库支持,目前包括 MySQL、PostgreSQL、SQL Server 以及 MongoDB。DbGate 支持不同的平台,包括 Windows、Linux、MacOS 以及 Web 浏览器。DbGate 基于宽松的 ...

    DbGate

    大家好!我是只谈技术不剪发的 Tony 老师。

    今天给大家介绍一款免费开源的智能数据库管理工具:DbGate

    如果觉得文章有用,欢迎评论📝、点赞👍、推荐🎁

    功能特性

    DbGate 是一个免费开源的软件,基于宽松的 MIT 协议分发,源码托管在 GitHub

    DbGate 提供了多种数据库支持,目前包括 MySQL、PostgreSQL、SQL Server 以及 MongoDB。

    DbGate 支持不同的平台,包括 Windows、Linux、MacOS 以及 Web 浏览器。

    如果想要了解 DbGate,但是又没有安装 DbGate,可以直接使用官方提供的一个在线演示应用

    数据库连接

    DbGate 支持同时连接多个不同的数据库,支持通过 SSH tunnel 连接数据库以及 SSL 连接。DbGate 提供了数据库对象结构浏览功能以及表、视图、存储过程和函数的查看功能。当用户打开多个窗口选项卡时,每个选项卡都会显示所属的数据库。

    连接

    数据编辑器

    DbGate 提供了强大的数据浏览器和编辑器,可以快速查找和修改数据。用户可以直接输入过滤表达式(例如字段值包含的字符子串),或者通过菜单过滤数据。

    filter
    有时候我们想要查看外键关联中被引用字段的数据,DbGate 提供了查看相关数据的便捷方法,不需要编写额外的查询语句。用户甚至可以基于被引用的字段进行数据过滤。

    fk

    DbGate 数据浏览器还提供了表单视图(Form view),可以一次查看一行数据。表单视图同样支持外键数据的查看。

    form

    DbGate 数据编辑器提供了类似于 Excel 的数据编辑功能,用户可以编辑数据并预览相应的 SQL 语句,然后使用 Ctrl+S 或者菜单命令保存数据。

    edit
    除此之外,DbGate 还提供了许多数据令人惊喜的查看/编辑功能:

    • 基于外键的主视图/详细视图;
    • 外键查找;
    • 一键分组统计功能;
    • 主视图/详细视图分组以及按照年、月、日分组;
    • 自由格式编辑器,以 JSON 文件编辑数据,不需要使用数据库;
    • 批量操作(被称为宏命令 macros):
      • 大小写转换;
      • 删除变音符号;
      • 当前数据;
      • 生成 UUID。

    查询编辑器、设计器以及 SQL 生成器

    DbGate 提供了语法高亮、自动补全、连接查询向导(方便添加连接语句)、SQL 格式化、保存查询语句以及生成创建数据库结构/数据的 SQL 脚本等功能。

    join
    查询设计器提供了图形方式设计查询语句的功能,支持各种连接查询、分组聚合、数据过滤以及排序操作。

    designer
    SQL 生成器可以用于创建数据库对象的脚本,支持表(包含外键)的创建、删除、数据插入以及截断脚本,支持视图、存储过程/函数的创建和删除脚本。

    sql

    导入与导出

    数据的导入与导出支持 CSV、Excel、JSON 文件以及其他格式(通过插件进行扩展),可以实现不同数据库之间的数据复制。

    export
    导入文件之前支持数据预览。

    预览

    支持使用 JavaScript 编写数据导入导出脚本。

    js

    NoSQL 数据库支持

    DbGate 提供了 MongoDB 数据库支持,它使用原生的 MongoDB 驱动,可以直接连接到数据库。

    DbGate 可以查看集合数据,支持表格视图和 JSON 视图,支持集合过滤的排序。

    view
    用户可以使用 nodejs MongoDB API 运行 MongoDB 查询。

    query
    数据编辑器提供了 MongoDB 脚本预览功能。

    edit
    其他的功能包括数据导入导出、生成创建、删除、查找集合的脚本等。

    扩展插件

    DbGate 使用了可扩展的插件结构,通过 NPM 程序包的方式提供插件,包括导入导出格式插件和数据库连接驱动插件。

    插件

    用户也可以使用 yeoman 模板创建自己的插件。

    其他功能

    DbGate 提供的其他功能包括:

    • 归档目录,可以将数据保存到本地。归档数据采用 JSON 格式存储。
    • 收藏对象,包括表(包含数据过滤以及主视图/详细视图),查询语句以及图表等。
    • 最近关闭选项卡,一周之内的未保存查询语句可以从这里查看。
    • 可配置的快捷键。
    • 深色主题。

    收藏

    另外,“保存文件”功能可以将文件保存到 DbGate 内部存储或者磁盘中,包括 SQL 查询、查询设计、JavaScript 数据脚本、Markdown 页面以及图片。

    图表功能可以将查询结果或者表格数据进行可视化展示,支持条形图、折线图、饼图、极区图以及自定义的图表颜色。

    chart

    下载安装

    DbGate 提供了 Windows、Linux、MacOS 以及 Docker 等平台的安装文件,可以直接在官网或者 GitHub 下载最新版本。

    展开全文
  • 达梦数据库-DM管理工具介绍和简单使用系列文章目录本文环境1.DM管理工具介绍2.DM管理工具简单使用1.打开DM管理工具 系列文章目录 达梦数据库DM8-windows环境安装(图文详情) 达梦数据库DM8-centos7环境安装(图文详情)...

    系列文章目录

    达梦数据库DM8-windows环境安装(图文详情)
    达梦数据库DM8-centos7环境安装(图文详情)
    达梦数据库部分配置参数介绍和调整


    这里再放一个达梦云适配中心链接,里面的文档模块有很多官方教程,社区模块也可以查询或者提出各类使用问题
    达梦云适配中心

    本文环境

    系统环境:
    windows 7 sp1

    软件镜像:
    dm8_20201112_x86_rh7_64_ent_8.1.1.144.iso

    1.DM管理工具介绍

    DM 管理工具是数据库自带的图形化工具,可以方便快捷的对数据进行管理。在网络允许的条件下,可通过单个管理工具,对多个数据实例进行管理,方便简化 DBA 对数据库的日常运维操作要求。(来源于达梦云适配中心)

    2.DM管理工具简单使用

    1.打开DM管理工具

    方式一:开始目录-达梦数据库-DM管理工具
    在这里插入图片描述
    方式二:进入到达梦数据库软件安装目录下的tool目录,打开manager.exe
    在这里插入图片描述
    方法三:
    linux系统需要开启图形化界面,使用root用户进入到达梦数据库软件目录下的tool目录,使用./manager 启动。

    打开后进入到主界面
    在这里插入图片描述

    2.数据库连接

    在左上角的对象导航处,我们可以点击打开新建数据库连接
    在这里插入图片描述
    1.新建连接

    在这里插入图片描述
    勾选项保存口令会保存当前连接的口令密码,生产环境则会在窗口连接左下方重点标识当前环境为生产环境。
    点击确定登录成功后,会在导航对象出现新建连接的数据库对象
    在这里插入图片描述
    2.注册连接
    和新建连接相比多了一项注册信息,为该连接的相关标识介绍信息。
    在这里插入图片描述
    确定点击保存前,可以点击测试按钮,测试所填数据库连接信息是否能正常连接。
    在这里插入图片描述

    测试连接成功,可以点击确定注册保存该链接
    在这里插入图片描述
    保存成功后在对象栏出现刚刚注册的数据库连接信息,但图像标识看到红点,即当前为断开状态,需要我们双击后才连接。

    3.DM管理工具常用功能介绍

    1.用户管理:模式,角色,用户
    在这里插入图片描述
    用户:可以登录并对数据库有操作权限的用户。
    模式:就是一组数据库对象的集合。
    数据库对象:表、视图、存储过程、触发器、包、序列、同义词等。
    模式与用户的关系:一个用户可以拥有多个模式,一个模式只能属于一个用户。创建用户时,会自动创建一个同名的模式。
    角色:一组数据库操作权限,可以授予用户,一般适用于批量管理、分级管理用户权限。
    可以看到使用DM管理工具,可以轻松对用户进行维护管理,

    2.数据库对象操作
    这里以表对象操作为例,展开模式,展开对应模式名,展开表,即可看到该模式下的所有表对象
    在这里插入图片描述
    在表大项右键,则可以执行新建表,导入表等操作
    在具体的表名处,右键,则是对改表对象进行操作,比如右键TTT表,选择修改,进入表对象修改界面
    在这里插入图片描述
    右键TTT表,选择浏览数据
    在这里插入图片描述
    不仅可以浏览数据,还可以双击对应数据进行修改,右键删除新增等。对数据进行操作后,需要右键点击保存,或者快捷键CTRL+S保存生效。右键选择刷新也会弹出是否保存提示,如果不需要该修改点击否即可。
    在这里插入图片描述
    筛选数据在下方窗口,比如我需要查询ID和CITY列,且CITY列为北京的数据,则如下操作,选择ID和CITY列,点击左三角按钮,拉到右侧选择窗口,再双击CITY列筛选项,修改为是,比较值输入北京,最后点击应用按钮,则可以得到我们想要查询的数据
    在这里插入图片描述
    在这里插入图片描述
    3.数据库对象导出导入
    DM管理工具支持对所有数据库对象的导出,导入。例如我们对SYSDBA模式下的所有对象导出,在SYSDBA模式右键,选择导出。
    在这里插入图片描述
    选择导出目录后,导出文件可以自行修改名字,也可保持默认,最后点击确定即可
    在这里插入图片描述
    导入操作,则需要在模式大项右键,选择导入,浏览选择导入文件所在目录,选择对应.dmp导入文件,点击确定即可(需要注意的是,导入目标数据库实例需要和源导出数据库实例初始化固定参数保持一致,否则会出现导入失败

    4.备份
    数据库热备份需要创建作业实现,详细会在另一博客中介绍
    在这里插入图片描述
    5.查询窗口
    点击左上角新建查询,可以新建一个查询窗口
    在这里插入图片描述
    在窗口中可以输入SQL对数据进行各项操作
    在这里插入图片描述
    在窗口-选项-查询分析器-编辑器中,可以勾选显示行号,启用语法检查。可以更方便我们SQL编写调试。右键指定SQL,选择脚本中的格式化,可以对SQL进行格式美化。
    在这里插入图片描述
    6.函数查询
    从窗口-视图-函数,可以调出函数查询界面,方便我们对数据库一些内置函数介绍使用进行查询。
    在这里插入图片描述

    展开全文
  • 工具可以帮助你模拟数据库环境并同时为几个数据库表生成测试数据,为生成数据定义表和字段,设置值范围,根据标记生成Oracle字符字段,手动定义列表值或者从SQL查询里选择。该工具还提供了命令行应用程序。
  • 《PBSQLServer Tools 3.0》,简洁实用的基础上,实现更加强大的功能,程序开发必备工具。 1、使用简单,功能强大,支持表名称快速查询。 2、支持表结构备注修改。 3、支持字段备注修改。 4、支持标准SQL语句动态查询...
  • 达梦数据库之DM管理工具使用

    万次阅读 2020-06-15 23:06:48
    达梦数据库DM管理工具使用
  • 数据库版本管理工具Flyway使用介绍

    千次阅读 2020-02-20 14:30:06
    数据库版本管理工具Flyway使用介绍
  • 在线数据库管理工具 web-db mongodb

    千次阅读 2021-11-21 15:55:34
    起因: 平常连接数据库只是查看数据,没有复杂操作时还要打开软件,还要放在后台一直开着,感觉不舒服就想着开发一个web端的数据库管理工具试试 尝试: 与数据库对接使用node和mongodb官方插件node-mongodb-native ...
  • 代码如下:ALTER TABLE `数据库名`.`表名` ADD COLUMN `PROCID` VARCHAR(6) DEFAULT ” AFTER `PPIDChanged`;...下面推荐几款软件:mysql图形管理工具Navicat 8.2中文免费版SQL-Front v4.2 Build 2.7 破
  • 从搭建jira中学习中摘...这里插一个MySQL Workbench的安装及使用,可以方便地管理数据库,我比较喜欢用这些图形化界面工具,毕竟命令行里看不到总觉得不好,觉得这个比navicat好用,一直都用的这个,这里回顾补一下...
  • 四种优秀的数据库设计工具

    千次阅读 2021-01-18 19:19:19
    【51CTO.com快译】众所周知,良好的数据库设计能够大幅减少后期的运维工作,同时也能最大程度地减少软件...用户界面可支持的数据库数据工具售价1.DbSchemaDbSchema是一种可用于复杂数据库设计和管理的可视化工具。该...
  • 有时候, 你在创建一个类, 或者一个方法时, 希望可以用...1. 数据库字段命名: 字段名称 备注 sku 商品简码 sku_name 商品名称 dc_id 配送中心简码 dc_name 配送中心名称 ...
  • 本软件可根据SQL设定自动检索所有数据表和文本字段值, 并对指定字符进行批量替换.设计之初主要解决数据库被黑客攻击,在数据库中...手工用SQL 语句逐一字段清除相当费劲,用本软件可以快速解决,清除数据库中的 脚本木马!
  • EMS Data Generator:trade_mark: for PostgreSQL是一个可以立刻生成测试数据的工具,并对PostgreSQL数据库表进行测试。该向导程序可以引导您定义需要生成数据的表和字段,设置值域,通过掩码产生字符字段,从文件中...
  • MYSQL数据库字段命名及设计规范

    万次阅读 2018-01-12 09:12:01
    1. 设计原则 ...简单来说,遵守3NF标准的数据库的表设计原则是:“OneFactinOnePlace”即某个表只包括其本身基本的属性,当不是它们本身所具有的属性时需进行分解。表之间的关系通过外键相连接。它具有以下
  • 国产话达梦数据库,常用工具:达梦管理工具,达梦数据迁移工具。 1、达梦管理工具主要类似于navicat,是数据库可视化工具,新建连接输入IP,端口,账号,密码即可连接数据库。 之后在模式中,可以查看该账号权限...
  • IntelliJ IDEA的数据库管理工具实在太方便了

    万次阅读 多人点赞 2020-09-03 13:05:02
    1. 前言胖哥是一个有软件洁癖的人,能用现有的软件解决问题的绝不安装新的软件。Java后端开发主要跟数据库打交道,所以数据库图形化界面(GUI)是少不了的。通常图形化操作关系型数据库(R...
  • 达梦数据库简介、获取、安装、DM管理工具、适配 一、简介 达梦数据库管理系统以下简称 DM 是基于客户服务器方式的数据库管理系统,可以安装在多种计算机操作系统平台上,典型的操作系统有:Windows(Windows2000/2003...
  • myesl是一个关系型数据库管理系统,也是目前最流行的管理系统之一,目前网页设计方面对一个系统的使用频率是比较高的,因此想要学会网页设计,那么有关myesl的基础知识以及应用就一定要掌握。而今天我们就来看一看...
  • PB数据库管理工具3.0

    热门讨论 2013-10-26 14:26:33
    《PBSQLServer Tools 3.0》,简洁实用的基础上,实现更加强大的功能,程序开发必备工具。 1、使用简单,功能强大,支持表名称快速查询。 2、支持表结构备注修改。 3、支持字段备注修改。 4、支持标准SQL语句动态...
  • 给大家推荐一个自研的开源WEB版数据库管理工具:kb-dms 开源项目地址: kb-dms ,如果能帮到你,请帮忙点个星。谢谢~ 本工具主要有以下特点: 权限控制: 避免数据源权限不可控的风险,避免数据、库表被无故修改。 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 215,101
精华内容 86,040
关键字:

数据库字段管理工具