数据查询语句:select
select [前置条件] 查的内容into 表名(将查询的内容创建为新表)
from 从哪查
where 怎么查
order by [ASC(升序,默认)|DESC(降序)]
group by 按某个字段分组
having
between...and
like()模式匹配
is null/is no null(是否为空)
in/no in
rownum(顺序分配为从查询返回的行的编号)
as 声明别名
前置条件为distinct时,查询的结果去掉重复的。
rownum:系统顺序分配为从查询返回的行的编号,用于限制查询返回的总行数。
rowid:伪列,确保表中行的唯一性,并不能指示出行的物理位置,可以用来定位
group by知识总结:
group by ID是将数据按ID分类整理。
注意:
1.用having子句时,在子句中不能使用别名,必须使用在select语句中书写的形式
2.Where 和having的区别:
Wheret和having子句都用来筛选数据,
但是where是针对原数据进行筛选,而having子句只是针对汇总后的结果进行筛选
rollup操作符:
Rollup意思有”卷起,汇总”的意思,
可以在使得在其括号中的字段,按从右到左的顺序分别group后显示,类似我们用多个group by 语句,然后union all起来。
例子:select a,b,c,sum(n) total from testgroup group by rollup(a,b,c);
cube操作符:
Cube意思是立方,使用该操作符可以对操作符内的字段,进行遍历组合汇总。
例如cube(a,b,c),那么就会产生8种组合结果,分别如下”a-b-c”,”a-b”,”a”,”a-c”,” b-c”,”b”,”c”,”空”
多行子查询:
多行子查询可以返回单列多行的数据,在这种多行子查询中,必须使用多行运算符来判断,而不能使用单行运算符。使用多行运算符可以执行与一个或多个数据的比较操作。
多行比较运算符包括:
IN:等于列表中的任何一值,也可使用not in,即列表中不存在的值
ANY:与子查询返回的每一个值进行比较
ALL:与子查询返回的所有值进行比较
ANY运算符表示与子查询中的每一个值进行比较,这时,需要将单行比较运算符与该运算符组合起来使用。
与单行比较运算符组合之后,所使用的ANY运算符结果如下:
<any 表示小于最大值。
=any 与IN运算符等价。
>any 表示大于最小值。
对于ALL运算符而言,与单行比较运算符组合之后,所使用的ANY运算符结果如下:
<all 表示小于最小值。
>all 表示大于最大值。