select ename from emp where like '%s_%' escape 's'; //查询_,%特殊字符时,用escape
查询NULL值时,要用IS NULL eg:select ename,comm form emp where comm is null;
优先级:算术运算,连接运算,关系运算,(IS [NOT] NULL,LIKE,[NOT] IN),BETWEEN,NOT ,AND ,OR
1.字符操作函数
1)大小写操作函数
Lower,upper,initcap(小写 大写 首字母大写)
2)字符串操作函数
Concat(将两个字符连接到一起),length,substr(substr(字符串,m,n),m是从第几个字符开始,如果为负的意思是从后边的第几个开始。N是数多少个,如果不说就是一直到字符串的结尾),instr(求子串在父串中的位置,0表示没有在父串中找到该子串),trim[leading(截掉连续的前置字符),trailing(截掉连续的后置的),both(截掉连续的前置和后置的字符)],replace,lpad,rpad(字段,位数,'填充字符')[左铺垫和右铺垫,20是总共铺垫到多少位,-是要铺垫的字符串],
3)操作数字的函数
ROUND(45.923,2)==45.92
TRUNC(45.923,2)==45
以小数点位核心,2是小数点后两位,0可以不写,表示取整,-1表示小数点前一位
ROUND是四舍五入,TRUNC是截断,全部舍弃。
ceil(45.001)==46
取整,上进位,和trunc全部去掉正好相反
abs(-23.00) 取绝对值
mod(sal,2000)取余数
4)操作日期的函数
函数SYSDATE求当前数据库的时间
查看当前的日期显示格式
select * from nls_session_parameters where parameter='NLS_DATE_FORMAT';
months_between(sysdate,hiredate)两个日期相减的结果单位为天,往往是带小数点。通过函数可以取整
add_months(hiredate,6) 取两个日期的月间隔
last_day(hiredate) 该日期的月底是哪一天
select hiredate,round(hiredate,'yyyy') ,round(hiredate,'year') from emp;
select hiredate,trunc(hiredate,'mm') ,trunc(hiredate,'month') from emp;
数字的进位和截取是以小数点为中心,我们取小数点前或后的值,而日期的进位和截取是以年,月,日,
时,分,秒为中心。
Any 和all操作
小于all小于最小,大于all大于最大
小于any小于最大,大于any大于最小