1.数据类型
序号 |
数据类型 |
注释 |
1 |
char(长度) |
存储固定长度的字符串 |
2 |
varchar2(长度) |
存储可变长度的字符串 |
3 |
number(p,s) |
存储浮点和整数,p数字的总长度,s小数位数,默认长度38,小数位数是2位数 |
4 |
date |
存储日期和时间,4位年月日时分秒,木有长度 |
5 |
timestamp |
存储日期的年月日时分秒,以及秒后 6 位,同时包含时区 |
6 |
clob |
存储大的文本、XML文档(标签类文档),最大4G |
7 |
blob |
存储二进制对象,最大4G |
8 |
integer |
只能存储整数 |
2.运算符
null不参与比较运算,参与数学运算时,与任何列结合都为null,既不等于0也不等于空格,只能用is null 或者 is not null 进行空或者非空的判断。
序号 |
运算类型 |
运算 |
注解 |
1 |
逻辑运算符 |
and |
并且 |
2 |
or |
或者 | |
3 |
not |
不是 | |
4 |
比较运算符 |
=、>、>=、<、<=、<> |
|
5 |
字段 between 值 and 值 |
取在两个值之间 | |
6 |
in(值1、值2......) |
等于任意一个值 | |
7 |
like |
模糊查询 | |
8 |
is null |
空值 | |
9 |
/ |
除 号的结果是浮点数 | |
10 |
其他运算符 |
|| |
列拼,把两个字段合并成一个字段 |
3.字段函数
序号 |
函数类型 |
函数 |
说明 |
1 |
聚合函数 |
count() |
统计记录行数 |
2 |
avg() |
平均值 | |
3 |
sum() |
求某列值的和 | |
4 |
max() |
返回某列最大值 | |
5 |
min() |
返回某列最小值 | |
6 |
rollup(字段) |
合计 | |
7 |
cube(字段) | ||
8 |
sets(字段) | ||
9 |
转换函数 |
to_date(字段,'格式') |
转换成标准日期格式 |
10 |
to_char(字段,'格式') |
转换成字符类型 | |
11 |
to_number(字段,'格式') |
转换成数字类型 | |
12 |
sysdate |
插入系统当前日期时使用 | |
13 |
其他单行函数 |
nvl(字段,值) |
当字段不为空时,返回字段本身,当字段为空时,对这个字段赋予值 |
14 |
nvl2(字段,值1,值2) |
当字段不为空时,对这个字段赋予值1,当字段为空时,对这个字段赋予值2 | |
15 |
decode(字段,条件1,值1,条件2,值2......X) |
当字段等于条件1时,返回值1,等于条件2时,返回值2 以此类推 ,当字段中数据没有等于条件时,则返回X | |
16 |
nullif(值1,值2) |
值1与值2相等时返回空,不相等时返回值1 | |
17 |
判断函数 |
case when 条件 then ‘执行语句’ |
对范围进行匹配,字段判断函数,在select和from中间使用,当第一个语句满足将不执行其他的语句 |
18 |
case 字段 when 值 then 执行语句 |
等值匹配,当第一个语句满足将不执行其他的语句 | |
19 |
字符函数 |
distinct |
去重查询 |
20 |
length(字段) |
查看字段长度 | |
21 |
trim() |
去空处理 | |
22 |
instr(总字符,字符,开始位置,出现次数,); |
从总字符中查找字符,返回出现的位置 | |
23 |
substr(值,开始的位置,截取的长度) |
显示截取到的值 | |
24 |
ascll(值) |
返回ascll码 | |
25 |
concat(字符串1,字符串2) |
连接字符串1和字符串2 | |
26 |
lower(值) |
转换成小写 | |
27 |
upper(值) |
转换成大写 | |
28 |
replace(语句,旧内容,新内容) |
从语句中查找进行替换,查看emp中每个员工名中S出现的次数 | |
29 |
reverse() |
反转函数 | |
30 |
数字函数 |
round(值,位数) |
四舍五入 |
31 |
trunc(值,位数) |
直接截取,不四舍五入 | |
32 |
abs(值) |
绝对值 | |
33 |
ceil(值) |
存在小数,整数+1 | |
34 |
floor(值) |
存在小数,整数-1 | |
35 |
mod(x,y) |
返回 x 除以 y 的余数,求余运算只能借助函数 | |
36 |
日期函数 |
last_dar(日期) |
指定月的最后一天 |
37 |
round(日期,fmt) |
返回一个以 fmt 为格式的四舍五入日期值。默认 fmt 为 DDD,即月中的某一天。 | |
38 |
trunc(日期,fmt) |
按格式截取日期 | |
39 |
extract (fmt from 日期) |
取日期中的特定部分 | |
40 |
fmt="YEAR" |
则舍入到某年的1月1日,即前半年舍去,后半年作为下一年 | |
41 |
fmt="MONTH" |
则舍入到某月的1日,即前月舍去,后半月作为下一月 | |
42 |
fmt="DDD" |
即月中的某一天,最靠近的天,前半天舍去,后半天作为第 二天 | |
43 |
fmt="day" |
则舍入到最近的周的周日,即上半周舍去,下半周作为下一周周日 | |
44 |
months_between |
两个日期之间的月数 | |
45 |
add_months(日期,+n(或-n)) |
日期+或-则计算的是日,+n或-n计算的是月 | |
46 |
next_day |
下个星期几是几号 | |
47 |
其他 |
nulls first |
值为空的数据排在前面 |
48 |
nulls last |
值为空的数据排在后面 | |
聚合函数注解 | |||
49 |
同时对多行数据进行操作,返回一行结果 | ||
50 |
数据统计时默认不统计空的信息,默认空是最大的 | ||
51 |
聚合函数不能直接用于where之后的,必须作为一个子查询来使用 | ||
52 |
聚合函数不能直接在where后面使用需要起别名 | ||
53 |
聚合函数在视图中使用也需要起别名 | ||
单行函数注解 | |||
54 |
日期之间相加减,加减的是天数,故而除以365天为年。如:查询 where (sysdate-hiredate)/365>=30;显示日期满30年 | ||
55 |
HH24取的时24,HH取的时12小时制的 | ||
56 |
select ename,sal, case when sal>3000 then '工资高' when sal>2000 then '工资中等' | ||
57 |
select length(ename)-length(replace(ename,'S',''))s1,ename from emp --字符函数 |