1 SQL语句处理过程以及简单函数整理

tech2023-01-21  111

文章目录

数据库标准语言SQL语句处理过程日期类型日期和字符串相互转换组函数having子句where 和 having 区别


数据库标准语言

数据定义语言 DDL 对表的create、ALTER、DROP 数据查询语言 DQL SELECT语句 数据操作语言 DML 对列的insert、UPDATE、DELETE

SQL语句处理过程

日期类型

Oracle用七个字节来存储日期和时间:世纪、年、月、日、时、分、秒。Date不存在定宽度,就是七个字节。 缺省(默认)日期格式为DD-MON-RR,格式敏感

> SELECT TO_CHAR(SYSDATE,'DDD') FROM DUAL; //年中的第几天 > SELECT TO_CHAR(SYSDATE,'DD') FROM DUAL; //月中的第几天 > SELECT TO_CHAR(SYSDATE,'D') FROM DUAL; //星期中的第几天
日期和字符串相互转换

TO_DATE(char,date)函数:将字符串转换成一个日期值。对应Java中parse。 TO_CHAR(DATE,char)函数: 第一个参数为要处理的日期,第二个参数为格式;可获取一个日期的任意一部分信息;对应Java中format。

INSERT INTO tabname(addDate) VALUES(TO_DATE('2020-09-01 15:49:30','yyyy-mm-dd hh24:mi:ss')); SELECT TO_CHAR(addDate,'yyyy-mm-dd hh24:mi:ss') FROM test;
组函数

count() 不管null,统计"记录"数 count(列名) 返回的是列中非null值得数量 avg(distinct |all |n): 平均值,参数类型只能为number sum(distinct |all |n): 求和,参数类型只能为number count(distinct |all|expr |): 计数,参数类型只能为number、字符、date max(distinct |all |expr): 最大值,参数类型只能为number、字符、date min(distinct |all |expr): 最小值,参数类型只能为number、字符、date

distinct 去重复时,会保留一个空,但是count统计时不算

having子句

语法顺序:select   from   where   group by   having   order by 执行顺序: from   where   group by   having   select   order by 执行过程: 行被分组,将having子句的条件应用在每个分组上,只有符合having条件的组被保留,再应用select后面的组函数 对每组的数据进行处理。

where 和 having 区别
where: 过滤的是行(记录),后面可跟任意列名,单行函数,不能跟组函数(无法对应到具体记录),先执行,不允许用列别名having: 过滤的是分组(组标识,每组数据的聚合结果),后面只能包含group by后面的表达式和组函数(能表达组信息的),后执行,不允许使用列别名。
最新回复(0)