数据库设计-字段类型

来源:互联网 发布:华为软件测试平台 编辑:程序博客网 时间:2024/05/17 21:44



Java类MySQLOracle字节范围Characterchar(1)char(1)20~65535Stringvarchar(255)varchar2(255)  String-cloblongtextclob  Date-datedatedate  Date-timetimedate  Date-timestampdatetimedate  Boolentinyint(1)number(1)1true|falseBytetinyint(4)number(3)1-128~127Shortsmallint(6)number(5)2-32768~32767Integerint(11)number(10)4-2147483648~2147483647Longbigint(20)number(19)8-9223372036854775808 ~ 9223372036854775807Floatfloatfloat4-3.4E38~3.4E38 Doubledoublefloat8-1.7E308~1.7E308 BigDecimaldecimal(19,2)number(19,2)  byte[]-bloblongblobclob  

1. Float, Double尽量用BigDecimal替代,避免引起精度问题

2. Boolean在数据库中有很多种表示方式,如0|1,  Y|N, YES|NO, 甚至用是|否表示 ,所以可以用number(1), char(1)甚至varchar2表示

3. Date类型是一个7字节的定长数据类型,没啥好说的,一个例子:性能a>b>c
a、Where date_colum>=to_date(’01-11-2007’,’dd-mon-yyyy’)

    and date_colum<
b、Where trunc(date_colum,’y’)=to_date(’01-11-2007’,’dd-mon-yyyy’)
c、Where to_char(date_colum,’yyyy’)=’2007’

4.为什么MySQL和Oracle相差1,看了下面了你应该知道:

类型

字节

最小值

最大值

 

 

(带符号的/无符号的)

(带符号的/无符号的)

TINYINT

1

-128

127

 

 

0

255

SMALLINT

2

-32768

32767

 

 

0

65535

MEDIUMINT

3

-8388608

8388607

 

 

0

16777215

INT

4

-2147483648

2147483647

 

 

0

4294967295

BIGINT

8

-9223372036854775808

9223372036854775807

 

 

0

18446744073709551615

5.表示数字的有float,decimal等类型,表示文本的有varchar,char,text等类型,如果你想存百分比的话,最好是建个float字段,把百分比计算成数值存进去;

如果你非要存到库里面显示0%-100%这样的数值的话,那就用varchar类型的就可以了,取出的时候,你再换算

 

举例:

这里我用的是ORACLE9I, 建立了表C_EMP1_T,结构如下:
create table C_EMP1_T
(
  EMP_ID         NUMBER(20) not null,    //用户ID
  EMP_NO         VARCHAR2(20),        //用户编号
  EMP_DESC       LONG,                        //用户简历    
  USED_DATE      DATE,                        //注册日期
  EMP_IC_MAC     RAW(50),                //用户IC卡的MAC号
  EMP_ADMIN_FLAG CHAR(1),        //管理员标志
  EMP_PICTURE    BLOB                    //用户图像

credits FLOAT                                                        // 学分

 


)


0 0