构建SQL查询的表达式

结构化查询语言(SQL)是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。

下面以示范数据 PopulationAndEconomy 工作空间中的 Province_R 数据集为例,介绍如何构建常用的SQL查询表达式。

数值查询

对数值进行查询,常用的运算符有“=”、“<>”、“>”、“<”、“<=”、“>=”、“Between...and...” 等。

示例:Province_R.Pop_2014 Between 5000 and 10000

表示查询2014年人口(Pop_2014字段值)在5000万到10000万之间的对象。

注意事项:

对双精度类型数值进行比较查询时,不推荐直接使用“=”进行查询,可能会因为精度问题,查询不到结果。

字符串查询

使用关键字“like”,可完成以下三种字符串查询。

  • 部分匹配,使用“%”字符。

    示例:Province_R.Name like "山%" 或 Province_R.Name like '山%'

    查询 Province_R 数据集的 Name 字段中,名字以“山”开头的对象。

  • 完全匹配。数据库型数据源中只能使用单引号,UDB/UDBX 数据源使用单引号或双引号均可。

    示例:Province_R.Name like "北京" 或 Province_R.Name like '北京'

    查询 Province_R 数据集的 Name 字段中,值为“北京”的对象。

  • 单字匹配,使用“_”字符。

    示例:Province_R.Name like '河__'

    查询 Province_R 数据集的 Name 字段中,开头为“河”,且其后存在两个字符的对象。

特定值查询

查询指定列表内若干值中的任意一个值,使用关键词“in”。

  • 示例1:Province_R.Name in ("北京市","上海市")

    查询 Province_R 数据集的 Name 字段中,值为“北京市”或“上海市”的对象。

  • 示例2:Province_R.ColorID in (1,4)

    查询 Province_R 数据集的 ColorID 字段中,值为1或4的对象。

注意事项:

对于字符型字段,查询值需要用单引号或者双引号括起来。但在数据库型数据源中,只能使用单引号。

空值查询

查询存储空值的记录,使用关键字“is NULL ”。

示例:Province_R.Name Is NULL

查询 Province_R 数据集的 Name 字段中,值为空的对象。

组合语句

可使用“and”、“or”、“not”关键字组合任意合法的条件表达式。

示例:Province_R.GDP_2014 > 10000 and Province_R.IncomeLevel > 20000

查询2014年GDP大于1万亿,并且人均收入大于2万的对象。

比较运算符在字符型字段中的应用

比较运算符,如“>”、“<”、“>=”、“<=”等。对于数据库型数据源,字符型字段的值只能使用单引号。

示例:Province_R.Name >= "贵州省"

查询 Province_R 数据集的Name字段中,值的首字母在 G 到 Z 之间的对象。

日期查询

为Province_R数据集创建一个日期型字段 DataDate,用于存储每条数据的统计时间。以查询 DataDate 字段大于2019-08-10的记录为例,举例说明不同数据库型数据源中的表达式输入。

  • SQL(SQL+)数据源: Province_R.DataDate > '2019-08-10 12:25:00'。
  • ORACLE 数据源: Province_R.DataDate > TO_DATE('2019-08-10','YYYY-MM-DD')。
  • PostGIS 数据源:"Province_R".datadate > '2019-08-10 12:25:00'。
  • PostgreSQL 数据源:Province_R.datadate > '2019-08-10 0:0:0' 。
  • UDB/UDBX 数据源:"Province_R".datadate > '2019-08-10',日期格式为YYYY-MM-DD。

布尔值查询

布尔型字段属性值为 True 或者 False,SQL查询时用1表示True,0表示False。

示例:Province_R.Coastal = 1

查询 Province_R.数据集中,Coastal属性值为True的对象。Coastal为新建的布尔型字段。

派生字段

示例:Province_R.SmArea / Province_R.SmArea

在查询结果属性表中会列出临时字段,用来存储查询结果。可以通过“as”关键词为该字段重命名,如:Province_R.SmArea / Province_R.SmArea as Pop_Density,“Pop_Density”为临时字段名称。

若不给定别名,系统则使用表达式内容本身作为临时字段名。

若指定多个派生字段表达式,可用逗号分隔。

相关主题

构建SQL查询

构建SQL语句查询

构建SQL查询的函数说明

属性查询示例

分组统计示例

关联查询示例