查询语句

查询语句

一.子查询

where型子查询:把内层查询的结果作为外层查询的比较条件

二.exists 

      存在即保留

三.函数

      单行函数:一条数据返回一个结果

      多行函数|组函数|聚合函数:多条数据返回一个结果

 3-1.日期函数

      sysdate | current_date:以date类型返回当前的日期

      sysdate +|- ** :几天后或几天前的时刻

      add_months(d,x):返回加上x月后的日期d的值

      LAST_DAY(d):返回的所在月份的最后一天

      Months_between(date1,date2):返回date1和date2之间月的数目

      Next_day(sysdate,’星期一’):下一个星期一的时间

3-2.日期对象与字符串之间的转换

     to_date(‘字符串’,识别日期字符串模板):

     设定一个特定的时间(用一个特定的时间字符串转换为日期):

例:select to_date('2019-07-30 10:11:13','yyyy-mm-dd hh24:mi:ss') from dual;

例:select to_date('2019年07月30日 10:11:13','yyyy"年"mm"月"dd"日" hh24:mi:ss') from dual;

     To_char():将日期转为特殊格式的字符串:

例:select to_char(sysdate,'yyyy"年"mm"月"dd"日" hh24:mi:ss') from dual;

 3-3.其他函数

      nvl(string1,string2)->如果string1位null,则结果为string2的值

      decode(condition,case1,express1,case2,express2,…casen,expressn,expression)

      decode(判断字段,检验字段值1,结果1,检验字段值2,结果2..,默认值)

四.组函数

      --对确定的结果集使用函数得结果

      --注意:1.select后 组函数不能和非组函数或分组字段一起使用

                2.where 不能使用组函数

                3.组函数仅在选择列表和Having字句中有效

      --说明:1.组信息与单条记录不能同时查询

                2.组函数不能用在where中,能使用的地方select having

                3.null不参与运算

      常用函数

Count()  sum()  max()  min()  avg()

五.分组

--select 数据 from 数据源 where 行过滤条件 group by 分组字段 having 组过滤信息 order by 排序字段

--执行顺序:from—where—group by—having—select—order by

 

group by:分组

1)  select出现分组函数,就不能使用非分组信息,可以使用group by字段

2)  group by字段 可以不出现select中,反之select除组函数外的,其他字段必须出现在group by中

过滤组 having:

where:过滤行记录,不能使用组函数   having:过滤组,可以使用组函数

--先过滤再分组:

select max(sal) from emp where deptno in(10,30) group by deptno ;

--先分组再过滤:

select max(sal),deptno  from emp group by deptno having deptno in(10,30);

六.rowid 和 rownum  都是伪列

       rowid :

--rowid相当于表中每一条记录的地址,数据插入到列表中的时候就已经存在,后续不会改变

--去重,没有主键,没有唯一的字段,可以存在多条数据重复,想达到去重,可以使用rowid

rownum : 会根据返回记录生成一个序列化的数字 必须排序,不能直接取大于1的数

七.92语法

       1.笛卡尔积 : 交叉相乘

  2.等值连接:可以是两个表中相同字段做连接,可以是不同字段做连接,但类型要保持一致

例:select * from emp,dept where emp.deptno=dept.deptno;

  3.非等值连接:

例:select * from emp,salgrade where sal between losal and hisal;

  4.自连接:特殊的等值连接(来自于同一张表)

  5.外连接: 看+和,主表在,的左边就叫左外连接 主表在,的右边叫右连接

posted @ 2019-07-22 21:06  八佰伴  阅读(210)  评论(0编辑  收藏  举报