【本文详细介绍了数据库的基础知识之SQL常见表达式,欢迎读者朋友们阅读、转发和收藏!】
1 基本概念
一般指由常量、变量、函数和运算符组成的式子为表达式,应特别注意的是单个常量、变量或函数亦可称作表达式。
SQL 语言中包括三种表达式, 第一种是 < 表名 > 后跟的 < 字段名表达式 > ,第二种是 SELECT 语句后的 < 目标表达式 > ,第三种是 WHERE 语句后的 < 条件表达式 > 。
1 .字段名表达式
< 字段名表达式 > 可以是单一的字段名或几个字段的组合,还可以是由字段、作用于字段的集函数和常量的任意算术运算( + 、—、 * , / )组成的运算公式。主要包括数值表达式、字符表达式、逻辑表达式、日期表达式四种。
例如: 1+2 , 1000*1000*1000 等为数值表达式
2 .目标表达式
< 目标表达式 > 有 4 种构成方式:
( 1 ) * ,表示选择相应基表和视图的所有字段。
( 2 ) < 表名 >.* ,表示选择指定的基表和视图的所有字段。
( 3 )集函数(),表示在相应的表中按集函数操作和运算。
( 4 ) [< 表名 >.]< 字段名表达式 >[ , [< 表名 >.]< 字段名表达式 >] …,表示按字段名表达式在多个指定的表中选择。
例如:
Select id,bytes*8/60 from datahouse.tbl_datahouseSelect max(tbl_datahouse.data_addr), min(tbl_datahouse.data_addr), count(tbl_datahouse.data_addr) from datahouse.tbl_datahouse
3 .条件表达式
< 条件表达式 > 常用的有以下六种:
( 1 )比较大小
应用比较运算符构成表达式,主要的比较运算符有: = , > , < , >= , <= , != , <> , !> (不太于), !< (不小于), NOT+ (与比较运算符同用,对条件求非)。
例如: select * from datahouse.tbl_datahouse where id<100
( 2 )指定范围
BETWEEN … AND … , NOT BETWEEN … AND …
查找字段值在(或不在)指定范围内的记录。 BETWEEN 后是范围的下限(即低值), AND 后是范围的上限(即高值)。
例如: select * from datahouse.tbl_datahouse where data_ADDR between 1962999809 and 1962999823
( 3 )集合
IN …, NOT IN …
查找字段值属于(或不属于)指定集合内的记录。
例如: select * from datahouse.tbl_datahouse where data_ADDR IN (1962999810, 1962999818)
( 4 )字符匹配
LIKE , NOT LIKE ’ < 匹配串 > ’ [ESCAPE ’ < 换码字符 > ’ ]
查找指定的字段值与 < 匹配串 > 相匹配的记录。 < 匹配串 > 可以是一个完整的字符串,也可以含有通配符 _ 和 % 。其中 _ 代表任意单个字符; % 代表任意长度的字符串。
例如: select * from datahouse.tbl_datahouse where data_pub_addr like '%117.%'
( 5 )空值
IS NULL , IS NOT NULL
查找字段值为空(或不为空)的记录。 NULL 不能用来表示无形值、缺省值、不可用值,以及取最低值或取最高值。 SQL 规定,在含有运算符 + 、 - 、 * 、 / 的算术表达式中,若有一个值是空值,则该算术表达式的值也是空值;任何一个含有 NULL 比较操作结果的取值都为“假”。
例如: select * from datahouse.tbl_datahouse where data_id is null
( 6 )多重条件
AND , OR
AND 含义为查找字段值满足所有与 AND 相连的查询条件的记录; OR 含义为查找字段值满足查询条件之一的记录。 AND 的优先级高于 OR ,但可通过括号改变优先级。
例如: select * from datahouse.tbl_datahouse where tenantid like '%DataHouse%' and data_pub_addr not like '%180.%'