CN117632997A - 一种跨数据库平台的命令行界面及读写操作方法 - Google Patents

一种跨数据库平台的命令行界面及读写操作方法 Download PDF

Info

Publication number
CN117632997A
CN117632997A CN202311542444.3A CN202311542444A CN117632997A CN 117632997 A CN117632997 A CN 117632997A CN 202311542444 A CN202311542444 A CN 202311542444A CN 117632997 A CN117632997 A CN 117632997A
Authority
CN
China
Prior art keywords
instruction
interface
connection
database
command line
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202311542444.3A
Other languages
English (en)
Inventor
陆嘉辉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shandong Inspur Database Technology Co Ltd
Original Assignee
Shandong Inspur Database Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shandong Inspur Database Technology Co Ltd filed Critical Shandong Inspur Database Technology Co Ltd
Priority to CN202311542444.3A priority Critical patent/CN117632997A/zh
Publication of CN117632997A publication Critical patent/CN117632997A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/2428Query predicate definition using graphical user interfaces, including menus and forms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/2433Query languages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Mathematical Physics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及交互界面领域,具体提供了一种跨数据库平台的命令行界面及读写操作方法,具有如下步骤:S1、接受所有SQL语句,以“;”结尾;S2、变量的定义和运算指令,所述运算指令以“:”开头,以“;”结尾;S3、界面的定制化指令,以“:”开头,以“;”结尾;S4、快捷指令,以“\”开头,末尾没有。与现有技术相比,本发明能够使用一个CLI对多个平台的连接进行管理,对多个数据库平台进行操作,不需要对程序语言和数据库接口过多的基础知识,就能使用CLI完成对数据库的操作。

Description

一种跨数据库平台的命令行界面及读写操作方法
技术领域
本发明涉及交互界面领域,具体提供一种跨数据库平台的命令行界面及读写操作方法。
背景技术
早期用户使用数据库时,必须要使用随该产品一同发布的一些工具集来访问数据库。如今,现代应用场景对数据库类型的需求日益复杂,多种不同的数据库经常被结合在一起使用。在这种场景下,由于不同平台的命令行界面之间都是独立的,用户缺乏一个统一的工具,因此需要在多个数据库的交互界面之间切换操作,不够方便。
于是自90年代开始,ODBC、JDBC等应运而生。它们提供了一套标准的接口,让各种语言的(如C、Java等)客户端的程序可以通过它们访问数据库。用户通过代码同时访问不同的数据库成为可能。
然而,对于非开发人员而言,需要Java、C等语言中使用这些接口,对于用户的程序语言知识基础较高(需要自己维护各个类型和指针)。如果能推出一个使用简单的CLI能够访问多个数据库,对于这类用户帮助巨大。
此外,目前的数据库产品中,大部分指令都是在服务端完成的。然而,一些变量设置,循环等操作(例如MySQL中的set@v=3,LOOP...END LOOP)可以在本地完成,提高效率。
此外,目前的SQL在变量代入存在诸多限制,例如只能将代入到一般SQL语句中的“值”的位置(例如select*from tb where x=@v)。若要创建一个由以e1,e2,...,e100为列的名字的表格,则上述变量设置和循环语句都没有帮助。
发明内容
本发明是针对上述现有技术的不足,提供一种实用性强的跨数据库平台的命令行界面。
本发明进一步的技术任务是提供一种设计合理,安全适用的跨数据库平台的命令行界面读写操作方法。
本发明解决其技术问题所采用的技术方案是:
一种跨数据库平台的命令行界面,具有如下步骤:
S1、接受所有SQL语句,以“;”结尾;
S2、变量的定义和运算指令,所述运算指令以“:”开头,以“;”结尾;
S3、界面的定制化指令,以“:”开头,以“;”结尾;
S4、快捷指令,以“\”开头,末尾没有。
进一步的,在步骤S2中,进一步包括:
(1)定义变量;
(2)赋值,或执行表达式运算a=b+c;
(3)循环,允许用户重复执行操作;
(4)多线程,用户多并行的执行操作。
进一步的,用户当前已连接到数据库,创建多条与现有连接相同配置的若干新连接,进行所要并行的操作。
进一步的,在步骤S3中,进一步包括:
(1)创建连接,按照给定的URL进行对服务器的连接;
(2)显示现有连接,显示所有本界面已经创建的连接,以及名字和编号;
(3)删除连接,将指定名字和编号的连接删去,如果没有指定名字和编号,则会关闭当前使用的连接;
(4)运行文件,将运行指定路径的文件,文件支持的语法与本界面的语法相同;
(5)修改输出目标,修改输出路径到给定文件,如果没有指定路径,则会修改为在当前终端输出。
进一步的,在步骤S4中,进一步包括:
(1)退出“\q”;
(2)帮助功能“\h”,用户输入“\h<keyword>”得到给定关键字的帮助文档;
本界面提供一个关键的文本嵌入功能,在输入SQL时,使用${...}将表达式的值嵌入在任何部分。
一种跨数据库平台的命令行界面读写操作方法,用户界面位于标准数据库接口的上层,调用所述接口来与数据库交互并进行读写操作,具体步骤为:
S1、用户在本CLI中输入指令,解释器会根据输入指令的格式进行分类,然后构建对应的抽象语法树;
S2、执行模块在本地维护自己的内存,并维护所有连接的所有信息,在抽象语法树构建完毕后,CLI会将抽象语法树上表达式节点全部计算成结果值。
S3、在输出模块中,如果指令有结果输出,执行模块还会根据输出物的类型,把结果排版并输出。
进一步的,在步骤S1中,首先解释器会读取第一个非空格的字符,并进行如下分类处理:
(1)冒号“:”,解释器识别为运算或定制化指令;
(2)反斜杠“\”,解释器识别为快捷指令;
(3)其它,解释器识别为SQL指令;
之后,按照token逐个识别指令并构建AST。
进一步的,在步骤S2中,CLI会根据输入的语句类型,在本地执行,或者通过平台的接口发送到服务器执行;
(1)运算指令和循环指令,执行模块在进程内创建自己的变量,来存储用户定义的变量的值用于指令操作;
(2)快捷指令,模块在本地执行即可;
(3)连接相关的指令,执行模块利用平台提供的接口,进行联机的创建或者关闭,并更新本地保存的连接信息;
(4)多线程相关的指令,执行模块会根据当前的连接,创建一个属性与之相同的全新连接,作为新建的线程所使用的连接,在线程结束后,关闭这条新建的连接;
(5)SQL指令,执行模块通过数据库的接口发送到服务端,并接收结果。
本发明的一种跨数据库平台的命令行界面及读写操作方法和现有技术相比,具有以下突出的有益效果:
本发明能够使用一个CLI对多个平台的连接进行管理,对多个数据库平台进行操作,不需要对程序语言和数据库接口过多的基础知识,就能使用CLI完成对数据库的操作。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
附图1是一种跨数据库平台的命令行界面读写操作方法的流程示意图。
具体实施方式
为了使本技术领域的人员更好的理解本发明的方案,下面结合具体的实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例都属于本发明保护的范围。
下面给出一个最佳实施例:
如图1所示,本实施例中的一种跨数据库平台的命令行界面,具有如下步骤:
S1、接受所有SQL语句,以“;”结尾;
S2、变量的定义和运算指令,所述运算指令以“:”开头,以“;”结尾;格式类似C等高级语言,如下:
(1)定义变量;如:“int a;”定义了一个整型变量a;“:varchar s;”定义了一个字符串变量s;
(2)赋值;如:“x=0;”,也可以执行表达式运算:a=b+c;
(3)循环,如:loop a=1 to 10{...}或者:loop=100{...}。允许用户重复的执行一些操作。
(4)多线程,如:loop_thread int a=1 to 10{...}。用户可以多并行的执行操作。注意若用户当前已连接到数据库,那么这些操作将创建多条与现有连接相同配置的若干新连接,进行所要并行的操作。
S3、界面的定制化指令,以“:”开头,以“;”结尾;
进一步包括:
(1)创建连接,“:create connection<URL>[as<nickname>];”按照给定的URL进行对服务器的连接,没有提供名字的连接将按数字编号,URL并不只是统一资源定位符,它可广泛的表示所要连接到的服务器的独有的属性描述,使得用户可以连接到任意本发明的用户界面所适配的不同种类的数据库。
(2)显示现有连接,“:show connections;”显示所有本界面已经创建的连接,以及名字和编号;
(3)删除连接,“:drop connection<nickname>;”将指定名字和编号的连接删去,如果没有指定名字和编号,则会关闭当前使用的连接;
(4)运行文件,“:runfile<input_path>”将运行指定路径的文件,文件支持的语法与本界面的语法相同;
(5)修改输出目标,“:ouptut<output_path>;”修改输出路径到给定文件,如果没有指定路径,则会修改为在当前终端输出。
S4、快捷指令,以“\”开头,末尾没有;
(1)退出“\q”;
(2)帮助功能“\h”,用户输入“\h<keyword>”得到给定关键字的帮助文档;
本界面提供一个关键的文本嵌入功能,在输入SQL时,使用${...}将表达式的值嵌入在任何部分。例如“select*from t where x>${a};”在定义了“:int a;”以及设置“:a=3;”后,语句等价为“select*from t where x>3;”这对循环执行大量语句,或者大量执行格式类似的语句都有很大的帮助。
以下例子创建了100列的表格,列名为e1到e100,均为int:
SQL:
:varchar cols;
:cols='e1 int';
:int i;
:loop i=2to 100{
:cols=cols+',e'+to_varchar(i)+'int';
create tabled(${cols});
基于上述一种跨数据库平台的命令行界面,其读写操作方法为:用户界面位于标准数据库接口的上层,调用所述接口来与数据库交互并进行读写操作,具体步骤为:
S1、用户在本CLI中输入指令,解释器会根据输入指令的格式进行分类,然后构建对应的抽象语法树;
首先解释器会读取第一个非空格的字符,并进行如下分类处理:
(1)冒号“:”,解释器识别为运算或定制化指令;
(2)反斜杠“\”,解释器识别为快捷指令;
(3)其它,解释器识别为SQL指令;
之后,解释器模块的流程与其它解释器/编译器类似,按照token逐个识别指令并构建抽象语法树。
S2、执行模块在本地维护自己的内存,并维护所有连接的所有信息,在抽象语法树构建完毕后,CLI会将抽象语法树上表达式节点全部计算成结果值,执行模块在进程内分配内存,用来记录变量或表达式的值。
然后,CLI会根据输入的语句类型,在本地执行,或者通过平台的接口发送到服务器执行;
(1)运算指令和循环指令,其执行逻辑与表达式运算类似;
(2)快捷指令,模块在本地执行即可;
(3)连接相关的指令,执行模块利用平台提供的接口,进行联机的创建或者关闭,并更新本地保存的连接信息。
(4)多线程相关的指令,执行模块会根据当前的连接,创建一个属性与之相同的全新连接,作为新建的线程所使用的连接。在线程结束后,关闭这条新建的连接;
(5)SQL指令,模块通过数据库的接口发送到服务端,并接收结果。
S3、在输出模块中,如果指令有结果输出,执行模块还会根据输出物的类型,把结果排版并输出。
上述具体的实施方式仅是本发明具体的个案,本发明的专利保护范围包括但不限于上述具体的实施方式,任何符合本发明权利要求书记载的技术方案且任何所属技术领域普通技术人员对其做出的适当变化或者替换,皆应落入本发明的专利保护范围。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。

Claims (8)

1.一种跨数据库平台的命令行界面,其特征在于,具有如下步骤:
S1、接受所有SQL语句,以“;”结尾;
S2、变量的定义和运算指令,所述运算指令以“:”开头,以“;”结尾;
S3、界面的定制化指令,以“:”开头,以“;”结尾;
S4、快捷指令,以“\”开头,末尾没有。
2.根据权利要求1所述的一种跨数据库平台的命令行界面,其特征在于,在步骤S2中,进一步包括:
(1)定义变量;
(2)赋值,或执行表达式运算a=b+c;
(3)循环,允许用户重复执行操作;
(4)多线程,用户多并行的执行操作。
3.根据权利要求2所述的一种跨数据库平台的命令行界面,其特征在于,用户当前已连接到数据库,创建多条与现有连接相同配置的若干新连接,进行所要并行的操作。
4.根据权利要求3所述的一种跨数据库平台的命令行界面,其特征在于,在步骤S3中,进一步包括:
(1)创建连接,按照给定的URL进行对服务器的连接;
(2)显示现有连接,显示所有本界面已经创建的连接,以及名字和编号;
(3)删除连接,将指定名字和编号的连接删去,如果没有指定名字和编号,则会关闭当前使用的连接;
(4)运行文件,将运行指定路径的文件,文件支持的语法与本界面的语法相同;
(5)修改输出目标,修改输出路径到给定文件,如果没有指定路径,则会修改为在当前终端输出。
5.根据权利要求4所述的一种跨数据库平台的命令行界面,其特征在于,在步骤S4中,进一步包括:
(1)退出“\q”;
(2)帮助功能“\h”,用户输入“\h<keyword>”得到给定关键字的帮助文档;
本界面提供一个关键的文本嵌入功能,在输入SQL时,使用${...}将表达式的值嵌入在任何部分。
6.一种跨数据库平台的命令行界面读写操作方法,其特征在于,用户界面位于标准数据库接口的上层,调用所述接口来与数据库交互并进行读写操作,具体步骤为:
S1、用户在本CLI中输入指令,解释器会根据输入指令的格式进行分类,然后构建对应的抽象语法树;
S2、执行模块在本地维护自己的内存,并维护所有连接的所有信息,在抽象语法树构建完毕后,CLI会将抽象语法树上表达式节点全部计算成结果值。
S3、如果指令有结果输出,执行模块还会根据输出物的类型,把结果排版并输出。
7.根据权利要求6所述的一种跨数据库平台的命令行界面读写操作方法,其特征在于,在步骤S1中,首先解释器会读取第一个非空格的字符,并进行如下分类处理:
(1)冒号“:”,解释器识别为运算或定制化指令;
(2)反斜杠“\”,解释器识别为快捷指令;
(3)其它,解释器识别为SQL指令;
之后,按照token逐个识别指令并构建AST。
8.根据权利要求7所述的一种跨数据库平台的命令行界面读写操作方法,其特征在于,在步骤S2中,CLI会根据输入的语句类型,在本地执行,或者通过平台的接口发送到服务器执行;
(1)运算指令和循环指令,执行模块在进程内创建自己的变量,来存储用户定义的变量的值用于指令操作;
(2)快捷指令,模块在本地执行即可;
(3)连接相关的指令,执行模块利用平台提供的接口,进行联机的创建或者关闭,并更新本地保存的连接信息;
(4)多线程相关的指令,执行模块会根据当前的连接,创建一个属性与之相同的全新连接,作为新建的线程所使用的连接,在线程结束后,关闭这条新建的连接;
(5)SQL指令,执行模块通过数据库的接口发送到服务端,并接收结果。
CN202311542444.3A 2023-11-20 2023-11-20 一种跨数据库平台的命令行界面及读写操作方法 Pending CN117632997A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311542444.3A CN117632997A (zh) 2023-11-20 2023-11-20 一种跨数据库平台的命令行界面及读写操作方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311542444.3A CN117632997A (zh) 2023-11-20 2023-11-20 一种跨数据库平台的命令行界面及读写操作方法

Publications (1)

Publication Number Publication Date
CN117632997A true CN117632997A (zh) 2024-03-01

Family

ID=90015571

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311542444.3A Pending CN117632997A (zh) 2023-11-20 2023-11-20 一种跨数据库平台的命令行界面及读写操作方法

Country Status (1)

Country Link
CN (1) CN117632997A (zh)

Similar Documents

Publication Publication Date Title
US10606573B2 (en) System and method for computer language migration using a re-architecture tool for decomposing a legacy system and recomposing a modernized system
US5161211A (en) Method and system of specification processing
US5930806A (en) Method and system for data migration from network database to relational database
Yau et al. An integrated life-cycle model for software maintenance
JPS6375835A (ja) 目的コ−ド、プログラム・リスト及び設計文書を生成する装置
US5535325A (en) Method and apparatus for automatically generating database definitions of indirect facts from entity-relationship diagrams
WO2015138230A1 (en) Framework for data extraction by examples
EP0583117A2 (en) A device and method for converting computer programming languages
US5933634A (en) Mock-up method and mock-up control system for displaying pseudo operation
CN106648587A (zh) 一种基于注解的Web应用代码生成方法
CN101739335A (zh) 建议的应用评估系统
US20060271885A1 (en) Automatic database entry and data format modification
CN103631601A (zh) 一种代码生成方法和装置
JP5147240B2 (ja) リバーシブルなデザイン・ツリーの変換のための方法とシステム
CN113297251A (zh) 多源数据检索方法、装置、设备及存储介质
CN111367893A (zh) 数据库版本迭代的方法及装置
US20090228865A1 (en) Device for processing formally defined data
CN117608656A (zh) 一种基于ast和llm的混合式前端框架迁移方法
CN117632997A (zh) 一种跨数据库平台的命令行界面及读写操作方法
JP6993573B2 (ja) プログラム解析方法、プログラム解析装置およびプログラム解析プログラム
JPS6320529A (ja) 知識獲得方式
JPH04242829A (ja) プログラム更新システム
Brockman et al. A schema-based approach to CAD task management
JP3842574B2 (ja) 情報抽出方法および構造化文書管理装置およびプログラム
JPH07146785A (ja) プログラム自動生成方法および装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination