软件测试数据库中SQL语句创建Oracle Spatial的图层方法

发表于:2010-09-29来源:作者:点击数: 标签:软件测试数据库sqlSqlSQL
软件测试 数据库 中SQL语句创建 Oracle Spatial的图层方法 SQL是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统,可以使用相同

软件测试数据库中SQL语句创建Oracle Spatial的图层方法
SQL是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统,可以使用相同的SQL语言作为数据输入与管理的  SQL
接口。它以记录集合作为操作对象,所有SQL语句接受集合作为输入,返回集合作为输出,这种集合特性允许一条SQL语句的输出作为另一条SQL语句的输入,所以SQL语句可以嵌套,这使他具有极大的灵活性和强大的功能,在多数情况下,在其他语言中需要一大段程序实现的功能只需要一个SQL语句就可以达到目的,这也意味着用SQL语言可以写出非常复杂的语句。   结构化查询语言(Structured Query Language)最早是IBM的圣约瑟研究实验室为其关系数据库管理系统SYSTEM R开发的一种查询语言,它的前身是SQUARE语言。SQL语言结构简洁,功能强大,简单易学,所以自从IBM公司1981年推出以来,SQL语言得到了广泛的应用。如今无论是像Oracle、Sybase、Informix、SQL Server这些大型的数据库管理系统,还是像Visual Foxpro、PowerBuilder这些PC上常用的数据库开发系统,都支持SQL语言作为查询语言。   美国国家标准局(ANSI)与国际标准化组织(ISO)已经制定了SQL标准。ANSI是一个美国工业和商业集团组织,负责开发美国的商务和通讯标准。ANSI同时也是ISO和International Electrotechnical Commission(IEC)的成员之一。ANSI 发布与国际标准组织相应的美国标准。1992年,ISO和IEC发布了SQL国际标准,称为SQL-92。ANSI随之发布的相应标准是ANSI SQL-92。ANSI SQL-92有时被称为ANSI SQL。尽管不同的关系数据库使用的SQL版本有一些差异,但大多数都遵循 ANSI SQL 标准。SQL Server使用ANSI SQL-92的扩展集,称为T-SQL,其遵循ANSI制定的 SQL-92标准。   SQL语言包含4个部分:   ※ 数据定义语言(DDL),例如:CREATE、DROP、ALTER等语句。   ※ 数据操作语言(DML),例如:INSERT(插入)、UPDATE(修改)、DELETE(删除)语句。   ※ 数据查询语言(DQL),例如:SELECT语句。   ※ 数据控制语言(DCL),例如:GRANT、REVOKE、COMMIT、ROLLBACK等语句。   SQL语言包括三种主要程序设计语言类别的语句:数据定义语言(DDL),数据操作语言(DML)及数据控制语言(DCL)。   SQL 是用于访问和处理数据库的标准的计算机语言。   SQL 指结构化查询语言 SQL 使我们有能力访问数据库 SQL 是一种 ANSI 的标准计算机语言 编者注:ANSI,美国国家标准化组织

接下来说一下有关数据库中SQL语句创建Oracle Spatial的图层方法
如果需要直接操作数据库,写SQL脚本的方式创建空间数据库,需要注意,创建数据库后还需要将一些必要的元数据信息写入对应的表中,然后再向空间表插入行数据(一行就是一个地图图元),大家可以参照下面的SQL语句操作,一定可以创建成功的。
  1.创建空间表

  CREATE TABLE Spatable (

  ID NUMBER (11),

  NAME VARCHAR2 (32),

  MI_STYLE VARCHAR2 (254),

  MI_PRINX      NUMBER (11),

  GEOLOC        MDSYS.SDO_GEOMETRY );

  2.将表元信息插入MapCatalog表中,如果该表不存在请用mapinfo/mapinfo登陆如数据库,请导入MapInfo公司提供的脚本,该脚本在MapXtreme

  for Java安装后的目录中找到

  insert into mapinfo.mapinfo_mapcatalog( spatialtype , tablename

  , ownername, spatialcolumn, db_x_ll, db_y_ll, db_x_ur, db_y_ur,

  coordinatesystem, symbol, xcolumnname, ycolumnname,

  renditiontype, renditioncolumn, renditiontable, number_rows )

  values

  (13,'SPATABLE','DEMOGIS','GEOLOC',0,100000,0,100000,'NONEARTH

  UNITS "M" BOUNDS (0, 0) (100000, 100000)

  ',NULL,'NO_COLUMN','NO_COLUMN',1,'MI_STYLE',NULL,NULL);

  3.将表元信息插入MapCatalog表中,安装完Oracle Spatial就有

  INSERT INTO USER_SDO_GEOM_METADATA valueS

  ('Spatable','GEOLOC',MDSYS.SDO_DIM_ARRAY( MDSYS.SDO_DIM_ELEMENT(

  'x', 0, 10000, .000000001),MDSYS.SDO_DIM_ELEMENT('Y', 0,

  10000,.000000001)), NULL)

  4.创建空间索引

  CREATE INDEX Spatable_SX ON Spatable(GEOLOC) INDEXTYPE IS

  MDSYS.SPATIAL_INDEX;

  5.创建索引

  create index Spatable_idx on Spatable(mi_prinx);

  6.向表中插入数据,一行代表一个图元

  insert into Spatable values (1, 'tab_1', '', 1,

  MDSYS.SDO_GEOMETRY(

  2001, NULL, MDSYS.SDO_POINT_TYPE(6027.08803, 1563.71732, NULL),

  NULL, NULL));

原文转自:http://www.ltesting.net