Oracle数据库的数据类型
字符型:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
SQL> create table starling_city 2 ( 3 name varchar2(30), 4 loc varchar(30), 5 desc_str char(30) 6 ); Table created. SQL> set linesize 80 SQL> desc starling_city Name Null? Type ----------------------------------------- -------- ---------------------------- NAME VARCHAR2(30) LOC VARCHAR2(30) DESC_STR CHAR(30) SQL> SQL> insert into starling_city values ('oliver','Queen Corp','The arror'); 1 row created. SQL> col "Name" for a23 SQL> col "Loc" for a23 SQL> col "Desc" for a23 SQL> SQL> set linesize 300 SQL> SQL> select dump(name) "Name",dump(loc) "Loc",dump(desc_str) "Desc" from starling_city; Name Loc Desc ----------------------- ----------------------- ----------------------- Typ=1 Len=6: 111,108,10 Typ=1 Len=10: 81,117,10 Typ=96 Len=30: 84,104,1 5,118,101,114 1,101,110,32,67,111,114 01,32,97,114,114,111,11 ,112 4,32,32,32,32,32,32,32, 32,32,32,32,32,32,32,32 ,32,32,32,32,32,32 SQL> select * from starling_city; NAME LOC DESC_STR ----------------------- ----------------------- ------------------------------ oliver Queen Corp The arror SQL> SQL> |
可以看到:
varchar2,用多少占多少。
char,即使只用了一点,也会全部占满。
数据类型的长度:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
SQL> create table shado 2 ( 3 name varchar2(6 byte), 4 desc_str varchar2(6 char) 5 ); Table created. SQL> SQL> set linesize 80 SQL> desc shado Name Null? Type ----------------------------------------- -------- ---------------------------- NAME VARCHAR2(6) DESC_STR VARCHAR2(6 CHAR) SQL> SQL> insert into shado values ('i am U','Google'); 1 row created. SQL> SQL> select * from shado; NAME DESC_S ------ ------ i am U Google SQL> |
通常“varchar2(30)”,不指定byte或char的时候,默认会按照byte设定。
但有时候,存储某些字符可能将耗费1B以上的空间,因此,使用byte设定数据类型长度,并不是总能满足实际需求。
日期型:
TIMESTAMP类型的数据有日期与时间两部分组成。
他的精度可以达到亿分之一秒。
你可以手动指定时间的精度,如:timestamp(5)
TIMESTAMP的最高精度为9,默认精度为6。
如果将精度设置为0,则与DATE类型的精度一致,即:
TIMESTAMP(0) = DATE
TIMESTAMP的附加信息为时区的描述信息:
TIMESTAMP WITH TIME ZONE
TIMESTAMP WITH LOCAL TIME ZONE
——————————
To be continue。