SQL在数据检查中的应用

时间:2022-08-30 05:53:38

SQL在数据检查中的应用

摘要:当前多个部门正进行境外立体测图,其目标属性数据的正确性、完备性、规范性检查是质检的重要环节,利用数据库来分析属性数据是否符合要求无疑是方便快捷的。结构化查询语言SQL是工业标准数据库操作语言,在实践中得到了广泛运用,本文对利用SQL的查询功能对属性检查进行了初步探索。

关键词:SQL、矢量地形图、属性

矢量地形图是地图要素的数字化表示,主要由属性数据、拓扑数据和元数据三部分组成。属性数据用于描述地理实体的类别、等级等质量特征和数量特征,拓扑数据用于描述地图上点、线、面状要素之间关联、邻接、包含等空间关系,元数据则包含了数据和信息资源的描述性信息。境外判绘生成的矢量数据是按照地形图作业规范规定的标准格式;其数据的正确性、完备性、规范性的检查是十分重要的环节。若能对数据属性进行分类显示,即按照某一属性项(编码、名称、编号等)分类和排序,将有共同属性的地图目标排列在一起,将会给属性检查带来很大的便利。现有的检查软件都会进行属性项检查,但是这种检查方式比较单一,不能自己定义查找方式,且操作比较繁琐,所以需要寻找一种能对属性数据进行快速查询、分析的方法。

一、属性数据文件记录格式

属性数据文件由点记录、线记录、面记录三部分组成。点、线、面记录各部分都有一个类首记录和若干中间记录,以文本方式存储。

作业中使用的式矢量地形图数据是严格按照生产记录格式组织、存储的,具有严谨规范的数据结构,很自然我们可以利用数据库来实现属性数据的查询分析。

二、操作流程

要实现这一设想,方法有很多,可以利用EXCEL、ACCESS导入分析,也可以编程直接读取属性数据文件。笔者采用的方法是将属性文件读入MDB数据库,利用SQL语言进行自定义查询,并输出结果的方式。流程图如下:

按图幅建立的mdb数据库中为每个图层建立一个数据表,用于存储每层的属性数据。数据表的结构(字段名称、数据类型、长度等)应按照军标格式设置,避免出现转换时数据丢失。利用自编程序将属性文件中的记录逐个读入数据库,在查询语句框中输入SQL语句即可进行数据筛选。通过分类筛选,将同类地物放在一起比较,就可以很轻松的检查出地物属性是否存在遗漏和错误。若需输出查询结果,程序可根据相应的坐标文件生成err文件,以供在freescan中检查修改。程序利用VB6.0+数据控件的方式实现,主界面如下:

三、利用SQL实现属性数据查询分析

结构化查询语言SQL是工业标准数据库操作语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统,在实践中得到了广泛运用。它以记录集合作为操作对象,所有SQL语句接受集合作为输入,返回集合作为输出,这种集合特性允许一条SQL语句的输出作为另一条SQL语句的输入,所以SQL语句可以嵌套,这使他具有极大的灵活性和强大的功能。

SQL语言包含4个部分 数据定义语言(如CREATE、DROP、ALTER等语句)、数据操作语言(如INSERT、UPDATE、DELETE语句)、数据查询语言(如SELECT语句)、数据控制语言(如GRANT、REVOKE、COMMIT、ROLLBACK等语句)。我们最常用到的SQL包括选择列表、FROM子句和WHERE子句,它们分别说明所查询列、查询的表、以及搜索条件等。

通过SQL语句的组合可以实现更多复杂的查询,实现对数据的分析与筛选。

如进行独立房与街区名称指针的挂接SQL语句:

SELECT * FROM 居民地C WHERE (居民地C.注记编号=Any (select 注记编号 from 居民地C where 居民地C.编码=130204)) and 注记编号0 and 编码=130201;

这是查找街道名未挂指针的SQL语句:

SELECT * FROM 注记R

WHERE 注记R.编码=280338 and (注记R.注记号 NOT in (select 陆地交通D.注记编号 from 陆地交通D));

通过修改SQL语句就可以非常灵活的实现各种查询和筛选。为了方便操作,还可以将各种条件的查询语句存放在一个文本文件中,随时调用。

结束语:

本文主要介绍了利用SQL语句在数据库中对矢量地形图属性数据进行分析检查的一种方法,这种方法在往年的数据入库中是可行的,且在一定程度上提高了作业效率。在当前进行境外数字判绘过程中,需要我们通过实践不断总结和探索新的更有效的作业方法,高质量、高效率圆满完成任务。

上一篇:在《看见》里看见的 下一篇:纳米材料综述