| 日期处理函数 函数 | 结果 |  | 
MONTHS_DETWEEN 
   两个日期之间的月数 
  
ADD_MONTHS 
   将日历月添加到日期 
  
NEXT_DAY 
   指定日期之后的下一个日期 
  
LAST_DAY 
   当月最后一天 
  
ROUND 
   舍入日期 
  
TRUNC 
   截断日期 
  
MONTHS_BETWEEN(‘01-sep-95‘,‘11-jan-94‘) 
   19.6774194 
  
ADD_MONTHS(‘31-jan-96‘,1) 
   29-feb-96 
  
NEXT_DAY(‘01-SEP-95‘,FRIDAY) 
   08-SEP-95 
  
LAST_DAY(‘01-FEB-95‘) 
   28-FEB-95 
  
ROUND(SYSDATE,‘MONTH‘)(month月)假设sysdate=‘25-jul-03‘ 
   01-AUG-03(大于等于15则月份进一) 
  
ROUND(SYSDATE,‘YEAR‘)(year年) 
   01-JAN-04(年份进行进一(月)大于等于6则年份进一月份大于等) 
  
TRUNC(SYSDATE,‘MONTH‘) 
   01-JUL-03 
  
TRUNC(SYSDATE,‘YEAR‘) 
   01-JAN-03 
  
 
 转换函数和条件表达式
 
 
- 隐式数据类型转换
- 显示数据类型转换
- 数字类型、字符类型、时间类型的转换
 使用TO_CHAR 函数处理日期
 
必须放在单引号内
区分大小写
可以包含任何有效的日期格式元素
具有一个fm元素、用于删除填充的空格或隐藏前导零
与日期值之间用逗号分隔
 
元素 | 结果YYYY 
   用数字表示的完整年份 
  
YEAR 
   用英文表示的年份 
  
MM 
   月份的俩位数值 
  
MONTH 
   月份的完整名称 
  
MON 
   月份的三位字母缩写 
  
DY 
   一周中某日的三个字母缩写 
  
DAY 
   一周中某日的完整名称 
  
DD 
   用数字表示的月份中某日 
  
9 
   代表一个数字 
  
0 
   强制显示0 
  
$ 
   放置一个浮动的美元符号 
  
L 
   使用浮动的本地货币符号 
  
. 
   显示小数点 
  
, 
   显示作为千位指示的逗号 |  
 嵌套函数
 
 
- 单行函数可以嵌套到任意层
- 嵌套函数的计算顺序是从最内层到最外层
- 嵌套函数从内到外
 
常规函数、且合适使用空值的场合
将空值转换为实际值、可以使用的数据类型为日期、字符和数字、数据类型必须匹配:
NVL(expr1,exrp2)
NVL2(EXPR1,EXRP2,EXRP3)
NULLIF(expr1,expr2)
 
 
 组函数报告聚集数据
 
 
AVG | 计算平均值count 
   一个字段有多少行 
  
max 
   最大值 
  
min 
   最小值 
  
sum 
   一个字段的和 
  
count 
   显示行数 
  
distinct 
   去除重复行 |  
 创建数据组
 
 
group by 分组
select deptno,avg(sal) from emp group by deptno;
分组求平均数
 
- 多列分组 select deptno,avg(sal),job from emp group by deptno,job; 
- HAVING子句限定组结果 select deptno,max(sal) from emp group by hacing max(sal)>=3000; 
- 使用联接显示多个表的数据 使用outer 联接查询通常不满足联接条件的数据
生成两个或多个表中所有行的笛卡尔积 
- 联接类型 自然链接
natural join 子句
using 子句
outer链接(外链接)
left outer join 
right outer join
full outer join
交叉链接 
- 创建自然链接
natural join 子句以两个表中具有相同名称的所有列为基础
它从两个表中选择在所有匹列中具有相同值得哪些行
如果名称相同的列具有不同的数据类型,则返回一个错误
 
- select deptno from dept natural join emp 两个查询内容一样则显示公有值 
- 使用using语句创建链接 如果多个列具有相同的名称,但数据类型不匹配,请使用using子句指定等值联接的列
当有多个列想匹配时,使用using 子句可仅与一列相匹配
natural loin 和using 语句是互相排斥的。 
- select ename,deptno feom emp join dept using(deptno);
- 在using子句中使用表别名 不要对using 子句中使用的列加以限定
如果在sql语句的另一个位置使用了同一列,则不要对其设置别名 
- 使用ON子句创建链接 自然联接的基本联接条件是对具有相同名称的所有列进行等值链接
使用ON子句可指定任意条件或指定要联接的列
联动条件独立于其他搜索条件
使用ON子句可以代码易于理解 inner联接与outer联接 在sql:1999中,如果两个表的联接只返回相匹配的行,则称联接inner
两个表直接的联接不仅返回inner联接的结果,还返回左(或右)表中不匹配的行,则称为该联接为左(或右)outer链接
两个表之间的联接不仅返回inner链接的结果,还返回左和右联接的结果,则称该链接为完全outer联接 
- 子查询 先执行子查询(内部查询),再执行主查询(外部查询)主查询会使用子查询的结果 
- 当行子查询 仅返回一行 
运算符 | 含义= 
   等于 
  
> 
   大于 
  
>= 
   大于等于 
  
< 
   小于 
  
<= 
   小于等于 
  
<> 
   不等于 | 数据操纵语句
                        (编辑:源码网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!