一 select 基本语句
1.列别名的命名 全写是 as "别名" as可以省略 ,引号可以省略 .当列别民区分大小写,有空格,有特殊符号时必须加引号
2.对null的处理 再算数运算中null运算,结果都为null,所以有使用单行函数nvl(列名,n),如果列名为null,则返回n
3.连接操作符,|| 所要连接的字符串使用单引号' 字符串'||列名
4.消除重复行 distinct
二. where子句 与order by子句
1.比较字符 where job= 'clerk' 单引号
2.比较日期 方法一 where hiredate>to_date('1995-01-01','yyyy-mm-dd')
方法二 hiredate>'01-1月-85' 这里是采用数据库默认的字符串存储方式来进行日期的识别
3.特殊比较运算符
(1)between and
(2)xx in(a,b,c) 相当于 xx=a or xx=b
(3)模糊查询 like '_'一个字符 '%'任意字符
(4)逻辑运算 and or not
4.order by 子句 默认为升序 使用desc降序
三.单行函数
(一)字符函数
1.大小写转换函数
lower()转小写 upper()转大写 initcap()首字母大写
2 concat('a','b')字符拼接函数 且只能两个两个的操作
3 substr(1,3) 代表从第一个开始截取三个 字符截取 数据库中的字符串下标从1开始,区别于java中的字符串\数组\集合\js标签数组
4.length() 获取字符串长度
5.instr('abcdef','','','') 获取目标字符串下标 可以有四个参数 第二个参数为目标字符串 第三个为从第几个开始正数或倒数(默认为正数) 第四个为第几次出现(默认为第一次)
6.lpad('500',4,'*') 左填充 第三个参数不写则为使用空格填充
rpad()右填充
7.replace('replace','a','v') 替换函数 若第三个参数没有,则会变成去掉某个字符串
8.trim(' trim ')多用来去除首尾空格 等价于 trim(' 'from ' trim ') trim(leading '0' from '0yi')左去除 trim(trailing '' from '') 右去除 trim(both '' from '') 左右都去除
(二)数值函数
1.round(45.926,2) 45.93 round(45.926) 46 round(45.926,-1) 50 按照四舍五入取值
与之对应的trunc() 不遵循四舍五入,只舍位
2.ceil 和floor
ceil(1.001) 2 floor(1.9999) 1
3.mod(5.2,3) 2.3 取余
(三)日期函数
1.sysdate 系统当前时间 在做运算时,加的是小时 sysdate+10 加10小时
2.months_bwteen(时间1,时间2) 计算相差几个月
3.add_months(时间1,3) 再时间1的基础上加3个月
4.next_day(时间1,'星期二') 时间1之后的下一个星期二是什么日期
5.last_day(时间) 返回所在月份的最后一天
6.round(时间,'YEAR'/'MONTH'/'DAY')按年/月/日之后进行四舍五入获得年份/月份/日期
与之对应的trunc() 不遵信四舍五入规则,只舍不进
7.extract(year from sysdate) 获取当前时间的年份 还有 month from 时间 day from 时间
(四)转换函数
1.日期转字符串to_char(sysdate,'yyyy年mm月dd日')
数值型转字符串 to_Char(sal,'$999,999')
2.转数值型:to_number('0012') 结果为12
to_number('$1273,281','$9999,999')
3.to_Date()
(五)通用函数
1.nvl(comm,0) comm为null返回0
2.nvl2(comm,1,0) comm为null返回0,不为null返回第二个参数
3.nullif('abc','ab') 如果相等返回null,否则返回第一个参数
4.coalesce(表达式1,表达式2....表达式n)直到遇到一个不为null的进行返回
5.case表达式 (注意没有标点符号)
case comm
when 1400 then '高'
when 1000 then '中'
else '无'
end
case
when sal<1000 then '较低'
when sal<1800 then '还行'
else '富裕'
end
6.decode表达式(一般用来做等值判断) 注意最后不加逗号,之前的都要加逗号
decode(deptno,
10,'销售部',
20,'技术部',
'无' )