Python与开源GIS教程的内容,开发了单独的内容,请打开

https://www.osgeo.cn/pygis/

查看。

本页面的内容不再更新。

这一节我们来看一下基本的SQL语句用法。使用最通用的

Shape 文件作为源数据,来生成进行实验使用的

SpatiaLite 数据库文件。转换的时候,使用的是前面介

绍过的GDAL/OGR 的工具 ogr2ogr。

ogr2ogr -f SQLite -dsco SPATIALITE=YES x_china.db stats_county.shp -nlt multipolygon

% /test-2.3.sqlite数据库,在 \href{https://www.gaia-gis.it/spatialite-2.3.1/resources.html} 下载。

开始使用 SQL

现在开始学习SQLite,我们可以在 x_china.db 数据库上执行

第一条SQL查询。

$ spatialite x_china.db

spatialite> .headers on

spatialite> select * from STATS_COUNTY limit 5;

OGC_FID|GEOMETRY|province|name|ename|popu

1||23.0|南充市|mohexian|66.0

2||23.0|塔河县|tahexian|10.0

3||15.0|额尔古纳右旗|geergunyouqi|17.0

4||23.0|呼玛县|humaxian|5.0

5||15.0|额尔古纳左旗|geergunzuoqi|8.0

5|Magliano Alfieri|1674|1|0|0|

SELECT 是SQL中最常用的查询语句,上面的命令,从数据表中,获取了最开始的5条记录的所有字段的信息。

现在开始第二条SQL查询:spatialite> SELECT name AS County, popu as Population FROM stats_county ORDER BY name LIMIT 5;

County|Population

丁青县|6.0

七台河市|49.0

万全县|21.0

万县市|0.0

万宁县|62.0

复杂一点的SQL查询

spatialite> select name, popu from stats_county WHERE popu > 500 order by popu DESC;

name|popu

上海市|1137.0

北京市|974.0

涪陵市|896.0

重庆市|896.0

武汉市|749.0

天津市|682.0

广州市|567.0

SQL的高级用法

现在,我们看到SQL查询的另一种模式:

spatialite> select COUNT(*) as '# 城镇',

...> MIN(popu) as '最少',

...> MAX(popu) as '最多',

...> SUM(popu) as '人口总数',

...> SUM(popu) / COUNT(*) as '城镇平均人口'

...> from stats_county;

# 城镇|最少|最多|人口总数|城镇平均人口

2390|0.0|1137.0|125322.0|52.4359832635983

SQL语句可以写到多行中。SQLite会把分号前面的语句当成一条指令来执行;

可以在SQL查询中使用函数,如 COUNT()、 SUM()、 MIN()、 MAX(),这些意义都是显而易见的,不再赘述。

有效的SQL查询由简单的表达式和函数组成。请看下面的例子:

spatialite> select (10 - 11) * 2 as number, abs((10 - 11) * 2) as absolutevalue;

number|absolutevalue

-2|2

在这个例子中,并没有使用数据库字段或数据表。

现在,我们稍做变动重复上述查询

spatialite> select name, popu, HEX(GEOMETRY) from stats_county WHERE popu > 500 order by popu DESC;

name|popu|HEX(GEOMETRY)

上海市|1137.0|0001CAF80400DA2CBC76210B37419E72327E805B4E4112912 ... ...

北京市|974.0|0001CAF8040089536BC915292A418505E287E150524119F204 ... ...

涪陵市|896.0|0001CAF80400BC9DD1586C080741D466174E90C04B41AB76BF ... ...

重庆市|896.0|0001CAF8040088D147F6BF47FF4032E5513FA3BE4B4192D70E ... ...

武汉市|749.0|0001CAF804002ACF64BED4322941789BF197B9AF4C41E2C05E ... ...

天津市|682.0|0001CAF80400B27E94A949552E4172BCB19009025241C45EF6 ... ...

广州市|567.0|0001CAF804003ABD370486232A41566628A0539D4641A1DACA ... ...

上面的 HEX(GEOMETRY)的结果并没有完全打印出来。

HEX()| 函数返回 GEOMETRY 字段的二进制大对象的十六进制表达;在前面执行的时候 GEOMETRY 字段看起来像是空的,现在通过使用 HEX() 函数,我们知道里面包含有二进制数据。

gispython定义查询_Python与开源GIS:SpatiaLite 中的基本SQL数据库查询用法相关推荐

  1. sql数据库查询聚合函数_如何使用SQL Server数据质量服务确保正确的数据聚合

    sql数据库查询聚合函数 介绍 (Introduction) An interesting opportunity arose at a client site during early Octobe ...

  2. DRGs SQL数据库查询城镇职工医保定点医疗机构药占比

    医疗机构的药占比(不含中药饮片)是指医院药品收入/医疗收入×100%,通俗来说,就是病人看病的过程中,买药的花费占总花费的比例.去年10月27日由国家卫生计生委.国家发展改革委.财政部.人力资源社会保 ...

  3. SQL数据库查询LIMIT 数据分页

    SQL数据库查询LIMIT 数据分页 SQL的语句LIMIT 约束SELECT 查询数据包表时,使得SQL查询语句返回指定的记录数(行数).LIMIT 可以设置1个或2个int整型常量数字作为参数.L ...

  4. [转]SQL数据库查询到的汉字字段是乱码

    使用英文版SQL数据库查询到的汉字字段是乱码的解决方案 2007-12-04 14:55:45 标签: 函数  SQL  数据库  乱码  排序规则 原创作品,允许转载,转载时请务必以超链接形式标明文 ...

  5. mysql的查询语句大全_sql语句(sql数据库查询语句大全)

    sql语句 结构化查询语言(StructuredQueryLanguage)缩写为SQL.结构化查询语言是一种数据库查询和编程语言,用于访问数据以及查询,更新和管理关系数据库系统: 程序功能 创建数据 ...

  6. 通用SQL数据库查询语句精华使用简介

    一. 简单查询 简单的Transact-SQL查询只包括选择列表.FROM子句和WHERE子句.它们分别说明所查询列.查询的表或视图.以及搜索条件等. 例如,下面的语句查询testtable表中姓名为 ...

  7. idea查询类_Spring Security入门(三): 基于自定义数据库查询的认证实战

    0 引言 在笔者的上一篇文章中Spring Security入门(二):基于内存的认证一文中有提到过Spring Security实现自定义数据库查询需要你实现UserDetailsService接口 ...

  8. SQL数据库查询语句

    一.Select语句: select语句除了可以查看数据库中的表格和视图的信息外,还可以查看SQL Server的系统信息.复制.创建数据表.其查询功能强大,是SQL语言的灵魂语句,也是SQL中使用频 ...

  9. mysql中实现分类统计查询的步骤_在MySQL中如何进行分组统计查询

    昨天和大家分享了MySQL中,如何进行聚合函数及统计函数查询,若是不清楚的话,可以去看一下我的那个文章.今天继续和大家分享,在MySQL中如何进行分组统计查询,这个在实际应用中,也会经常运用到,比如以 ...

最新文章

  1. 程序包org.springframework.stereotype不存在,解决办法
  2. 三维重建13:点云的局部特征总结
  3. P5268-[SNOI2017]一个简单的询问【莫队】
  4. Redis配置文件配置
  5. 数据结构之顺序队列和链式队列常用的一些操作
  6. 荣耀 Magicbook Pro 锐龙版搭载深度操作系统桌面版
  7. vue从入门到开发--2-基本结构
  8. 2020-09-14 编译Qt的MySQL 5.7插件: qsqlmysql.dll
  9. mysql inet_aton 与 inet_ntoa 方法
  10. python数据分析之(7)简单绘图pylab
  11. Spring 注解编程之注解属性别名与覆盖
  12. HttpClient配置
  13. 教育部2009年印发《中小学班主任工作规定》
  14. 分享两个软件,listary和Snipaste,以及Listary的配置文件
  15. python 登录新浪微博_模拟登录新浪微博(Python) - 转
  16. 怎么安装redhat linux操作系统,Linux操作系统RedHat6.5安装
  17. 7-78 求e的近似值 (15 分)
  18. [转载]Michael Peng:北美求职记
  19. springmvc返回不带引号的字符串
  20. Java编写猜单词游戏

热门文章

  1. 论文阅读(XiangBai——【AAAI2017】TextBoxes_A Fast Text Detector with a Single Deep Neural Network)...
  2. Perl opendir()函数
  3. 28、Windows API Shell任务栏通知区域(Tray)图标
  4. html语言中base,HTML base 标签
  5. android 字母搜索栏,android仿微信通讯录搜索示例(匹配拼音,字母,索引位置)
  6. php slug,PHP函数使slug(URL字符串)
  7. 使用Python处理声音文件(五):绘制立体声音乐左右声道频谱
  8. 详解Python中的各种数字类型
  9. 网络 传输层 | UDP协议与TCP协议详解(三次握手及四次挥手、滑动窗口、拥塞控制)
  10. Linux 线程到底是什么(比喻+图解)