oracle(3)select语句中常用的关键字说明
1.select 查询表中的数据
select * from stu; ---查询stu表所有的数据,*代表所有
2.dual ,伪表,要查询的数据不存在任何表中时使用
select sysdate from dual; ----查询系统当前的时间
3.concat 连接两个字符串为一个字符串
select concat('孤舟蓑笠翁','独钓寒江雪')str from dual; ---str为函数字段名(自取)
等价操作:|| (连接符)
select '莫等闲,'||'白了少年头,'||'空悲切。' str from dual;
4.length 返回字符串的长度,单位是字符
select length(name) from stu;
5.upper(大写)、lower(小写)、inicap(首字母大写)
select upper(upper),lower(LOWER),inicap(inicap) from dual;---UPPER/lower/Inicap
6.trim---去除两边重复的字符串:仅能截取一个字符
ltrim---去除左边重复的字符串:可以截取多个字符
rtrim---去除右边重复的字符串:可以截取多个字符
select trim('n'from 'Come and go with every season') from dual;
select ltrim('Come and go with every season','Con') from dual;---me and go with every season
select rtrim('Come and go with every season','eason')from dual;---Come and go with every
7.substr 截取字符串 substr(char,start,length)
select substr(name,1,2)from stu;
8.lpad / rpad 左、右补位
select lpad(name,12,'*'),rpad(name,12,'*')from stu;将长度不足十二个字符的名字用(*)补位
9.instr(char1,char2[,n,m]) ---查找字符串char2在char1的位置,
n:从char1的第几个字符开始查找,m:char2字符第几次出现,不写都默认为1
instr('instr','s') from dual; ---3
10.round(n[,m]):将数字n四舍五入,m为保留数字n小数点后第m位,不写默认为0
select round(55.555) from dual;---56
select round(55.555,2) from dual;---55.56
select round(55.555,-1)from dual;---60
11.trunc(n[,m]):直接截取数据,n、m同round的n、m
select trunc(55.555,2) from dual;---55.55
12.ceil,floor :向上(下)取整,只有一个参数
select ceil(55.55),floor(55.55) from dual;---56,55
13.mod(n,m) :返回n除以m后的余数
select mod(14,5) from dual; ---4
14.date :日期类型,7个字节
timestamp:日期类型,11个字节,可以存储小数秒
日期之间可以计算,返回的是天数
YY 2位数的年 YYYY 4位数的年 MM 2位数的月 MON 简拼的月
MONTH 全拼的月 DD 2位数的天DY 周几的缩写 DAY 周几的全拼
HH24 24小时制的小时 HH12 12小时制的小时
MI 显示分 SS 显示秒 AM 上下午
15.to_date:可以将给定的字符串转换为date类型
select to_date('2017-12-12 20:05:22','yyyy-mm-dd hh24:mi:ss')from dual;
16.to_char:可以将date按照固定的格式转化为字符串
select to_char(sysdate,'yyyy-mm-dd am hh24:mi:ss ') from dual;
17.last_day(date):返回给定日期当月的月底日期
18.add_months(data,i) : 返回给定日期加上i个月后的日期
19.months_between(date1,date2) :计数date1于date2之间相差多少月
20.extract() :提取给定日期的时间分量
select extract(months from sysdate) from dual;
select extract(second from systimestamp) from dual;
21.least/greatest 返回最小(大)值,可比较的类型有:数字,日期