SQL一些特色

oracle 语句分为 select语句,DML(数据操作语言) insert  update delete merge,DDL(数据定义语言) create alter drop truncate,DCL(数据控制语言)grant revoke  事物控制语句 commint rollback  savepoint

 

1. 去除重复行  distinct    例如 : select distinct sal from emp   跟多个字段 就是多个字段的组合 去重复

2.between and    note: 必须前小后大  才能正常查询  否则查不出数据

3.to_date('2010-08-27 20:46:59','yyyy-mm-dd hh24:mi:ss')  注意格式 mi

4.like   '_abc%'  包含abc字符串且abc字符串前有一位  后有若干位   

5.构造转义字符  select * from student where name like  '%\_%' espace '\'; 将\作为转译字符  意思为查询名字含有_的学生名字。

6. select  sysdate from dual   ;  select 2+3 from dual;

7.直接计算 select sal*12+4 from emp;   

8. || 的作用  合列操作    select  ename||' is a ' || job  from emp;

9. "" 作用  select ename "名  字 Name" from emp;空格 大小写 得到尊重

10. order by  默认升序asc  desc降序      多个字段:order by  sal  , ename  desc  先按工资升序 如果有重复再按ename降序

11.desc emp  ; 查看emp表的结构

12.逻辑运算  not , and  ,or 

13 运算符优先级

                1      *  /

                2      + - 

                3      ||

                4     =  >  >=  <  <=  <>

                5    is [not]  null ,     like  , [not] in 

                6    [not] between..and  

                7    not 

                8   and

                9    or

    可以使用小括号改变运算顺序

 

 

================通用函数============================

1.    NVL(EXP1,EXP2) 如果exp1为null  返回exp2的值  使用范围 字符 数字 日期

2.    NVL2(exp1,exp2,exp3) 如果exp1值不为null 返回 exp2的值 否则返回exp3的值

3.   nullif(exp1,exp2) 比较exp1与exp2是不是相等 相等返回 null 不等返回 exp1

4.    coalesce(exp1,exp2,exp3.....) 依次考察参数 遇到非null 返回该值                     

5     select empno,ename,sal,

                            case   deptno   when   10   then '财务部'

                                                     when   20   then '研发部'

                                                     when   30   then '销售部'

                                                     else  '未知部门'

                             end   as  '部门'

          from   emp;

相当于if else 的用法

6

  将上面的方法简化 为  

           decode(deptno,  10    ,   '财务部'  ,

                                      20     ,  '研发部'  ,

                                      30     ,  '销售部'  ,

                                                '未知部门' )

  7.常用分组函数     函数名称        功能说明                              适用类型

                           avg()             计算平均值                           任何类型

                           count()          返回查询所得到的记录条数      任何类型

                           max()            计算最大值                           任何类型

                           min()             计算最小值                           任何类型

                           sum()            求和                                    数值类型

对多行记录返回一行结果  

count(expt) 返回exp值 非空的记录条数

count(distinct(exp))  返回exp值 不重复的 非空的 记录条数 

avg(exp) 不计算空值的字段

按编号分成小组

select  enptno  avg(sal) emp group by  deptno;

 

 

  

 

=======================================

自己查出来插入自己表

insert into t (oldid,newid,upload_inmodel,is_upload) (select oldid,newid,upload_inmodel,is_upload  from t )    id增长的字段 可以

 

 

 


阅读更多
个人分类: SQL
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭