show user

desc 'table'

SELECT DISTINCT

SELECT * FROM emp WHERE comm is NOT NULL;

SELECT * FROM emp WHERE NOT (sal > 1500 AND comm is NOT NULL);

NOT IN

LIKE %通配符

<> 或者 !=

ASC 升序, DESC 降序

GROUP BY

数据库系统中,每个数据库之间区别最大的就是在函数的支持上。

UPPER | LOWER

INITCAP

CONCAT 不如 || 好用

SUBSTR()

LENGTH()

substr('text',1,3)

oracle中字符串截取从0和从1开始是一样的

截取倒数的方法: 

   substr('text',length('text')-2)

or  substr('text',-3,3)

<b>数值函数:</b>

round()

trunc()

mod()

 

<b>日期函数:</b>

当前日期:

select sysdate from dual;

 

months_between() 求出给定日期范围的月数

add_months()

next_day()

last_day()

to_char()

to_number()

to_date()  to_date('2011-7-11','yyyy-mm-dd')

 

通用函数 :

nvl:

nvl(comm,0) 将null值转换为具体内容

decode(): 类似 if...elseif...else

例:

  select empno,ename,hiredate DECODE(job,'CLERK','业务员','SALESMAN') 职位 FROM emp;

 

 多表查询起别名

表的自关联

左连接右连接(+在等号左边表示右连接)

 cross join

使用using子句直接关联操作列

select * from emp join dept using(deptno) where depteno = 30;

组函数及分组统计:

count()

max()

min()

avg()

sum()

where子句中不能出现分组函数的条件,要使用having子句,having子句不能使用别名

select job,sum(sal) totalsal

FROM emp

WHERE job<>'SALESMAN'

GORUP BY job

HAVING SUM(sal)>5000

ORDER BY totalsal;

 

rownum, union, intersect, minus

.

 

 

 

 

source:

http://wenku.baidu.com/link?url=rW-bT6ghz-Uw-tF8nL4fMGlKIbqQSXcDHjCgKkdvipi2pEiuMsYIG6pphVDrEyJGKOwB-QKiDm5oNhDbuF8HskCHMA3ku32-w_zhICfrZu3

 

posted on 2016-12-20 11:26  ppqchina  阅读(99)  评论(0编辑  收藏  举报