oracle学习笔记1

Posted suxinpaul

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle学习笔记1相关的知识,希望对你有一定的参考价值。

Oracle学习笔记:

1、操作符优先级:*、/、+、- ;乘除的优先级高于加减,同一优先级运算符从左向右执行,括号内的运算先执行。

2、连接符:|| ;把列与列,列与字符连接在一起,可以用来‘合成’列。

select p.person_code || '/' || p.person_name from app_person p
3、比较运算:=[ 等于]、> [ 大于 ]、>= [ 大于、等于 ]、< [ 小于 ]、<= [ 小于、等于 ]、<> [ 不等于 ] ;BETWEEN...AND...[在两个值之间(包含边界)]、IN(set)[等于值列表中的一个]、LIKE[模糊查询]、IS NULL[空值] 。
4、模糊查询like ,%代表一个或多个字符,_代表一个字符。

select * from app_person p where p.person_name like '_民%'


5、分组函数:AVG,COUNT,MAX,MIN,STDDEV,SUM

select avg(a.account_cost),
       STDDEV(a.account_cost),
       COUNT(*),
       MAX(a.account_cost),
       MIN(a.account_cost),
       SUM(a.account_cost)
  from eam_fa_asset a
 group by a.duty_dept_id

组函数忽略空值,NVL函数使分组函数无法忽略空值。

select avg(sa.apply_scrap_amt)
  from EAM_Fa_Scrap_Apply sa
 where sa.scrap_apply_id in (4541, 4542)

不能在WHERE子句中使用组函数,可以在HAVING子句中使用组函数。

select a.duty_dept_id, count(*)
  from eam_fa_asset a
having count(*) > 10
 group by a.duty_dept_id

6、多行子查询:in,any,all

IN:等于列表中的任何一个
ANY:和子查询返回的任意一个值比较,等同与最值比较
ALL:和子查询返回的所有值比较,等同与最值比较

select sa.ACCOUNT_COST
  from EAM_Fa_Scrap_Apply sa
 where sa.ACCOUNT_COST < any (select a.account_cost
          from eam_fa_scrap_apply a
         where a.duty_dept_id = 1)
   and sa.duty_dept_id <> 1 --4665
select sa.ACCOUNT_COST
  from EAM_Fa_Scrap_Apply sa
 where sa.ACCOUNT_COST < (select min(a.account_cost)
                            from eam_fa_scrap_apply a
                           where a.duty_dept_id = 1)
   and sa.duty_dept_id <> 1 --4665






以上是关于oracle学习笔记1的主要内容,如果未能解决你的问题,请参考以下文章

C++学习笔记

学习笔记---数学运算

Oracle曾经的Oracle学习笔记(1-3) 数据库常见用语,常见命令,创建测试表

有啥软件可以笔记自动加减乘除

oracle入门学习笔记

Oracle学习笔记——查询