Oracle数据库的数据类型、运算符及字段函数

本文介绍了Oracle数据库中的数据类型,包括如何处理NULL值;详细讲解了运算符的使用,特别是NULL值在运算中的特殊性;还涵盖了字段函数的运用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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 ‘执行语句’
 else‘条件都不满足时执行’
 end 自定义字段名

对范围进行匹配,字段判断函数,在select和from中间使用,当第一个语句满足将不执行其他的语句

18

case 字段 when 值 then 执行语句
else 值都不满足执行
end 自定义字段

等值匹配,当第一个语句满足将不执行其他的语句

19

字符函数

distinct

去重查询

20

length(字段)

查看字段长度

21

trim()

去空处理

22

instr(总字符,字符,开始位置,出现次数,);
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 '工资中等'
                  else '工资较低'  end 工资等级  from emp

57

select length(ename)-length(replace(ename,'S',''))s1,ename from emp  --字符函数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值