1.
distinct关键字去掉重复行。
2.空值的处理
3.列的别名
直接在列名后面跟随别名,或者使用as关键字。
select auth_id author_id from authors;
等价于
select auth_id as author_id from authors;
oracle执行结果的列名默认都是大写的,如果希望写的是什么结果显示就是什么的话,可以使用""来引起来。
例如:
select last_name as "Name",
salary*12 "Annual Salary"
from employees;
4.字符串的处理
字符串的连接:使用"||"
例如:
select first_name||' '||last_name "Name" form employees;
5.iSQL-Plus
6.between and
select salary ,lname from employees where salary between 3000 and 5000
注意between是包含端点的,between 3000 and 5000 等价于 >=3000 and <=5000
7.通配符:
oracle中通配符是%和_,%号匹配一个或多个字母,_匹配一个
如果要匹配的表达式中本身有%和_,可以使用escape语句
例如要检索JOB_ID中包含字符串SA_的记录
select employee_id, last_name,job_id
from employees
where job_id like '%SA\_%' escape '\';
8.not and or
优先级:not最高,其次是and,最低是or
9.排序order by
默认是升序,如果降序需要使用desc关键字,可以以别名排序
select salary *12 annsal from employees order by annsal;
10.单行函数
1)字符函数
LOWER:转换为小写
UPPER:转换为大写
INITCAP:首字母变为大写
concat('Hello', 'World') HelloWord
substr('HelloWorld', 1, 5) Hello
substr中第二位决定从左还是从右取
instr('HelloWorld', 'W') 6
LPAD(salary ,10 '*') *****24000
RPAD(salary ,10 '*') 24000*****
TRIM('H' FROM 'HelloWorld') elloWorld
2)数字函数
round(45.926,2) 45.93 四舍五入
trunc(45.926,2) 45.92 舍不入,直接截取
mod(1600,300) 100 取模
round(45.926, -2) 0
round(55,926,-2) 100
3)日期型函数
sysdate
MONTH_BETWEEN('01-SEP-95','11-JAN-94') = 19.6674194
ADD_MONTHS('11-JAN-94', 6) = '11-JUL-94'
NEXT_DAY('01-SEP-95','FRIDAY') = '08-SEP-95'
LAST_DAY('01-FEB-95') = '28-FEB-95'
Assume sysdate='25-JUL-95';
round(sysdate, 'MONTH') = 01-AUG-95
round(sysdate.'YEAR') =01-JAN-96
trunc(sysdate, 'MONTH') = 01-JUL-95
trunc(sysdate.'YEAR') =01-JAN-95
4)类型转换
oracle中,下面是可以自动进行转换的
从 到
varchar2 or char NUMBER
varchar2 or char DATE
number varchar2
date varchar2
显式转换“
TO_CHAR
日期型:
TO_CHAR(date, 'format_model')
posted on 2006-09-26 22:12
knowhow 阅读(348)
评论(0) 编辑 收藏 所属分类:
数据库