查询语句

查询语句express

一.子查询函数

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

二.exists  对象

      存在即保留排序

三.函数 字符串

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

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

 3-1.日期函数io

      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.外链接: 看+和,主表在,的左边就叫左外链接 主表在,的右边叫右链接

相关文章
相关标签/搜索