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 --字符函数 |