1、基本查询
select * from emp select ename,empno from emp
使用*和详细列出列名的查询结果是一样的,但是,在程序中采用列出列名的方式可以提高程序的可读性。
2、指定条件的查询
select * from emp where ename='SIMTH'
where用于指定查询条件,通过and或者or可以指定多个条件
3、连接列值
select ename||' is a '||job from emp
连接通过concat函数实现,在oracle中可以使用||代替该函数
4、使用条件逻辑
case when ... then ... else ... end
5、限制返回的行数
select * from emp where rownum<5 order by empno asc;
select * from (select t.*,rownum rn from emp t order by t.empno asc) t1 where t1.rn<5 and t1.rn>3;
6、随机取出n条记录
select * from (select * from emp order by dbms_random.value()) where rownum<5 ;
使用DBMS_RANDOM包中的内置函数VALUE,结合order by和rownum实现
7、查找空值
select * from emp where comm is null;
必须使用is null进行处理
8、替换空值
select coalesce(comm,deptno,1) from emp;
coalesce()函数包含一个或多个参数,该函数返回列表中的第一个非空值。
9、截取子串
select empno,substr(empno,length(empno)-2) from emp order by substr(empno,length(empno)-2) asc
substr(string,start,length)从指定位置截取指定长度的字符串
10、字符/字符串的替换
通过translate或者replace替换掉数字或字符部分,然后排序
translate(string,from,to) 字符级别的替换
如果to的长度小于from则在from中存在,在to中不存在的将被直接删掉;
replace(string,from ,to) 字符串级别的替换
select ename,translate(ename,'ABCDEFGHIJKLMNOPQRSTUVWXYZ','00000000000000000000000000') from emp;