第四章 数据类型和运算符
4.1 Oracle数据类型
--数值类型:整数类型和小数类型;
日期/时间类型:DATE与TIMESTAMP;
字符串类型:CHAR, VARCHAR2,NVARCHAR2,NCHAR和LONG.
4.1.1 数值类型
NUMBER(m,n) m有效数字位数(1-38),n小数点后位数(-84-127)
字段名 NUMBER(m,n);
4.1.2 日期与时间类型
类型名称 | 说明 |
DATE | 储存日期与时间,范围:公元前4712年1月1日到公元9999年12月31日 |
TIMESTAMP | 储存日期与时间,比上述DATE更精确,DATE精确到秒,TIMESTAMP类型精确到小数秒,还能显示上午下午 |
字段名 DATE;
字段名 TIMESTAMP;
PS:
删除表数据:DELETE FORM 数据表;
查看数据库默认时间格式:SELECT sysdates FROM dual;
修改时间默认格式:
a ALTER session set nls_date_format='yyyy-mm-dd';——直接修改
INSERT INTO 数据表 VALUES('数据');
b INSERT INTO 数据表 VALUES(TO_DATE ('数据','格式'))——插入数据时修改
INSERT INTO 数据表 VALUES(TO_TIMESTAMP ('数据','格式'))——插入数据时修改
向表中插入当前系统时间:INSERT INTO 数据表 VALUES (SYSDATE);
4.1.3 字符串类型
类型名称 | 说明 | 取值范围(字节) |
CHAR | 描述定长的字符型数据 | 0-2000 |
NCHAR | 储存Unicode字符集的定长字符型数据 | 0-1000 |
VARCHAR2 | 描述可变长字符型数据 | 0-4000 |
NVARCHAR2 | 储存Unicode字符集的可变长字符型数据 | 0-1000 |
LONG | 储存变长字符串 | 0-2GB |
ps:变长意思为储存需求取决于列值的实际长度,而不是取决于类型最大可能尺度。
查询字段的存储长度:SELECT LENGTH(字段名)FROM 数据表;
CHAR 固定长度,处理速度快,但是浪费储存空间
VARCHAR2可变长,节省空间,但若经常修改数据长度会发生“行迁移”,造成多余I/O
4.2 常见运算符介绍
--算数,比较,逻辑,位操作运算符
4.2.1 算数运算符
运算符 | 作用 |
+ | 加法运算 |
- | 减法运算 |
* | 乘法运算 |
/ | 除法运算,返回商 |
eg:CREATE TABLE tmp7 (num NUMBER);
INSTER INTO tmp7 VALUE (64);
SELECT num ,num+10, num-3+5,num+36.5,num*2,num/2 FROM tmp7;
4.2.2 比较运算符
--常在SELECT子句中使用,用来查询满足指定条件的记录。
运算符 | 作用 |
= | 等于(判断数字,字符串,表达式) |
<=> | 安全的等于(同上) |
<>(!=) | 不等于(同上) |
<= | 小于等于(左边的操作数与右边的操作数) |
>= | 大于等于(同上) |
> | 大于(同上) |
IS NULL | 判断一个值是否为NULL |
IS NOT NULL | 判断一个值是否不为NULL |
BETWEEN AND | 判断一个值是否落在两值之间(常与WHERE连用) |
IN | 判断一个值是否是IN列表中的任意一值(同上) |
NOT IN | 判断一个值不是IN列表中的任意一值(同上) |
LIKE | 通配符匹配(同上) |
4.2.3 逻辑运算符
运算符 | 作用 |
NOT | 非(单目运算符,右侧包含表达式,常与IN,LIKE,BETWEEN```AND,NULL等关键字连用) |
AND | 与(全运算符) |
OR | 或 |
4.2.4 运算符优先级
--级别高的运算符先进行运算;同级别的运算符按表达式的顺序从左到右运算;可使用()改变优先级的顺序。
优先级 | 运算符 |
最低 | =(赋值运算),:= |
OR | |
AND | |
NOT | |
=(比较运算),<=>,>=,>,<=,<,<>,!=,IS,LIKE,REGEXP,IN | |
& | |
<<,>> | |
-,+ | |
*,/ | |
-(负号) | |
最高 | ! |